Support LV2 atom sequence ports alongside old event ports.
[ardour.git] / libs / ardour / crossfade_binder.cc
1 /* 
2     Copyright (C) 2011 Paul Davis
3     Author: Carl Hetherington <cth@carlh.net>
4
5     This program is free software; you can redistribute it and/or modify
6     it under the terms of the GNU General Public License as published by
7     the Free Software Foundation; either version 2 of the License, or
8     (at your option) any later version.
9
10     This program is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU General Public License for more details.
14
15     You should have received a copy of the GNU General Public License
16     along with this program; if not, write to the Free Software
17     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18
19 */
20
21 #include "ardour/crossfade_binder.h"
22 #include "ardour/session_playlists.h"
23 #include "ardour/crossfade.h"
24
25 using namespace ARDOUR;
26
27 CrossfadeBinder::CrossfadeBinder (boost::shared_ptr<SessionPlaylists> playlists, PBD::ID id)
28         : _playlists (playlists)
29         , _id (id)
30 {
31         
32 }
33
34
35 CrossfadeBinder::CrossfadeBinder (XMLNode* node, boost::shared_ptr<SessionPlaylists> playlists)
36         : _playlists (playlists)
37 {
38         XMLProperty* id = node->property ("crossfade-id");
39         assert (id);
40
41         _id = PBD::ID (id->value ());
42 }
43
44 ARDOUR::Crossfade *
45 CrossfadeBinder::get () const
46 {
47         ARDOUR::Crossfade* c = _playlists->find_crossfade (_id).get ();
48         assert (c);
49         return c;
50 }
51
52 std::string
53 CrossfadeBinder::type_name () const
54 {
55         return "ARDOUR::Crossfade";
56 }
57
58 void
59 CrossfadeBinder::add_state (XMLNode* node)
60 {
61         node->add_property ("crossfade-id", _id.to_s ());
62 }
63