2 Copyright (C) 2000-2006 Paul Davis
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.
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.
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.
21 #include <pbd/error.h>
23 #include <ardour/session.h>
25 #include <ardour/playlist.h>
26 #include <ardour/audioplaylist.h>
28 #include <ardour/region_factory.h>
29 #include <ardour/region.h>
30 #include <ardour/audioregion.h>
34 using namespace ARDOUR;
38 ARDOUR::createRegion (const Region& region, jack_nframes_t start,
39 jack_nframes_t length, std::string name,
40 layer_t layer, Region::Flag flags)
42 const AudioRegion* ar;
44 if ((ar = dynamic_cast<const AudioRegion*>(®ion)) != 0) {
46 ret = new AudioRegion (*ar, start, length, name, layer, flags);
49 fatal << _("programming error: Playlist::createRegion called with unknown Region type")
57 ARDOUR::createRegion (const Region& region)
59 const AudioRegion* ar;
61 if ((ar = dynamic_cast<const AudioRegion*>(®ion)) != 0) {
62 return new AudioRegion (*ar);
64 fatal << _("programming error: Playlist::createRegion called with unknown Region type")
72 ARDOUR::createRegion (Session& session, XMLNode& node, bool yn)
74 return session.XMLRegionFactory (node, yn);
78 Playlist::copyPlaylist (const Playlist& playlist, jack_nframes_t start, jack_nframes_t length,
79 string name, bool result_is_hidden)
81 const AudioPlaylist* apl;
83 if ((apl = dynamic_cast<const AudioPlaylist*> (&playlist)) != 0) {
84 return new AudioPlaylist (*apl, start, length, name, result_is_hidden);
86 fatal << _("programming error: Playlist::copyPlaylist called with unknown Playlist type")