openMSX
LedStatus.hh
Go to the documentation of this file.
1#ifndef LEDSTATUS_HH
2#define LEDSTATUS_HH
3
4#include "ReadOnlySetting.hh"
5#include "RTSchedulable.hh"
6#include <array>
7#include <cstdint>
8
9namespace openmsx {
10
11class CommandController;
12class MSXCliComm;
13class RTScheduler;
14class Interpreter;
15
16class LedStatus final : public RTSchedulable
17{
18public:
19 enum Led {
22 KANA, // same as CODE LED
26 NUM_LEDS // must be last
27 };
28
29 LedStatus(RTScheduler& rtScheduler,
30 CommandController& commandController,
31 MSXCliComm& msxCliComm);
32
33 void setLed(Led led, bool status);
34
35private:
36 void handleEvent(Led led) noexcept;
37
38 // RTSchedulable
39 void executeRT() override;
40
41private:
42 MSXCliComm& msxCliComm;
43 Interpreter& interp;
44 std::array<ReadOnlySetting, NUM_LEDS> ledStatus;
45 uint64_t lastTime;
46 std::array<bool, NUM_LEDS> ledValue;
47};
48
49} // namespace openmsx
50
51#endif
void setLed(Led led, bool status)
Definition LedStatus.cc:41
This file implemented 3 utility functions:
Definition Autofire.cc:9