use session stripable selection API
[ardour.git] / libs / surfaces / mackie / control_group.h
1 #ifndef __ardour_mackie_control_protocol_control_group_h__
2 #define __ardour_mackie_control_protocol_control_group_h__
3
4 #include <vector>
5
6 namespace ArdourSurface {
7 namespace Mackie {
8
9 class Control;
10
11 /**
12         This is a loose group of controls, eg cursor buttons,
13         transport buttons, functions buttons etc.
14 */
15 class Group
16 {
17 public:
18         Group (const std::string & name)
19                 : _name (name) {}
20
21         virtual ~Group() {}
22
23         virtual bool is_strip() const { return false; }
24         virtual bool is_master() const { return false; }
25
26         virtual void add (Control & control);
27
28         const std::string & name() const { return _name; }
29         void set_name (const std::string & rhs) { _name = rhs; }
30
31         typedef std::vector<Control*> Controls;
32         const Controls & controls() const { return _controls; }
33
34 protected:
35         Controls _controls;
36
37 private:
38         std::string _name;
39 };
40
41 }
42 }
43
44 #endif