2
Copyright (C) 2008 Paul Davis
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.
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.
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.
21
#ifndef __ardour_audio_playlist_importer_h__
22
#define __ardour_audio_playlist_importer_h__
26
#include <boost/shared_ptr.hpp>
28
#include "pbd/xml++.h"
31
#include "ardour/element_importer.h"
32
#include "ardour/element_import_handler.h"
36
class AudioRegionImportHandler;
37
class AudioRegionImporter;
38
class AudioPlaylistImporter;
41
class AudioPlaylistImportHandler : public ElementImportHandler
44
typedef boost::shared_ptr<AudioPlaylistImporter> PlaylistPtr;
45
typedef std::list<PlaylistPtr> PlaylistList;
47
AudioPlaylistImportHandler (XMLTree const & source, Session & session, AudioRegionImportHandler & region_handler, const char * nodename = "Playlists");
48
virtual ~AudioPlaylistImportHandler () {}
49
virtual std::string get_info () const;
51
void get_regions (XMLNode const & node, ElementList & list) const;
52
void update_region_id (XMLProperty* id_prop);
54
void playlists_by_diskstream (PBD::ID const & id, PlaylistList & list) const;
57
AudioRegionImportHandler & region_handler;
60
class UnusedAudioPlaylistImportHandler : public AudioPlaylistImportHandler
63
UnusedAudioPlaylistImportHandler (XMLTree const & source, Session & session, AudioRegionImportHandler & region_handler) :
64
AudioPlaylistImportHandler (source, session, region_handler, "UnusedPlaylists") { }
65
std::string get_info () const;
68
class AudioPlaylistImporter : public ElementImporter
71
AudioPlaylistImporter (XMLTree const & source, Session & session, AudioPlaylistImportHandler & handler, XMLNode const & node);
72
AudioPlaylistImporter (AudioPlaylistImporter const & other);
73
~AudioPlaylistImporter ();
75
std::string get_info () const;
77
void set_diskstream (PBD::ID const & id);
78
PBD::ID const & orig_diskstream () const { return orig_diskstream_id; }
81
bool _prepare_move ();
86
typedef std::list<boost::shared_ptr<AudioRegionImporter> > RegionList;
88
void populate_region_list ();
90
AudioPlaylistImportHandler & handler;
91
XMLNode const & orig_node;
93
PBD::ID orig_diskstream_id;
94
PBD::ID diskstream_id;