diff options
Diffstat (limited to 'libs/midi++2/midi++')
-rw-r--r-- | libs/midi++2/midi++/alsa_rawmidi.h | 10 | ||||
-rw-r--r-- | libs/midi++2/midi++/alsa_sequencer.h | 5 | ||||
-rw-r--r-- | libs/midi++2/midi++/coremidi_midiport.h | 15 | ||||
-rw-r--r-- | libs/midi++2/midi++/factory.h | 3 | ||||
-rw-r--r-- | libs/midi++2/midi++/fd_midiport.h | 1 | ||||
-rw-r--r-- | libs/midi++2/midi++/fifomidi.h | 7 | ||||
-rw-r--r-- | libs/midi++2/midi++/manager.h | 5 | ||||
-rw-r--r-- | libs/midi++2/midi++/nullmidi.h | 7 | ||||
-rw-r--r-- | libs/midi++2/midi++/port.h | 8 |
9 files changed, 52 insertions, 9 deletions
diff --git a/libs/midi++2/midi++/alsa_rawmidi.h b/libs/midi++2/midi++/alsa_rawmidi.h index d2aa6f5181..7edee58322 100644 --- a/libs/midi++2/midi++/alsa_rawmidi.h +++ b/libs/midi++2/midi++/alsa_rawmidi.h @@ -28,6 +28,8 @@ #include <midi++/port.h> #include <midi++/fd_midiport.h> +namespace MIDI { + class ALSA_RawMidiPort : public MIDI::FD_MidiPort { @@ -35,8 +37,16 @@ class ALSA_RawMidiPort : public MIDI::FD_MidiPort ALSA_RawMidiPort (MIDI::PortRequest &req) : FD_MidiPort (req, "/dev/snd", "midi") {} virtual ~ALSA_RawMidiPort () {} + + static std::string typestring; + + protected: + std::string get_typestring () const { + return typestring; + } }; +} #endif // __alsa_rawmidi_h__ diff --git a/libs/midi++2/midi++/alsa_sequencer.h b/libs/midi++2/midi++/alsa_sequencer.h index 78e4a01683..7e929d38c2 100644 --- a/libs/midi++2/midi++/alsa_sequencer.h +++ b/libs/midi++2/midi++/alsa_sequencer.h @@ -43,6 +43,7 @@ class ALSA_SequencerMidiPort : public Port virtual int selectable() const; static int discover (std::vector<PortSet>&); + static std::string typestring; protected: /* Direct I/O */ @@ -50,6 +51,10 @@ class ALSA_SequencerMidiPort : public Port int write (byte *msg, size_t msglen); int read (byte *buf, size_t max); + std::string get_typestring () const { + return typestring; + } + private: snd_midi_event_t *decoder, *encoder; int port_id; diff --git a/libs/midi++2/midi++/coremidi_midiport.h b/libs/midi++2/midi++/coremidi_midiport.h index 20fe739b94..89047540cb 100644 --- a/libs/midi++2/midi++/coremidi_midiport.h +++ b/libs/midi++2/midi++/coremidi_midiport.h @@ -42,15 +42,23 @@ namespace MIDI { } static int discover (std::vector<PortSet>&); + static std::string typestring; protected: /* Direct I/O */ int write(byte * msg, size_t msglen); + int read(byte * buf, size_t max) { return 0; - } /* CoreMidi callback */ - static void read_proc(const MIDIPacketList * pktlist, - void *refCon, void *connRefCon); + } + + /* CoreMidi callback */ + static void read_proc(const MIDIPacketList * pktlist, + void *refCon, void *connRefCon); + + std::string get_typestring () const { + return typestring; + } private: byte midi_buffer[1024]; @@ -63,6 +71,7 @@ namespace MIDI { static MIDITimeStamp MIDIGetCurrentHostTime(); bool firstrecv; + }; } // namespace MIDI diff --git a/libs/midi++2/midi++/factory.h b/libs/midi++2/midi++/factory.h index 186c3973e3..bd130f8701 100644 --- a/libs/midi++2/midi++/factory.h +++ b/libs/midi++2/midi++/factory.h @@ -34,6 +34,9 @@ class PortFactory { static bool ignore_duplicate_devices (Port::Type); static int get_known_ports (std::vector<PortSet>&); static std::string default_port_type (); + static Port::Type string_to_type (const std::string&); + static std::string mode_to_string (int); + static int string_to_mode (const std::string&); }; } // namespace MIDI diff --git a/libs/midi++2/midi++/fd_midiport.h b/libs/midi++2/midi++/fd_midiport.h index d7fae400a0..e971a18f8c 100644 --- a/libs/midi++2/midi++/fd_midiport.h +++ b/libs/midi++2/midi++/fd_midiport.h @@ -46,6 +46,7 @@ class FD_MidiPort : public Port } virtual int selectable() const; + static std::vector<std::string *> *list_devices (); protected: diff --git a/libs/midi++2/midi++/fifomidi.h b/libs/midi++2/midi++/fifomidi.h index 57d1502c45..ea644dde06 100644 --- a/libs/midi++2/midi++/fifomidi.h +++ b/libs/midi++2/midi++/fifomidi.h @@ -37,6 +37,13 @@ class FIFO_MidiPort : public MIDI::FD_MidiPort FIFO_MidiPort (PortRequest &req); ~FIFO_MidiPort () {}; + static std::string typestring; + + protected: + std::string get_typestring () const { + return typestring; + } + private: void open (PortRequest &req); }; diff --git a/libs/midi++2/midi++/manager.h b/libs/midi++2/midi++/manager.h index c230933689..d13be58af6 100644 --- a/libs/midi++2/midi++/manager.h +++ b/libs/midi++2/midi++/manager.h @@ -36,10 +36,9 @@ class Manager { ~Manager (); Port *add_port (PortRequest &); - int remove_port (std::string port); + int remove_port (Port*); Port *port (std::string name); - Port *port (size_t number); size_t nports () { return ports_by_device.size(); } @@ -50,9 +49,7 @@ class Manager { channel_t inputChannelNumber; channel_t outputChannelNumber; - int set_input_port (size_t port); int set_input_port (std::string); - int set_output_port (size_t port); int set_output_port (std::string); int set_input_channel (channel_t); int set_output_channel (channel_t); diff --git a/libs/midi++2/midi++/nullmidi.h b/libs/midi++2/midi++/nullmidi.h index 13591db4e6..d3d53826bb 100644 --- a/libs/midi++2/midi++/nullmidi.h +++ b/libs/midi++2/midi++/nullmidi.h @@ -54,6 +54,13 @@ class Null_MidiPort : public Port } virtual int selectable() const { return -1; } + + static std::string typestring; + + protected: + std::string get_typestring () const { + return typestring; + } }; } // namespace MIDI diff --git a/libs/midi++2/midi++/port.h b/libs/midi++2/midi++/port.h index 123ac9e3d8..0b5e72d81b 100644 --- a/libs/midi++2/midi++/port.h +++ b/libs/midi++2/midi++/port.h @@ -26,6 +26,8 @@ #include <midi++/types.h> #include <midi++/parser.h> +class XMLNode; + namespace MIDI { class Channel; @@ -46,6 +48,8 @@ class Port : public sigc::trackable { Port (PortRequest &); virtual ~Port (); + virtual XMLNode& get_state () const; + /* Direct I/O */ virtual int write (byte *msg, size_t msglen) = 0; @@ -118,7 +122,6 @@ class Port : public sigc::trackable { Type type () const { return _type; } int mode () const { return _mode; } bool ok () const { return _ok; } - size_t number () const { return _number; } protected: bool _ok; @@ -126,7 +129,6 @@ class Port : public sigc::trackable { std::string _devname; std::string _tagname; int _mode; - size_t _number; Channel *_channel[16]; sigc::connection thru_connection; unsigned int bytes_written; @@ -135,6 +137,8 @@ class Port : public sigc::trackable { Parser *output_parser; size_t slowdown; + virtual std::string get_typestring () const = 0; + private: static size_t nports; }; |