ardour
receiver.cc
Go to the documentation of this file.
1 /*
2  Copyright (C) 1998-99 Paul Barton-Davis
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; either version 2 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17 
18  $Id$
19 */
20 
21 #include <vector>
22 
23 #include "pbd/receiver.h"
24 #include "pbd/transmitter.h"
25 
26 using namespace std;
27 using namespace sigc;
28 
30 
32 
33 {
34  hangup ();
35 }
36 
37 void
39 {
40  vector<sigc::connection *>::iterator i;
41 
42  for (i = connections.begin(); i != connections.end (); i++) {
43  (*i)->disconnect ();
44  delete *i;
45  }
46 
47  connections.erase (connections.begin(), connections.end());
48 }
49 
50 void
52 
53 {
54  sigc::connection *c = new sigc::connection;
55 
56  (*c) = transmitter.sender().connect(mem_fun(*this, &Receiver::receive));
57 
58  connections.push_back (c);
59 }
virtual ~Receiver()
Definition: receiver.cc:31
void hangup()
Definition: receiver.cc:38
Definition: Beats.hpp:239
sigc::signal< void, Channel, const char * > & sender()
Definition: transmitter.h:44
void listen_to(Transmitter &)
Definition: receiver.cc:51
Receiver()
Definition: receiver.cc:29
virtual void receive(Transmitter::Channel, const char *)=0