summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-12-06 18:08:38 +0100
committerRobin Gareus <robin@gareus.org>2019-12-06 18:18:18 +0100
commitbef74c267ef50c93aa726b2f60e63259b2c3799c (patch)
tree580490cce40f377e47370e76e5f14f792212f7db /libs
parent227de8c1b04b68c9e50b6de5adaac435f257f33c (diff)
Add "seekable" SoundFile info (in prep for mp3 import)
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/audiofilesource.h1
-rw-r--r--libs/ardour/coreaudiosource.cc1
-rw-r--r--libs/ardour/sndfilesource.cc1
3 files changed, 3 insertions, 0 deletions
diff --git a/libs/ardour/ardour/audiofilesource.h b/libs/ardour/ardour/audiofilesource.h
index eda90ea9a8..6ee2a93c46 100644
--- a/libs/ardour/ardour/audiofilesource.h
+++ b/libs/ardour/ardour/audiofilesource.h
@@ -36,6 +36,7 @@ struct LIBARDOUR_API SoundFileInfo {
int64_t length;
std::string format_name;
int64_t timecode;
+ bool seekable; // non-seekable files must be converted/imported
};
class LIBARDOUR_API AudioFileSource : public AudioSource, public FileSource {
diff --git a/libs/ardour/coreaudiosource.cc b/libs/ardour/coreaudiosource.cc
index bd454a3a31..c1a5e07c80 100644
--- a/libs/ardour/coreaudiosource.cc
+++ b/libs/ardour/coreaudiosource.cc
@@ -282,6 +282,7 @@ CoreAudioSource::get_soundfile_info (string path, SoundFileInfo& _info, string&)
_info.samplerate = absd.mSampleRate;
_info.channels = absd.mChannelsPerFrame;
+ _info.seekable = true;
size = sizeof(_info.length);
if (ExtAudioFileGetProperty(af, kExtAudioFileProperty_FileLengthFrames, &size, &_info.length) != noErr) {
diff --git a/libs/ardour/sndfilesource.cc b/libs/ardour/sndfilesource.cc
index 0ca7e07247..a14f0e1c72 100644
--- a/libs/ardour/sndfilesource.cc
+++ b/libs/ardour/sndfilesource.cc
@@ -1117,6 +1117,7 @@ SndFileSource::get_soundfile_info (const string& path, SoundFileInfo& info, stri
}
info.timecode = binfo.load_from_file (sf) ? binfo.get_time_reference() : 0;
+ info.seekable = true;
sf_close (sf);