sm-26/Source/LcdDisplay.h

32 lines
No EOL
719 B
C++

#pragma once
#include <JuceHeader.h>
class LcdDisplay : public juce::Component,
private juce::Timer
{
public:
static constexpr int kCols = 80;
static constexpr int kRows = 8;
LcdDisplay();
void setLine (int row, const juce::String& s);
void setInverted (int row, bool inverted);
void showCursor (bool show);
void clear();
void paint (juce::Graphics&) override;
private:
void timerCallback() override;
juce::String lines[kRows];
bool rowInverted[kRows];
int cursorCol = 0;
int cursorRow = 0;
bool cursorVisible = false;
const uint8_t* getGlyph (juce::uint32 c) const;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (LcdDisplay)
};