ardour
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
libs
ardour
ardour
sndfileimportable.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2007 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_sndfile_importable_source_h__
21
#define __ardour_sndfile_importable_source_h__
22
23
#include <boost/shared_ptr.hpp>
24
#include <sndfile.h>
25
#include "
ardour/libardour_visibility.h
"
26
#include "
ardour/types.h
"
27
#include "
ardour/importable_source.h
"
28
29
namespace
ARDOUR
{
30
31
class
LIBARDOUR_API
SndFileImportableSource
:
public
ImportableSource
{
32
public
:
33
SndFileImportableSource
(
const
std::string& path);
34
virtual
~
SndFileImportableSource
();
35
36
framecnt_t
read (
Sample
* buffer,
framecnt_t
nframes);
37
uint32_t channels()
const
;
38
framecnt_t
length
()
const
;
39
framecnt_t
samplerate()
const
;
40
void
seek (
framepos_t
pos);
41
framepos_t
natural_position()
const
;
42
bool
clamped_at_unity ()
const
;
43
44
protected
:
45
SF_INFO
sf_info
;
46
boost::shared_ptr<SNDFILE>
in
;
47
48
/* these are int64_t so as to be independent of whatever
49
types Ardour may use for framepos_t, framecnt_t etc.
50
*/
51
52
int64_t
timecode
;
53
int64_t get_timecode_info (SNDFILE*, SF_BROADCAST_INFO*,
bool
&);
54
};
55
56
}
57
58
#endif
/* __ardour_sndfile_importable_source_h__ */
types.h
ARDOUR::SndFileImportableSource::sf_info
SF_INFO sf_info
Definition:
sndfileimportable.h:45
importable_source.h
ARDOUR::SndFileImportableSource::timecode
int64_t timecode
Definition:
sndfileimportable.h:52
boost::shared_ptr< SNDFILE >
ARDOUR::SndFileImportableSource
Definition:
sndfileimportable.h:31
ARDOUR::framecnt_t
int64_t framecnt_t
Definition:
types.h:76
ARDOUR::Sample
float Sample
Definition:
types.h:54
ARDOUR
Definition:
amp.h:29
ARDOUR::framepos_t
int64_t framepos_t
Definition:
types.h:66
libardour_visibility.h
ARDOUR::ImportableSource
Definition:
importable_source.h:29
LIBARDOUR_API
#define LIBARDOUR_API
Definition:
libardour_visibility.h:40
ARDOUR::SndFileImportableSource::in
boost::shared_ptr< SNDFILE > in
Definition:
sndfileimportable.h:46
ARDOUR::Properties::length
LIBARDOUR_API PBD::PropertyDescriptor< framecnt_t > length
Definition:
region.cc:64
Generated on Sun May 24 2015 12:15:05 for ardour by
1.8.8