diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2009-12-17 18:24:23 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2009-12-17 18:24:23 +0000 |
commit | f6fdd8dcbf41f864e9f0cc32dabe81fe3533ddfe (patch) | |
tree | 5214c580b9e6c17a499fa587660dbf949e892bf2 /libs/midi++2/midi++/parser.h | |
parent | da762129f19c28aff64f833b6ec09fba946faef6 (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.h | 51 |
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]; |