1 /*
2  * Copyright (C) 2014 Satoshi Noguchi
3  * Copyright (C) 2014 Synaptics Inc
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #ifndef _DISPLAY_H_
19 #define _DISPLAY_H_
20 
21 class Display
22 {
23 public:
Display()24 	Display() {}
~Display()25 	virtual ~Display() {}
26 
Clear()27 	virtual void Clear() {};
Reflesh()28 	virtual void Reflesh() {};
29 	virtual void Output(const char * buf);
30 };
31 
32 class AnsiConsole : public Display
33 {
34 public:
35 	AnsiConsole();
36 	virtual ~AnsiConsole();
37 
38 	virtual void Clear();
39 	virtual void Reflesh();
40 	virtual void Output(const char * buf);
41 
42 private:
43 	void GetWindowSize();
44 
45 protected:
46 	int m_numCols;
47 	int m_numRows;
48 	int m_curX;
49 	int m_curY;
50 	int m_maxCurX;
51 	int m_maxCurY;
52 	char * m_buf;
53 };
54 
55 #endif // _DISPLAY_H_
56