Merge branch 'master' into windows
[ardour.git] / libs / ardour / ardour / midiport_manager.h
index 9c45e6034199f6a0113848ffa090948ae85b61d6..9f93c43d5a006f15c3f5e2d57ade33ad1d412bc7 100644 (file)
@@ -41,11 +41,6 @@ class MidiPortManager {
     MidiPortManager();
     virtual ~MidiPortManager ();
        
-    MidiPort* add_port (MidiPort *);
-    void remove_port (MidiPort *);
-
-    MidiPort* port (const std::string&);
-    
     /* Ports used for control. These are read/written to outside of the
      * process callback (asynchronously with respect to when data
      * actually arrives). 
@@ -56,8 +51,10 @@ class MidiPortManager {
      * callback. 
      */
 
-    MIDI::Port* midi_input_port () { return _midi_input_port; }
-    MIDI::Port* midi_output_port () { return _midi_output_port; }
+    MIDI::Port* midi_input_port () const { return _midi_input_port; }
+    MIDI::Port* midi_output_port () const { return _midi_output_port; }
+    MIDI::Port* mmc_input_port () const { return _mmc_input_port; }
+    MIDI::Port* mmc_output_port () const { return _mmc_output_port; }
     
     /* Ports used for synchronization. These have their I/O handled inside the
      * process callback.
@@ -68,7 +65,8 @@ class MidiPortManager {
     boost::shared_ptr<MidiPort> midi_clock_input_port() const { return _midi_clock_input_port; }
     boost::shared_ptr<MidiPort> midi_clock_output_port() const { return _midi_clock_output_port; }
     
-    void set_port_states (std::list<XMLNode*>);
+    void set_midi_port_states (const XMLNodeList&);
+    std::list<XMLNode*> get_midi_port_states () const;
 
     PBD::Signal0<void> PortsChanged;
 
@@ -76,8 +74,15 @@ class MidiPortManager {
     /* asynchronously handled ports: MIDI::Port */
     MIDI::Port* _midi_input_port;
     MIDI::Port* _midi_output_port;
+    MIDI::Port* _mmc_input_port;
+    MIDI::Port* _mmc_output_port;
+    /* these point to the same objects as the 4 members above,
+       but cast to their ARDOUR::Port base class
+    */
     boost::shared_ptr<Port> _midi_in;
     boost::shared_ptr<Port> _midi_out;
+    boost::shared_ptr<Port> _mmc_in;
+    boost::shared_ptr<Port> _mmc_out;
 
     /* synchronously handled ports: ARDOUR::MidiPort */
     boost::shared_ptr<MidiPort> _mtc_input_port;