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 
9 namespace openmsx {
10 
11 class CommandController;
12 class MSXCliComm;
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);
32 
33  void setLed(Led led, bool status);
34 
35 private:
36  void handleEvent(Led led) noexcept;
37 
38  // RTSchedulable
39  void executeRT() override;
40 
41 private:
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