diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-07-31 19:47:20 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-07-31 19:47:20 -0400 |
commit | b5239317d4657ad689ef7ef4d11c1fb6ae3e699b (patch) | |
tree | 830f8a759967912f7032eb92613b16024920d805 /libs/ardour/ardour/audio_backend.h | |
parent | fbfa0acebe01e85629c415bec849ca36324c56b1 (diff) |
more stuff compiles
Diffstat (limited to 'libs/ardour/ardour/audio_backend.h')
-rw-r--r-- | libs/ardour/ardour/audio_backend.h | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/libs/ardour/ardour/audio_backend.h b/libs/ardour/ardour/audio_backend.h index 4d6d6a6dd8..44525c8353 100644 --- a/libs/ardour/ardour/audio_backend.h +++ b/libs/ardour/ardour/audio_backend.h @@ -33,6 +33,8 @@ namespace ARDOUR { class AudioEngine; +class PortEngine; +class PortManager; class AudioBackend { public: @@ -47,15 +49,18 @@ class AudioBackend { */ virtual std::string name() const = 0; + /** Return a private, type-free pointer to any data + * that might be useful to a concrete implementation + */ virtual void* private_handle() const = 0; - /** return true if the underlying mechanism/API is still available + /** 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. */ virtual bool connected() const = 0; - /** return true if the callback from the underlying mechanism/API + /** Return true if the callback from the underlying mechanism/API * (CoreAudio, JACK, ASIO etc.) occurs in a thread subject to realtime * constraints. Return false otherwise. */ @@ -160,6 +165,8 @@ class AudioBackend { */ virtual int set_systemic_output_latency (uint32_t) = 0; + /* Retrieving parameters */ + virtual std::string device_name () const = 0; virtual float sample_rate () const = 0; virtual uint32_t buffer_size () const = 0; @@ -337,7 +344,17 @@ class AudioBackend { AudioEngine& engine; }; -} +struct AudioBackendInfo { + const char* name; + + int (*instantiate) (const std::string& arg1, const std::string& arg2); + int (*deinstantiate) (void); + + boost::shared_ptr<AudioBackend> (*backend_factory) (AudioEngine&); + boost::shared_ptr<PortEngine> (*portengine_factory) (PortManager&); +}; + +} // namespace #endif /* __libardour_audiobackend_h__ */ |