openMSX
MidiOutLogger.hh
Go to the documentation of this file.
1 #ifndef MIDIOUTLOGGER_HH
2 #define MIDIOUTLOGGER_HH
3 
4 #include "MidiOutDevice.hh"
5 #include "serialize_meta.hh"
6 #include <fstream>
7 #include <memory>
8 
9 namespace openmsx {
10 
11 class CommandController;
12 class FilenameSetting;
13 
15 {
16 public:
17  explicit MidiOutLogger(CommandController& commandController);
19 
20  // Pluggable
21  virtual void plugHelper(Connector& connector, EmuTime::param time);
22  virtual void unplugHelper(EmuTime::param time);
23  virtual const std::string& getName() const;
24  virtual string_ref getDescription() const;
25 
26  // SerialDataInterface (part)
27  virtual void recvByte(byte value, EmuTime::param time);
28 
29  template<typename Archive>
30  void serialize(Archive& ar, unsigned version);
31 
32 private:
33  const std::unique_ptr<FilenameSetting> logFilenameSetting;
34  std::ofstream file;
35 };
36 
37 } // namespace openmsx
38 
39 #endif