diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2007-07-19 18:21:58 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2007-07-19 18:21:58 +0000 |
commit | 47add43cd028855cda2292bef9dcde607f948490 (patch) | |
tree | beeabf195c19b89322079d391670dfaa95325d3a /libs/midi++2/midi++ | |
parent | fdfa8a0d9372693eab36428829dd23866f5f8b4b (diff) |
new functionality to add MIDI ports from the options editor, not totally finished but functional
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2152 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/midi++2/midi++')
-rw-r--r-- | libs/midi++2/midi++/alsa_sequencer.h | 3 | ||||
-rw-r--r-- | libs/midi++2/midi++/coremidi_midiport.h | 3 | ||||
-rw-r--r-- | libs/midi++2/midi++/factory.h | 3 | ||||
-rw-r--r-- | libs/midi++2/midi++/manager.h | 5 | ||||
-rw-r--r-- | libs/midi++2/midi++/port_request.h | 10 |
5 files changed, 23 insertions, 1 deletions
diff --git a/libs/midi++2/midi++/alsa_sequencer.h b/libs/midi++2/midi++/alsa_sequencer.h index 5ca70529c5..78e4a01683 100644 --- a/libs/midi++2/midi++/alsa_sequencer.h +++ b/libs/midi++2/midi++/alsa_sequencer.h @@ -27,6 +27,7 @@ #include <alsa/asoundlib.h> #include <midi++/port.h> +#include <midi++/port_request.h> namespace MIDI { @@ -40,6 +41,8 @@ class ALSA_SequencerMidiPort : public Port /* select(2)/poll(2)-based I/O */ virtual int selectable() const; + + static int discover (std::vector<PortSet>&); protected: /* Direct I/O */ diff --git a/libs/midi++2/midi++/coremidi_midiport.h b/libs/midi++2/midi++/coremidi_midiport.h index d7df23aa04..20fe739b94 100644 --- a/libs/midi++2/midi++/coremidi_midiport.h +++ b/libs/midi++2/midi++/coremidi_midiport.h @@ -40,6 +40,9 @@ namespace MIDI { virtual int selectable() const { return -1; } + + static int discover (std::vector<PortSet>&); + protected: /* Direct I/O */ int write(byte * msg, size_t msglen); diff --git a/libs/midi++2/midi++/factory.h b/libs/midi++2/midi++/factory.h index f2963624fe..186c3973e3 100644 --- a/libs/midi++2/midi++/factory.h +++ b/libs/midi++2/midi++/factory.h @@ -23,6 +23,7 @@ #include <string> #include <midi++/port.h> +#include <midi++/port_request.h> namespace MIDI { @@ -31,6 +32,8 @@ class PortFactory { Port *create_port (PortRequest &req); static bool ignore_duplicate_devices (Port::Type); + static int get_known_ports (std::vector<PortSet>&); + static std::string default_port_type (); }; } // namespace MIDI diff --git a/libs/midi++2/midi++/manager.h b/libs/midi++2/midi++/manager.h index 40140cfde2..c230933689 100644 --- a/libs/midi++2/midi++/manager.h +++ b/libs/midi++2/midi++/manager.h @@ -21,10 +21,13 @@ #define __midi_manager_h__ #include <map> +#include <vector> + #include <string> #include <midi++/types.h> #include <midi++/port.h> +#include <midi++/port_request.h> namespace MIDI { @@ -70,6 +73,8 @@ class Manager { static int parse_port_request (std::string str, Port::Type type); + int get_known_ports (std::vector<PortSet>&); + private: /* This is a SINGLETON pattern */ diff --git a/libs/midi++2/midi++/port_request.h b/libs/midi++2/midi++/port_request.h index 0cb4ffded6..cd4e758ebb 100644 --- a/libs/midi++2/midi++/port_request.h +++ b/libs/midi++2/midi++/port_request.h @@ -1,5 +1,5 @@ /* - Copyright (C) 1999 Paul Barton-Davis + Copyright (C) 1999-2007 Paul Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,6 +20,7 @@ #ifndef __midi_port_request_h__ #define __midi_port_request_h__ +#include <list> #include <string> namespace MIDI { @@ -53,6 +54,13 @@ struct PortRequest { const std::string &xtype); }; +struct PortSet { + PortSet (std::string str) : owner (str) { } + + std::string owner; + std::list<PortRequest> ports; +}; + } // namespace MIDI #endif // __midi_port_request_h__ |