Subversion Repositories libOLED

Rev

Rev 11 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 11 Rev 13
Line 28... Line 28...
28
  display_t(int const width, int const height, int const ramwidth,
28
  display_t(int const width, int const height, int const ramwidth,
29
            uint8_t *const data);
29
            uint8_t *const data);
30
 
30
 
31
  virtual ~display_t();
31
  virtual ~display_t();
32
 
32
 
33
  /// \brief get the current rotation of the display
33
  /// \brief get the current rotation of the display : doesnt work too well. 
34
  uint8_t
34
  uint8_t
35
  getRotation();
35
  getRotation();
36
 
36
 
-
 
37
  /// @brief  Get pixel width
-
 
38
  /// @return width
37
  int16_t
39
  int16_t
38
  width();
40
  width();
-
 
41
  /// @brief Get pixel height
-
 
42
  /// @return height
39
  int16_t
43
  int16_t
40
  height();
44
  height();
41
 
45
 
42
  // common hardware reset .
46
  /// @brief common hardware reset, resets ALL displays
43
  void
47
  void
44
  reset();
48
  reset();
45
 
49
 
46
  void
50
  void
47
  init();
51
  init();
48
 
52
 
49
  /// \brief Clear display to colour
53
  /// \brief Clear display to colour
50
  void
54
  void
51
  clearDisplay(colour_t colour = colour_t::BLACK);
55
  clearDisplay(colour_t colour = colour_t::BLACK);
-
 
56
 
-
 
57
  /// @brief Invert display
-
 
58
  /// @param i true : invert display
52
  void
59
  void
53
  invertDisplay(uint8_t i);
60
  invertDisplay(uint8_t i);
-
 
61
 
-
 
62
  /// @brief Show the workspace on the screen
54
  void
63
  void
55
  display();
64
  display();
56
 
65
 
57
  void
66
  void
58
  startscrollright(uint8_t start, uint8_t stop);
67
  startscrollright(uint8_t start, uint8_t stop);
Line 64... Line 73...
64
  void
73
  void
65
  startscrolldiagleft(uint8_t start, uint8_t stop);
74
  startscrolldiagleft(uint8_t start, uint8_t stop);
66
  void
75
  void
67
  stopscroll(void);
76
  stopscroll(void);
68
 
77
 
-
 
78
  /// @brief Set display contrast
-
 
79
  /// @param contrast 0..255 but theres really only two values worth bothering with, 0 and 255
69
  void
80
  void
70
  dim(uint8_t contrast);
81
  dim(uint8_t contrast);
71
 
82
 
72
  // set drawing mode
83
  // set drawing mode
73
  void
84
  void
74
  setPixelMode(colour_t colour)
85
  setPixelMode(colour_t colour)
75
  {
86
  {
76
    m_colour = colour;
87
    m_colour = colour;
77
  }
88
  }
78
 
89
 
-
 
90
  /// @brief Draw a single pixel
-
 
91
  /// @param x
-
 
92
  /// @param y
-
 
93
  /// @param pixel
79
  void
94
  void
80
  drawPixel(int16_t x, int16_t y, bool pixel);
95
  drawPixel(int16_t x, int16_t y, bool pixel);
81
 
96
 
-
 
97
  /// @brief Draw a line according to Bressenham algorithm, with optional dash / dot patternign
-
 
98
  /// @param x1 coordinate start
-
 
99
  /// @param y1 coordinate start
-
 
100
  /// @param x2 coordinate end
-
 
101
  /// @param y2 coordinate end
-
 
102
  /// @param color colour code
-
 
103
  /// @param pattern a binary pattern with at least a single bit set - if least significant bit set, draw pixel
-
 
104
  /// if bit zero dont draw pixel. After drawing a pixel, shift pattern right one bit. If pattern becomes all zeros, reset with function argument.
82
  void
105
  void
83
  drawLine(int16_t x1, int16_t y1, int16_t x2, int16_t y2, colour_t color = WHITE, int8_t pattern = 1);
106
  drawLine(int16_t x1, int16_t y1, int16_t x2, int16_t y2, colour_t color = WHITE, int8_t pattern = 1);
84
 
107
 
-
 
108
  /// @brief Draw a solid rectangle using byte operations, rather than line draw
-
 
109
  /// @param x1 top left
-
 
110
  /// @param y1 top left
-
 
111
  /// @param x2 bottom right
-
 
112
  /// @param y2 bottom right
-
 
113
  /// @param color colour code
85
  void
114
  void
86
  drawRectangle(int16_t x1, int16_t y1, int16_t x2, int16_t y2,
115
  drawRectangle(int16_t x1, int16_t y1, int16_t x2, int16_t y2,
87
                colour_t color=WHITE);
116
                colour_t color = WHITE);
88
 
117
 
89
  // position cursor absolute
118
  /// @brief Position cursor for text drawing
-
 
119
  /// @param x top left
-
 
120
  /// @param y top left
90
  void
121
  void
91
  gotoxy(int x, int y)
122
  gotoxy(int x, int y)
92
  {
123
  {
93
    m_cursor_x = x;
124
    m_cursor_x = x;
94
    m_cursor_y = y;
125
    m_cursor_y = y;
95
  }
126
  }
96
 
127
 
-
 
128
  /// @brief Position cursor relative for text drawing
-
 
129
  /// @param x relative
97
  // position cursor relative
130
  /// @param y relative
98
  void
131
  void
99
  moveby(int x, int y)
132
  moveby(int x, int y)
100
  {
133
  {
101
    m_cursor_x += x;
134
    m_cursor_x += x;
102
    m_cursor_y += y;
135
    m_cursor_y += y;
103
  }
136
  }
104
 
137
 
105
  // pixel to pixel plotting
138
  // pixel to pixel plotting
106
  /// \param font The font to use
139
  /// \param font The font to use
107
  /// \param string The characters to plot
140
  /// \param string The characters to plot
108
  /// \param length The length of the string
141
  /// \param length The length of the string (0 means use strlen(string))
109
  /// \param colour
142
  /// \param colour colour code 
110
  void
143
  void
111
  printString(font_t &font, char const *string, uint16_t length,
144
  printString(font_t &font, char const *string, uint16_t length,
112
              colour_t colour = WHITE);
145
              colour_t colour = WHITE);
113
 
146
 
114
  // scaled plotting
147
  // scaled plotting
115
  /// \param font The font to use
148
  /// \param font The font to use
116
  /// \param string The characters to plot
149
  /// \param string The characters to plot
117
  /// \param length The length of the string
150
  /// \param length The length of the string
118
  /// \param scale The scale factor is 256/scale so 256 is 1:1, 128 is twice the size
151
  /// \param scale The scale factor is 256/scale so 256 is 1:1, 128 is twice the size
119
  /// \param colour
152
  /// \param colour colour code
120
  void
153
  void
121
  printScaledString(font_t &font, char const *string, uint16_t length,
154
  printScaledString(font_t &font, char const *string, uint16_t length,
122
                    uint16_t scale, colour_t colour = WHITE);
155
                    uint16_t scale, colour_t colour = WHITE);
123
 
156
 
124
  static const uint8_t NO_DECIMAL = 255;
157
  static const uint8_t NO_DECIMAL = 255;