ardour
audio_playlist_importer.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2008 Paul Davis
3  Author: Sakari Bergen
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 #ifndef __ardour_audio_playlist_importer_h__
22 #define __ardour_audio_playlist_importer_h__
23 
24 #include <list>
25 
26 #include <boost/shared_ptr.hpp>
27 
28 #include "pbd/xml++.h"
29 #include "pbd/id.h"
30 
33 
34 namespace ARDOUR {
35 
36 class AudioRegionImportHandler;
37 class AudioRegionImporter;
38 class AudioPlaylistImporter;
39 class Session;
40 
42 {
43  public:
45  typedef std::list<PlaylistPtr> PlaylistList;
46 
47  AudioPlaylistImportHandler (XMLTree const & source, Session & session, AudioRegionImportHandler & region_handler, const char * nodename = "Playlists");
49  virtual std::string get_info () const;
50 
51  void get_regions (XMLNode const & node, ElementList & list) const;
52  void update_region_id (XMLProperty* id_prop);
53 
54  void playlists_by_diskstream (PBD::ID const & id, PlaylistList & list) const;
55 
56  protected:
58 };
59 
61 {
62  public:
63  UnusedAudioPlaylistImportHandler (XMLTree const & source, Session & session, AudioRegionImportHandler & region_handler) :
64  AudioPlaylistImportHandler (source, session, region_handler, "UnusedPlaylists") { }
65  std::string get_info () const;
66 };
67 
69 {
70  public:
71  AudioPlaylistImporter (XMLTree const & source, Session & session, AudioPlaylistImportHandler & handler, XMLNode const & node);
74 
75  std::string get_info () const;
76 
77  void set_diskstream (PBD::ID const & id);
78  PBD::ID const & orig_diskstream () const { return orig_diskstream_id; }
79 
80  protected:
81  bool _prepare_move ();
82  void _cancel_move ();
83  void _move ();
84 
85  private:
86  typedef std::list<boost::shared_ptr<AudioRegionImporter> > RegionList;
87 
88  void populate_region_list ();
89 
91  XMLNode const & orig_node;
95  RegionList regions;
96 };
97 
98 } // namespace ARDOUR
99 
100 #endif
AudioRegionImportHandler & region_handler
boost::shared_ptr< AudioPlaylistImporter > PlaylistPtr
UnusedAudioPlaylistImportHandler(XMLTree const &source, Session &session, AudioRegionImportHandler &region_handler)
Definition: xml++.h:55
Definition: id.h:32
PBD::ID const & orig_diskstream() const
Virtual interface class for element importers.
std::list< boost::shared_ptr< AudioRegionImporter > > RegionList
Definition: amp.h:29
AudioPlaylistImportHandler & handler
#define LIBARDOUR_API
Virtual interface class for element import handlers.
Definition: xml++.h:95