Anfängerproblem mit SSD1306 Library

Es geht um diese Library.

Diese benutzt ein Array als Bildspeicher.

static uint8_t buffer[SSD1306_LCDHEIGHT * SSD1306_LCDWIDTH / 8] = ...

Auf dieses Array kann ich leider nicht vom Sketch aus zugreifen.

Ich brauche eine getPixel Funktion.

Die müsste vermutlich so aussehen:

bool Adafruit_SSD1306::getPixel(int16_t x, int16_t y)
{
  if ((x < 0) || (x >= width()) || (y < 0) || (y >= height()))
    return;

  // check rotation, move pixel around if necessary
  switch (getRotation())
  {
  case 1:
    ssd1306_swap(x, y);
    x = WIDTH - x - 1;
    break;
  case 2:
    x = WIDTH - x - 1;
    y = HEIGHT - y - 1;
    break;
  case 3:
    ssd1306_swap(x, y);
    y = HEIGHT - y - 1;
    break;
  }

  return buffer[(x + (y/8)*SSD1306_LCDWIDTH]) & (1 << (y&7));
}

Wenn ich das jetzt in die .cpp reinschreibe, reicht das ja noch nicht - was müsste ich in zusätzlich die .h schreiben?

Oder wie mache ich das Array global zugänglich, falls das einfacher ist?

Oder was wäre der einfachste Weg, rauszubekommen, ob momentan Pixel x/y an oder aus ist?

Gruß,

Helmuth

was müsste ich in zusätzlich die .h schreiben?

...
class Adafruit_SSD1306 : public Adafruit_GFX {
 public:
...
  bool getPixel(int16_t x, int16_t y);  
...
}

Deine Funktion kommt dann in die .cpp dazu (und muss übrigens immer was zurückliefern, also auch im Fehlerfall return false;

Funktioniert, dankeschön.