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