summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/audio_backend.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-07-30 17:48:57 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-07-30 17:48:57 -0400
commit5e0c6af4062a2982fb90ad318973ab1d4beed2b9 (patch)
tree75f33513f650d716fa7b02d2c1289bb8caa6718c /libs/ardour/ardour/audio_backend.h
parenta9691abf3b0eaca5e78bea9e8d1cb7ea700e2e1e (diff)
jack_audiobackend.cc finally compiles
Diffstat (limited to 'libs/ardour/ardour/audio_backend.h')
-rw-r--r--libs/ardour/ardour/audio_backend.h41
1 files changed, 18 insertions, 23 deletions
diff --git a/libs/ardour/ardour/audio_backend.h b/libs/ardour/ardour/audio_backend.h
index e8511d0c57..4d6d6a6dd8 100644
--- a/libs/ardour/ardour/audio_backend.h
+++ b/libs/ardour/ardour/audio_backend.h
@@ -28,6 +28,8 @@
#include <boost/function.hpp>
+#include "ardour/types.h"
+
namespace ARDOUR {
class AudioEngine;
@@ -45,6 +47,8 @@ class AudioBackend {
*/
virtual std::string name() const = 0;
+ virtual void* private_handle() const = 0;
+
/** return true if the underlying mechanism/API is still available
* for us to utilize. return false if some or all of the AudioBackend
* API can no longer be effectively used.
@@ -98,13 +102,6 @@ class AudioBackend {
*/
virtual uint32_t available_output_channel_count (const std::string& device) const = 0;
- enum SampleFormat {
- Signed16bitInteger,
- Signed24bitInteger,
- Signed32bitInteger,
- FloatingPoint
- };
-
/* Set the hardware parameters.
*
* If called when the current state is stopped or paused,
@@ -163,15 +160,15 @@ class AudioBackend {
*/
virtual int set_systemic_output_latency (uint32_t) = 0;
- virtual std::string get_device_name () const = 0;
- virtual float get_sample_rate () const = 0;
- virtual uint32_t get_buffer_size () const = 0;
- virtual SampleFormat get_sample_format () const = 0;
- virtual bool get_interleaved () const = 0;
- virtual uint32_t get_input_channels () const = 0;
- virtual uint32_t get_output_channels () const = 0;
- virtual uint32_t get_systemic_input_latency () const = 0;
- virtual uint32_t get_systemic_output_latency () const = 0;
+ virtual std::string device_name () const = 0;
+ virtual float sample_rate () const = 0;
+ virtual uint32_t buffer_size () const = 0;
+ virtual SampleFormat sample_format () const = 0;
+ virtual bool interleaved () const = 0;
+ virtual uint32_t input_channels () const = 0;
+ virtual uint32_t output_channels () const = 0;
+ virtual uint32_t systemic_input_latency () const = 0;
+ virtual uint32_t systemic_output_latency () const = 0;
/* Basic state control */
@@ -246,7 +243,7 @@ class AudioBackend {
* Implementations can feel free to smooth the values returned over
* time (e.g. high pass filtering, or its equivalent).
*/
- virtual float get_cpu_load() const = 0;
+ virtual float cpu_load() const = 0;
/* Transport Control (JACK is the only audio API that currently offers
the concept of shared transport control)
@@ -260,14 +257,14 @@ class AudioBackend {
virtual void transport_stop () {}
/** return the current transport state
*/
- virtual TransportState transport_state () { return TransportStopped; }
+ virtual TransportState transport_state () const { return TransportStopped; }
/** Attempt to locate the transport to @param pos
*/
virtual void transport_locate (framepos_t /*pos*/) {}
/** Return the current transport location, in samples measured
* from the origin (defined by the transport time master)
*/
- virtual framepos_t transport_frame() { return 0; }
+ virtual framepos_t transport_frame() const { return 0; }
/** If @param yn is true, become the time master for any inter-application transport
* timebase, otherwise cease to be the time master for the same.
@@ -279,9 +276,7 @@ class AudioBackend {
*/
virtual int set_time_master (bool /*yn*/) { return 0; }
- virtual framecnt_t sample_rate () const;
- virtual pframes_t samples_per_cycle () const;
- virtual int usecs_per_cycle () const { return 1000000 * (samples_per_cycle() / sample_rate()); }
+ virtual int usecs_per_cycle () const { return 1000000 * (buffer_size() / sample_rate()); }
virtual size_t raw_buffer_size (DataType t);
/* Process time */
@@ -338,7 +333,7 @@ class AudioBackend {
*/
virtual int create_process_thread (boost::function<void()> func, pthread_t*, size_t stacksize) = 0;
- private:
+ protected:
AudioEngine& engine;
};