Merge windows+cc branch into cairocanvas branch. Not finished, need to now merge...
[ardour.git] / libs / midi++2 / midi++ / channel.h
index 0d24bf8bbe8128bb9a2131b7065ecf28fdff8b91..02c16e67297cf2f2198a3b8fea06121689264379 100644 (file)
@@ -15,7 +15,6 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id$
 */
 
 #ifndef __midichannel_h__
 
 #include <queue>
 
-#include <sigc++/sigc++.h>
-
-#include <midi++/types.h>
-#include <midi++/parser.h>
+#include "pbd/signals.h"
+#include "midi++/parser.h"
 
 namespace MIDI {
 
@@ -37,12 +34,12 @@ class Port;
  * This remembers various useful information about the current 'state' of a
  * MIDI channel (eg current pitch bend value).
  */
-class Channel : public sigc::trackable {
+class LIBMIDIPP_API Channel : public PBD::ScopedConnectionList {
 
   public:
        Channel (byte channel_number, Port &);
 
-       Port &midi_port()               { return _port; }
+       Port &midi_port()           { return _port; }
        byte channel()                  { return _channel_number; }
        byte program()                  { return _program_number; }
        byte bank()                     { return _bank_number; }
@@ -113,11 +110,10 @@ class Channel : public sigc::trackable {
 
   protected:
        friend class Port;
-       void connect_input_signals ();
-       void connect_output_signals ();
+       void connect_signals ();
 
   private:
-       Port & _port;
+       Port& _port;
 
        /* Current channel values */
        byte               _channel_number;
@@ -143,7 +139,7 @@ class Channel : public sigc::trackable {
        bool               _mono;
        size_t             _notes_on;
 
-       void reset (timestamp_t timestamp, nframes_t nframes, bool notes_off = true);
+       void reset (timestamp_t timestamp, framecnt_t nframes, bool notes_off = true);
        
        void process_note_off (Parser &, EventTwoBytes *);
        void process_note_on (Parser &, EventTwoBytes *);
@@ -155,7 +151,7 @@ class Channel : public sigc::trackable {
        void process_reset (Parser &);
 };
 
-}; /* namespace MIDI */
+} // namespace MIDI
 
 #endif // __midichannel_h__