ardour
session_object.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2000-2010 Paul 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 */
19 
20 #ifndef __ardour_session_object_h__
21 #define __ardour_session_object_h__
22 
23 #include <string>
25 #include "pbd/signals.h"
26 #include "pbd/properties.h"
27 
28 #include "ardour/ardour.h"
29 #include "ardour/session_handle.h"
30 
31 namespace ARDOUR {
32 
33 namespace Properties {
35 }
36 
37 class Session;
38 
44 {
45  public:
46  static void make_property_quarks ();
47 
48  SessionObject (Session& session, const std::string& name)
49  : SessionHandleRef (session)
50  , _name (Properties::name, name)
51  {
52  add_property (_name);
53  }
54 
55  Session& session() const { return _session; }
56  std::string name() const { return _name; }
57 
58  virtual bool set_name (const std::string& str) {
59  if (_name != str) {
60  _name = str;
61  PropertyChanged (PBD::PropertyChange (Properties::name));
62  }
63  return true;
64  }
65 
66  protected:
68 };
69 
70 } // namespace ARDOUR
71 
72 #endif /*__ardour_io_h__ */
Session & session() const
LIBARDOUR_API PBD::PropertyDescriptor< std::string > name
SessionObject(Session &session, const std::string &name)
Definition: amp.h:29
virtual bool set_name(const std::string &str)
LIBARDOUR_API void make_property_quarks()
RouteGroup::RouteGroup(Session &s, const string &n) add_property(_relative)
Definition: route_group.cc:101
PBD::Property< std::string > _name
#define LIBARDOUR_API
const char * name
std::string name() const