summaryrefslogtreecommitdiff
path: root/libs/ardour/audiofilesource.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2006-07-05 19:47:25 +0000
committerDavid Robillard <d@drobilla.net>2006-07-05 19:47:25 +0000
commit22c20ab6f215c0ab24702a479aa6821c25a7d058 (patch)
tree3f606773d2082fd3f28857e1c1ef876d2e007559 /libs/ardour/audiofilesource.cc
parent5dc4abef7951c1a1b85fb6b9dbb194d73b8c4c2b (diff)
Merged with trunk, and a few trivial GUI updates etc.
git-svn-id: svn://localhost/ardour2/branches/midi@664 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/audiofilesource.cc')
-rw-r--r--libs/ardour/audiofilesource.cc54
1 files changed, 27 insertions, 27 deletions
diff --git a/libs/ardour/audiofilesource.cc b/libs/ardour/audiofilesource.cc
index 1e13a29acc..0663f5f9b1 100644
--- a/libs/ardour/audiofilesource.cc
+++ b/libs/ardour/audiofilesource.cc
@@ -42,7 +42,7 @@
// if these headers come before sigc++ is included
// the parser throws ObjC++ errors. (nil is a keyword)
#ifdef HAVE_COREAUDIO
-#include <ardour/coreaudio_source.h>
+#include <ardour/coreaudiosource.h>
#include <AudioToolbox/ExtendedAudioFile.h>
#include <AudioToolbox/AudioFormat.h>
#endif // HAVE_COREAUDIO
@@ -55,9 +55,9 @@ using namespace PBD;
string AudioFileSource::peak_dir = "";
string AudioFileSource::search_path;
-sigc::signal<void,struct tm*, time_t> AudioFileSource::HeaderPositionOffsetChanged;
-bool AudioFileSource::header_position_negative;
-uint64_t AudioFileSource::header_position_offset;
+sigc::signal<void> AudioFileSource::HeaderPositionOffsetChanged;
+bool AudioFileSource::header_position_negative;
+uint64_t AudioFileSource::header_position_offset;
char AudioFileSource::bwf_country_code[3] = "US";
char AudioFileSource::bwf_organization_code[4] = "LAS";
@@ -122,7 +122,6 @@ AudioFileSource::init (string pathstr, bool must_exist)
next_peak_clear_should_notify = false;
if (!find (pathstr, must_exist, is_new)) {
- cerr << "cannot find " << pathstr << " with me = " << must_exist << endl;
return -1;
}
@@ -211,16 +210,16 @@ AudioFileSource::create (const XMLNode& node)
#ifdef HAVE_COREAUDIO
AudioFileSource*
-AudioFileSource::create (const string& idstr)
+AudioFileSource::create (const string& idstr, Flag flags)
{
AudioFileSource* es = 0;
try {
- es = new CoreAudioSource (idstr);
+ es = new CoreAudioSource (idstr, flags);
}
catch (failed_constructor& err) {
- es = new SndFileSource (idstr);
+ es = new SndFileSource (idstr, flags);
}
return es;
@@ -229,9 +228,9 @@ AudioFileSource::create (const string& idstr)
#else
AudioFileSource*
-AudioFileSource::create (string idstr)
+AudioFileSource::create (const string& idstr, Flag flags)
{
- return new SndFileSource (idstr);
+ return new SndFileSource (idstr, flags);
}
#endif // HAVE_COREAUDIO
@@ -595,33 +594,28 @@ AudioFileSource::set_search_path (string p)
void
AudioFileSource::set_header_position_offset (jack_nframes_t offset, bool negative)
{
- time_t tnow;
-
- time (&tnow);
-
header_position_offset = offset;
header_position_negative = negative;
- HeaderPositionOffsetChanged (localtime (&tnow), tnow); /* EMIT SIGNAL */
-}
-void
-AudioFileSource::set_timeline_position (jack_nframes_t pos)
-{
- timeline_position = pos;
+ HeaderPositionOffsetChanged ();
}
-void
-AudioFileSource::handle_header_position_change (struct tm* now, time_t tnow)
+void
+AudioFileSource::handle_header_position_change ()
{
- /* don't do this if the file has never had its header flushed to disk yet */
-
- if (writable() && _timestamp) {
+ if (writable()) {
set_header_timeline_position ();
flush_header ();
}
}
void
+AudioFileSource::set_timeline_position (jack_nframes_t pos)
+{
+ timeline_position = pos;
+}
+
+void
AudioFileSource::set_allow_remove_if_empty (bool yn)
{
if (writable()) {
@@ -655,8 +649,14 @@ AudioFileSource::set_name (string newname, bool destructive)
bool
AudioFileSource::is_empty (string path)
{
- /* XXX fix me */
+ bool ret = false;
+ AudioFileSource* afs = create (path, NoPeakFile);
- return false;
+ if (afs) {
+ ret = (afs->length() == 0);
+ delete afs;
+ }
+
+ return ret;
}