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 bool ledValue[NUM_LEDS];
47};
48
49} // namespace openmsx
50
51#endif
LedStatus(RTScheduler &rtScheduler, CommandController &commandController, MSXCliComm &msxCliComm)
Definition: LedStatus.cc:21
void setLed(Led led, bool status)
Definition: LedStatus.cc:40
This file implemented 3 utility functions:
Definition: Autofire.cc:9