projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Amend f3c0c1a865 (Add quarter-note position methods).
[ardour.git]
/
libs
/
ardour
/
ardour
/
coreaudiosource.h
diff --git
a/libs/ardour/ardour/coreaudiosource.h
b/libs/ardour/ardour/coreaudiosource.h
index 6aa3722ed72685f4f3a75f113ca6b770b23ae610..bb007768398b83911a16ad3581f3bb40ca82df9c 100644
(file)
--- a/
libs/ardour/ardour/coreaudiosource.h
+++ b/
libs/ardour/ardour/coreaudiosource.h
@@
-1,5
+1,5
@@
/*
/*
- Copyright (C) 2000 Paul Davis
+ Copyright (C) 2000 Paul Davis
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@
-17,43
+17,57
@@
*/
*/
-#ifndef __coreaudio_source_h__
+#ifndef __coreaudio_source_h__
#define __coreaudio_source_h__
#define __coreaudio_source_h__
-#include <appleutility/CAAudioFile.h>
+#ifdef COREAUDIO105
+#include "CAAudioFile.h"
+#else
+#include "CAExtAudioFile.h"
+#endif
+#include "ardour/audiofilesource.h"
+#include <string>
-#include <ardour/audiofilesource.h>
+using namespace std;
namespace ARDOUR {
namespace ARDOUR {
-class CoreAudioSource : public AudioFileSource {
+class
LIBARDOUR_API
CoreAudioSource : public AudioFileSource {
public:
public:
- CoreAudioSource (const XMLNode&);
- CoreAudioSource (
const string& path_plus_channel
, Flag);
+ CoreAudioSource (
ARDOUR::Session&,
const XMLNode&);
+ CoreAudioSource (
ARDOUR::Session&, const string& path, int chn
, Flag);
~CoreAudioSource ();
~CoreAudioSource ();
+ void set_path (const std::string& p);
+
float sample_rate() const;
float sample_rate() const;
- int update_header (jack_nframes_t when, struct tm&, time_t);
+ int update_header (framepos_t when, struct tm&, time_t);
+
+ uint32_t channel_count () const { return n_channels; }
int flush_header () {return 0;};
void set_header_timeline_position () {};
int flush_header () {return 0;};
void set_header_timeline_position () {};
+ bool clamped_at_unity () const { return false; }
+
+ void flush () {}
+
+ static int get_soundfile_info (string path, SoundFileInfo& _info, string& error_msg);
protected:
protected:
- jack_nframes_t read_unlocked (Sample *dst, jack_nframes_t start, jack_nframes_t cnt) const;
-
- jack_nframes_t write_unlocked (Sample *dst, jack_nframes_t cnt)
- { return 0; }
-
+ void close ();
+ framecnt_t read_unlocked (Sample *dst, framepos_t start, framecnt_t cnt) const;
+ framecnt_t write_unlocked (Sample *, framecnt_t) { return 0; }
private:
private:
+#ifdef COREAUDIO105
mutable CAAudioFile af;
mutable CAAudioFile af;
+#else
+ mutable CAExtAudioFile af;
+#endif
uint16_t n_channels;
uint16_t n_channels;
- mutable float *tmpbuf;
- mutable jack_nframes_t tmpbufsize;
- mutable Glib::Mutex _tmpbuf_lock;
-
- void init (const string &str);
+ void init_cafile ();
+ int safe_read (Sample*, framepos_t start, framecnt_t cnt, AudioBufferList&) const;
};
}; /* namespace ARDOUR */
};
}; /* namespace ARDOUR */