Ardour  9.0-rc1-86-gd23bcd1685
route_group_member.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2009-2016 Paul Davis <paul@linuxaudiosystems.com>
3  * Copyright (C) 2010-2011 Carl Hetherington <carl@carlh.net>
4  * Copyright (C) 2011-2012 David Robillard <d@drobilla.net>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License along
17  * with this program; if not, write to the Free Software Foundation, Inc.,
18  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19  */
20 
21 #pragma once
22 
24 
25 #include "pbd/controllable.h"
26 #include "pbd/signals.h"
27 
28 #include "ardour/route_group.h"
29 
30 namespace ARDOUR {
31 
32 //class RouteGroup;
33 
35 {
36  public:
37  RouteGroupMember () : _route_group (0) {}
38  virtual ~RouteGroupMember() {}
39 
40  std::shared_ptr<RouteGroup> route_group () const { return _route_group ? _route_group : nullptr; }
41 
44 
45  protected:
46  std::shared_ptr<RouteGroup> _route_group;
47 
48  private:
49  friend class RouteGroup;
50 
51  void set_route_group (std::shared_ptr<RouteGroup>);
52 };
53 
54 }
55 
PBD::Signal< void()> route_group_changed
std::shared_ptr< RouteGroup > _route_group
std::shared_ptr< RouteGroup > route_group() const
void set_route_group(std::shared_ptr< RouteGroup >)
#define LIBARDOUR_API