summaryrefslogtreecommitdiff
path: root/libs/midi++2/midi++/parser.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-12-17 18:24:23 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-12-17 18:24:23 +0000
commitf6fdd8dcbf41f864e9f0cc32dabe81fe3533ddfe (patch)
tree5214c580b9e6c17a499fa587660dbf949e892bf2 /libs/midi++2/midi++/parser.h
parentda762129f19c28aff64f833b6ec09fba946faef6 (diff)
switch to using boost::signals2 instead of sigc++, at least for libardour. not finished yet, but compiles, loads sessions, records and can close a session without a crash
git-svn-id: svn://localhost/ardour2/branches/3.0@6372 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/midi++2/midi++/parser.h')
-rw-r--r--libs/midi++2/midi++/parser.h51
1 files changed, 27 insertions, 24 deletions
diff --git a/libs/midi++2/midi++/parser.h b/libs/midi++2/midi++/parser.h
index 365f2fb46a..497a50abe8 100644
--- a/libs/midi++2/midi++/parser.h
+++ b/libs/midi++2/midi++/parser.h
@@ -23,7 +23,7 @@
#include <string>
#include <iostream>
-#include <sigc++/sigc++.h>
+#include <boost/signals2.hpp>
#include "midi++/types.h"
@@ -32,12 +32,14 @@ namespace MIDI {
class Port;
class Parser;
-typedef sigc::signal<void, Parser &, byte> OneByteSignal;
-typedef sigc::signal<void, Parser &, EventTwoBytes *> TwoByteSignal;
-typedef sigc::signal<void, Parser &, pitchbend_t> PitchBendSignal;
-typedef sigc::signal<void, Parser &, byte *, size_t> Signal;
+typedef boost::signals2::signal<void(Parser&)> ZeroByteSignal;
+typedef boost::signals2::signal<void(Parser&,nframes_t)> TimestampedSignal;
+typedef boost::signals2::signal<void(Parser&, byte)> OneByteSignal;
+typedef boost::signals2::signal<void(Parser &, EventTwoBytes *)> TwoByteSignal;
+typedef boost::signals2::signal<void(Parser &, pitchbend_t)> PitchBendSignal;
+typedef boost::signals2::signal<void(Parser &, byte *, size_t)> Signal;
-class Parser : public sigc::trackable {
+class Parser {
public:
Parser (Port &p);
~Parser ();
@@ -69,8 +71,8 @@ class Parser : public sigc::trackable {
OneByteSignal channel_program_change[16];
PitchBendSignal channel_pitchbend[16];
TwoByteSignal channel_controller[16];
- sigc::signal<void, Parser &> channel_active_preparse[16];
- sigc::signal<void, Parser &> channel_active_postparse[16];
+ ZeroByteSignal channel_active_preparse[16];
+ ZeroByteSignal channel_active_postparse[16];
OneByteSignal mtc_quarter_frame; /* see below for more useful signals */
Signal mtc;
@@ -82,15 +84,16 @@ class Parser : public sigc::trackable {
Signal position;
Signal song;
- sigc::signal<void, Parser &> all_notes_off;
- sigc::signal<void, Parser &> tune;
- sigc::signal<void, Parser &, nframes_t> timing;
- sigc::signal<void, Parser &, nframes_t> start;
- sigc::signal<void, Parser &, nframes_t> stop;
- sigc::signal<void, Parser &, nframes_t> contineu; /* note spelling */
- sigc::signal<void, Parser &> active_sense;
- sigc::signal<void, Parser &> reset;
- sigc::signal<void, Parser &> eox;
+ ZeroByteSignal all_notes_off;
+ ZeroByteSignal tune;
+ ZeroByteSignal active_sense;
+ ZeroByteSignal reset;
+ ZeroByteSignal eox;
+
+ TimestampedSignal timing;
+ TimestampedSignal start;
+ TimestampedSignal stop;
+ TimestampedSignal contineu; /* note spelling */
/* This should really be protected, but then derivatives of Port
can't access it.
@@ -106,9 +109,9 @@ class Parser : public sigc::trackable {
void set_offline (bool);
bool offline() const { return _offline; }
- sigc::signal<void> OfflineStatusChanged;
+ boost::signals2::signal<void()> OfflineStatusChanged;
- sigc::signal<int, byte *, size_t> edit;
+ boost::signals2::signal<int(byte *, size_t)> edit;
void set_mmc_forwarding (bool yn) {
_mmc_forward = yn;
@@ -121,10 +124,10 @@ class Parser : public sigc::trackable {
const byte *mtc_current() const { return _mtc_time; }
bool mtc_locked() const { return _mtc_locked; }
- sigc::signal<void,Parser&,int,nframes_t> mtc_qtr;
- sigc::signal<void,const byte*,bool,nframes_t> mtc_time;
- sigc::signal<void,MTC_Status> mtc_status;
- sigc::signal<bool> mtc_skipped;
+ boost::signals2::signal<void(Parser&,int,nframes_t)> mtc_qtr;
+ boost::signals2::signal<void(const byte*,bool,nframes_t)> mtc_time;
+ boost::signals2::signal<void(MTC_Status)> mtc_status;
+ boost::signals2::signal<bool()> mtc_skipped;
void set_mtc_forwarding (bool yn) {
_mtc_forward = yn;
@@ -139,7 +142,7 @@ class Parser : public sigc::trackable {
std::ostream *trace_stream;
std::string trace_prefix;
void trace_event (Parser &p, byte *msg, size_t len);
- sigc::connection trace_connection;
+ boost::signals2::scoped_connection trace_connection;
size_t message_counter[256];