summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/audio_backend.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-07-31 19:47:20 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-07-31 19:47:20 -0400
commitb5239317d4657ad689ef7ef4d11c1fb6ae3e699b (patch)
tree830f8a759967912f7032eb92613b16024920d805 /libs/ardour/ardour/audio_backend.h
parentfbfa0acebe01e85629c415bec849ca36324c56b1 (diff)
more stuff compiles
Diffstat (limited to 'libs/ardour/ardour/audio_backend.h')
-rw-r--r--libs/ardour/ardour/audio_backend.h23
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__ */