-private:
- boost::shared_ptr<SignalType> _signal;
-};
-
-template<typename R, typename A1, typename A2>
-class Signal2 {
-public:
- typedef SimpleSignal2<R, A1, A2> SignalType;
- Signal2 () : _signal (SignalType::create()) {}
-
- void connect_same_thread (ScopedConnectionList& clist,
- const typename SignalType::slot_function_type& slot) {
- clist.add_connection (_signal->connect (slot));
- }
-
- void connect_same_thread (ScopedConnection& c,
- const typename SignalType::slot_function_type& slot) {
- c = _signal->connect (slot);
- }
-
- static void compositor (typename boost::function<void(A1,A2)> f, PBD::EventLoop* event_loop,
- EventLoop::InvalidationRecord* ir,
- A1 arg1, A2 arg2) {
- event_loop->call_slot (ir, boost::bind (f, arg1, arg2));
- }
-
- void connect (ScopedConnectionList& clist,
- PBD::EventLoop::InvalidationRecord* ir,
- const typename SignalType::slot_function_type& slot,
- PBD::EventLoop* event_loop) {
- if (ir) {
- ir->event_loop = event_loop;
- }
- clist.add_connection (_signal->connect (boost::bind (&compositor, slot, event_loop, ir, _1, _2)));
- }
-
- void connect (ScopedConnection& c,
- PBD::EventLoop::InvalidationRecord* ir,
- const typename SignalType::slot_function_type& slot,
- PBD::EventLoop* event_loop) {
- if (ir) {
- ir->event_loop = event_loop;
- }
- c = _signal->connect (boost::bind (&compositor, slot, event_loop, ir, _1, _2));
- }
-
- typename SignalType::result_type operator()(A1 arg1, A2 arg2) {
- return _signal->emit (arg1, arg2);
- }
-
- bool empty() const { return _signal->empty(); }
-
-private:
- boost::shared_ptr<SignalType> _signal;
-};
-
-template<typename R, typename A1, typename A2, typename A3>
-class Signal3 {
-public:
- typedef SimpleSignal3<R, A1, A2, A3> SignalType;
- Signal3 () : _signal (SignalType::create()) {}
-
- void connect_same_thread (ScopedConnectionList& clist,
- const typename SignalType::slot_function_type& slot) {
- clist.add_connection (_signal->connect (slot));
- }
-
- void connect_same_thread (ScopedConnection& c,
- const typename SignalType::slot_function_type& slot) {
- c = _signal->connect (slot);
- }
-
- static void compositor (typename boost::function<void(A1,A2,A3)> f, PBD::EventLoop* event_loop,
- EventLoop::InvalidationRecord* ir,
- A1 arg1, A2 arg2, A3 arg3) {
- event_loop->call_slot (ir, boost::bind (f, arg1, arg2, arg3));
- }
-
- void connect (ScopedConnectionList& clist,
- PBD::EventLoop::InvalidationRecord* ir,
- const typename SignalType::slot_function_type& slot,
- PBD::EventLoop* event_loop) {
- if (ir) {
- ir->event_loop = event_loop;
- }
- clist.add_connection (_signal->connect (boost::bind (&compositor, slot, event_loop, ir, _1, _2, _3)));
- }
-
- void connect (ScopedConnection& c,
- PBD::EventLoop::InvalidationRecord* ir,
- const typename SignalType::slot_function_type& slot,
- PBD::EventLoop* event_loop) {
- if (ir) {
- ir->event_loop = event_loop;
- }
- c = _signal->connect (_signal->connect (boost::bind (&compositor, slot, event_loop, ir, _1, _2, _3)));
- }
-
- typename SignalType::result_type operator()(A1 arg1, A2 arg2, A3 arg3) {
- return _signal->emit (arg1, arg2, arg3);
- }
-
- bool empty() const { return _signal->empty(); }
-
-private:
- boost::shared_ptr<SignalType> _signal;
-};
-
-template<typename R, typename A1, typename A2, typename A3, typename A4>
-class Signal4 {
-public:
- typedef SimpleSignal4<R, A1, A2, A3, A4> SignalType;
- Signal4 () : _signal (SignalType::create()) {}
-
- void connect_same_thread (ScopedConnectionList& clist,
- const typename SignalType::slot_function_type& slot) {
- clist.add_connection (_signal->connect (slot));
- }
-
- void connect_same_thread (ScopedConnection& c,
- const typename SignalType::slot_function_type& slot) {
- c = _signal->connect (slot);
- }
-
- static void compositor (typename boost::function<void(A1,A2,A3)> f, PBD::EventLoop* event_loop,
- EventLoop::InvalidationRecord* ir,
- A1 arg1, A2 arg2, A3 arg3, A4 arg4) {
- event_loop->call_slot (ir, boost::bind (f, arg1, arg2, arg3, arg4));
- }
-
- void connect (ScopedConnectionList& clist,
- PBD::EventLoop::InvalidationRecord* ir,
- const typename SignalType::slot_function_type& slot,
- PBD::EventLoop* event_loop) {
- if (ir) {
- ir->event_loop = event_loop;
- }
- clist.add_connection (_signal->connect (boost::bind (&compositor, slot, event_loop, ir, _1, _2, _3, _4)));
- }
-
- void connect (ScopedConnection& c,
- PBD::EventLoop::InvalidationRecord* ir,
- const typename SignalType::slot_function_type& slot,
- PBD::EventLoop* event_loop) {
- if (ir) {
- ir->event_loop = event_loop;
- }
- c = _signal->connect (_signal->connect (boost::bind (&compositor, slot, event_loop, ir, _1, _2, _3, _4)));
- }
-
- typename SignalType::result_type operator()(A1 arg1, A2 arg2, A3 arg3, A4 arg4) {
- return _signal->emit (arg1, arg2, arg3, arg4);
- }
-
- bool empty() const { return _signal->empty(); }
-
-private:
- boost::shared_ptr<SignalType> _signal;
-};
-
-template<typename R, typename A1, typename A2, typename A3, typename A4, typename A5>
-class Signal5 {
-public:
- typedef SimpleSignal5<R, A1, A2, A3, A4, A5> SignalType;
- Signal5 () : _signal (SignalType::create()) {}
-
- void connect_same_thread (ScopedConnectionList& clist,
- const typename SignalType::slot_function_type& slot) {
- clist.add_connection (_signal->connect (slot));
- }
-
- void connect_same_thread (ScopedConnection& c,
- const typename SignalType::slot_function_type& slot) {
- c = _signal->connect (slot);
- }
-
- static void compositor (typename boost::function<void(A1,A2,A3,A4,A5)> f, PBD::EventLoop* event_loop,
- EventLoop::InvalidationRecord* ir,
- A1 arg1, A2 arg2, A3 arg3, A4 arg4, A5 arg5) {
- event_loop->call_slot (ir, boost::bind (f, arg1, arg2, arg3, arg4, arg5));
- }
-
- void connect (ScopedConnectionList& clist,
- PBD::EventLoop::InvalidationRecord* ir,
- const typename SignalType::slot_function_type& slot,
- PBD::EventLoop* event_loop) {
- if (ir) {
- ir->event_loop = event_loop;
- }
- clist.add_connection (_signal->connect (boost::bind (&compositor, slot, event_loop, ir, _1, _2, _3, _4, _5)));
- }
-
- void connect (ScopedConnection& c,
- PBD::EventLoop::InvalidationRecord* ir,
- const typename SignalType::slot_function_type& slot,
- PBD::EventLoop* event_loop) {
- if (ir) {
- ir->event_loop = event_loop;
- }
- c = _signal->connect (_signal->connect (boost::bind (&compositor, slot, event_loop, ir, _1, _2, _3, _4, _5)));
- }
-
- typename SignalType::result_type operator()(A1 arg1, A2 arg2, A3 arg3, A4 arg4, A5 arg5) {
- return _signal->emit (arg1, arg2, arg3, arg4, arg5);
- }
-
- bool empty() const { return _signal->empty(); }
-
-private:
- boost::shared_ptr<SignalType> _signal;
-};
-