diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2006-06-28 22:00:09 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2006-06-28 22:00:09 +0000 |
commit | 728835e5e7d7b5872a599d9faee1029317d8d43b (patch) | |
tree | 5e69f83bb89fece791ce196cdefc0c9baad02806 /libs/ardour/audiofilesource.cc | |
parent | fdda19d3d45384fb4f158e4f1af18cc17009e478 (diff) |
many fixes to audio file code, SMPTE offset now works correctly
git-svn-id: svn://localhost/ardour2/trunk@649 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/audiofilesource.cc')
-rw-r--r-- | libs/ardour/audiofilesource.cc | 52 |
1 files changed, 26 insertions, 26 deletions
diff --git a/libs/ardour/audiofilesource.cc b/libs/ardour/audiofilesource.cc index b22e27b727..0663f5f9b1 100644 --- a/libs/ardour/audiofilesource.cc +++ b/libs/ardour/audiofilesource.cc @@ -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, Flag(0x0)); + es = new CoreAudioSource (idstr, flags); } catch (failed_constructor& err) { - es = new SndFileSource (idstr, Flag(0x0)); + es = new SndFileSource (idstr, flags); } return es; @@ -229,9 +228,9 @@ AudioFileSource::create (const string& idstr) #else AudioFileSource* -AudioFileSource::create (const string& idstr) +AudioFileSource::create (const string& idstr, Flag flags) { - return new SndFileSource (idstr, Flag(0x0)); + 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; } |