summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/jack_audiobackend.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/ardour/jack_audiobackend.h')
-rw-r--r--libs/ardour/ardour/jack_audiobackend.h52
1 files changed, 40 insertions, 12 deletions
diff --git a/libs/ardour/ardour/jack_audiobackend.h b/libs/ardour/ardour/jack_audiobackend.h
index 2e12d521cd..218f08b55e 100644
--- a/libs/ardour/ardour/jack_audiobackend.h
+++ b/libs/ardour/ardour/jack_audiobackend.h
@@ -17,34 +17,62 @@
*/
-#ifndef __ardour_jack_audiobackend_h__
-#define __ardour_jack_audiobackend_h__
+#ifndef __libardour_jack_audiobackend_h__
+#define __libardour_jack_audiobackend_h__
#include <string>
#include <vector>
#include <stdint.h>
+#include <jack/jack.h>
+#ifdef HAVE_JACK_SESSION
+#include <jack/session.h>
+#endif
+
#include "ardour/audio_backend.h"
namespace ARDOUR {
-class JACKAudioBackend : public {
+class JACKAudioBackend : public AudioBackend {
public:
JACKAudioBackend (AudioEngine& e);
~JACKAudioBackend ();
+ std::string name() const;
+ bool connected() const;
+ bool is_realtime () const;
+
std::vector<std::string> enumerate_devices () const;
std::vector<float> available_sample_rates (const std::string& device) const;
std::vector<uint32_t> available_buffer_sizes (const std::string& device) const;
-
- int set_parameters (const Parameters&);
- int get_parameters (Parameters&) const;
+ uint32_t available_input_channel_count (const std::string& device) const;
+ uint32_t available_output_channel_count (const std::string& device) const;
+
+ int set_device_name (const std::string&);
+ int set_sample_rate (float);
+ int set_buffer_size (uint32_t);
+ int set_sample_format (SampleFormat);
+ int set_interleaved (bool yn);
+ int set_input_channels (uint32_t);
+ int set_output_channels (uint32_t);
+ int set_systemic_input_latency (uint32_t);
+ int set_systemic_output_latency (uint32_t);
+
+ std::string get_device_name () const;
+ float get_sample_rate () const;
+ uint32_t get_buffer_size () const;
+ SampleFormat get_sample_format () const;
+ bool get_interleaved () const;
+ uint32_t get_input_channels () const;
+ uint32_t get_output_channels () const;
+ uint32_t get_systemic_input_latency () const;
+ uint32_t get_systemic_output_latency () const;
int start ();
int stop ();
int pause ();
- int freewheel ();
+ int freewheel (bool);
private:
jack_client_t* volatile _jack; /* could be reset to null by SIGPIPE or another thread */
@@ -60,10 +88,10 @@ class JACKAudioBackend : public {
static void _freewheel_callback (int , void *arg);
static void _registration_callback (jack_port_id_t, int, void *);
static void _connect_callback (jack_port_id_t, jack_port_id_t, int, void *);
- static void _latency_callback (jack_latency_callback_mode_t, void*);#
+ static void _latency_callback (jack_latency_callback_mode_t, void*);
static void halted (void *);
static void halted_info (jack_status_t,const char*,void *);
-ifdef HAVE_JACK_SESSION
+#ifdef HAVE_JACK_SESSION
static void _session_callback (jack_session_event_t *event, void *arg);
#endif
@@ -103,11 +131,11 @@ ifdef HAVE_JACK_SESSION
bool _target_interleaved;
uint32_t _target_input_channels;
uint32_t _target_output_channels;
- uin32_t _target_systemic_input_latency;
- uin32_t _target_systemic_input_latency;
+ uint32_t _target_systemic_input_latency;
+ uint32_t _target_systemic_output_latency;
};
-}
+} // namespace
#endif /* __ardour_audiobackend_h__ */