ardour
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
libs
ardour
ardour
audio_playlist_source.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2011 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_audio_playlist_source_h__
21
#define __ardour_audio_playlist_source_h__
22
23
#include <string>
24
25
#include <boost/shared_ptr.hpp>
26
27
#include "
ardour/ardour.h
"
28
#include "
ardour/audiosource.h
"
29
#include "
ardour/playlist_source.h
"
30
31
namespace
ARDOUR
{
32
33
class
AudioPlaylist;
34
35
class
LIBARDOUR_API
AudioPlaylistSource
:
public
PlaylistSource
,
public
AudioSource
{
36
public
:
37
virtual
~
AudioPlaylistSource
();
38
39
bool
empty()
const
;
40
std::string peak_path (std::string audio_path);
41
uint32_t n_channels()
const
;
42
bool
clamped_at_unity
()
const
{
return
false
; }
43
44
framecnt_t
read_unlocked (
Sample
*dst,
framepos_t
start
,
framecnt_t
cnt)
const
;
45
framecnt_t
write_unlocked (
Sample
*src,
framecnt_t
cnt);
46
47
float
sample_rate ()
const
;
48
int
setup_peakfile ();
49
50
XMLNode
& get_state ();
51
int
set_state (
const
XMLNode
&,
int
version);
52
53
bool
can_truncate_peaks
()
const
{
return
false
; }
54
bool
can_be_analysed
()
const
{
return
_length > 0; }
55
56
protected
:
57
friend
class
SourceFactory
;
58
59
AudioPlaylistSource
(
Session
&,
const
PBD::ID
& orig,
const
std::string&
name
,
boost::shared_ptr<AudioPlaylist>
, uint32_t chn,
60
frameoffset_t
begin,
framecnt_t
len,
Source::Flag
flags);
61
AudioPlaylistSource
(
Session
&,
const
XMLNode
&);
62
63
64
private
:
65
uint32_t
_playlist_channel
;
66
std::string
_peak_path
;
67
68
int
set_state (
const
XMLNode
&,
int
version,
bool
with_descendants);
69
};
70
71
}
/* namespace */
72
73
#endif
/* __ardour_audio_playlist_source_h__ */
ARDOUR::AudioPlaylistSource::can_be_analysed
bool can_be_analysed() const
Definition:
audio_playlist_source.h:54
ARDOUR::Session
Definition:
session.h:142
ARDOUR::AudioPlaylistSource
Definition:
audio_playlist_source.h:35
ARDOUR::AudioPlaylistSource::_playlist_channel
uint32_t _playlist_channel
Definition:
audio_playlist_source.h:65
ARDOUR::Properties::start
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > start
Definition:
region.cc:63
PBD::ID
Definition:
id.h:32
ARDOUR::Source::Flag
Flag
Definition:
source.h:42
boost::shared_ptr
Definition:
shared_ptr.hpp:116
ARDOUR::AudioPlaylistSource::clamped_at_unity
bool clamped_at_unity() const
Definition:
audio_playlist_source.h:42
ARDOUR::framecnt_t
int64_t framecnt_t
Definition:
types.h:76
ARDOUR::Sample
float Sample
Definition:
types.h:54
ARDOUR::AudioPlaylistSource::_peak_path
std::string _peak_path
Definition:
audio_playlist_source.h:66
playlist_source.h
ARDOUR
Definition:
amp.h:29
audiosource.h
ARDOUR::framepos_t
int64_t framepos_t
Definition:
types.h:66
ARDOUR::frameoffset_t
int64_t frameoffset_t
Definition:
types.h:71
LIBARDOUR_API
#define LIBARDOUR_API
Definition:
libardour_visibility.h:40
name
const char * name
Definition:
rc_option_editor.cc:257
ARDOUR::PlaylistSource
Definition:
playlist_source.h:34
XMLNode
Definition:
xml++.h:95
ARDOUR::AudioSource
Definition:
audiosource.h:41
ARDOUR::SourceFactory
Definition:
source_factory.h:39
ARDOUR::AudioPlaylistSource::can_truncate_peaks
bool can_truncate_peaks() const
Definition:
audio_playlist_source.h:53
ardour.h
Generated on Sun May 24 2015 12:15:05 for ardour by
1.8.8