summaryrefslogtreecommitdiff
path: root/libs/ardour/audiofilesource.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2006-06-28 22:00:09 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2006-06-28 22:00:09 +0000
commit728835e5e7d7b5872a599d9faee1029317d8d43b (patch)
tree5e69f83bb89fece791ce196cdefc0c9baad02806 /libs/ardour/audiofilesource.cc
parentfdda19d3d45384fb4f158e4f1af18cc17009e478 (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.cc52
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;
}