merge from 2.0-ongoing @ 3581
[ardour.git] / libs / ardour / auto_bundle.cc
1 #include <cassert>
2 #include "ardour/auto_bundle.h"
3
4 ARDOUR::AutoBundle::AutoBundle (bool i)
5         : Bundle (i)
6 {
7
8 }
9
10 ARDOUR::AutoBundle::AutoBundle (std::string const & n, bool i)
11         : Bundle (n, i)
12 {
13         
14 }
15
16 ARDOUR::ChanCount
17 ARDOUR::AutoBundle::nchannels () const
18 {
19         Glib::Mutex::Lock lm (_ports_mutex);
20         return ChanCount (type(), _ports.size ());
21 }
22
23 const ARDOUR::PortList&
24 ARDOUR::AutoBundle::channel_ports (uint32_t c) const
25 {
26         assert (c < nchannels().get (type()));
27
28         Glib::Mutex::Lock lm (_ports_mutex);
29         return _ports[c];
30 }
31
32 void
33 ARDOUR::AutoBundle::set_channels (uint32_t n)
34 {
35         Glib::Mutex::Lock lm (_ports_mutex);
36         _ports.resize (n);
37 }
38
39 void
40 ARDOUR::AutoBundle::set_port (uint32_t c, std::string const & p)
41 {
42         assert (c < nchannels ().get (type()));
43
44         Glib::Mutex::Lock lm (_ports_mutex);
45         _ports[c].resize (1);
46         _ports[c][0] = p;
47 }