forked from Team-2502/2012-TeamRobotCode2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDisplayWrapper.h
executable file
·87 lines (69 loc) · 1.63 KB
/
DisplayWrapper.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#ifndef DISPLAYWRAPPER_H
#define DISPLAYWRAPPER_H
#include <cstdarg>
#include <string>
#include <vector>
class DriverStationLCD;
/**
* This wraps around the LCD Display for the driver station.
* The only class that should call this is the DriverWriter.
*/
class DisplayWrapper
{
public:
DisplayWrapper();
~DisplayWrapper();
/**
* Get the instance of the display wrapper.
*/
static DisplayWrapper* GetInstance();
/**
* Set the scroll location of the buffer to display.
* 0.0 is the top and 1.0 is the bottom.
*/
void SetScrollLocation(float location);
/**
* Send changes to the display
*/
void Output();
/****************************************************************************/
// Only the DisplayWriter should be using the following methods
/**
* Clear part of the display buffer
*/
void clear(unsigned start, unsigned size);
/**
* Clear ALL of the display buffer
*/
void clear();
/**
* Write buffer to the display.
*/
void puts(unsigned line, const char* buffer);
/**
* Set the size of the buffer (in lines).
*/
void setBufferSize(unsigned size);
/**
* Grow the size of the buffer (in lines).
*/
unsigned growBufferSize(unsigned size);
/**
* shift a section of the lines up
*/
void shift(unsigned start, unsigned size);
/**
* answers true if the specified line is displayed on the LCD screen
*/
bool isLineVisible(unsigned line);
private:
void shift();
std::vector<std::string> buffer;
unsigned bufferSize;
unsigned bufferLocation;
unsigned outputLocation;
DriverStationLCD* display;
bool displayDirty;
static DisplayWrapper* Instance;
};
#endif // DISPLAY