1
#ifndef INCLUDED_AUDIOIO_JACK_H
2
#define INCLUDED_AUDIOIO_JACK_H
6
#include "audioio-device.h"
7
#include "sample-specs.h"
9
class AUDIO_IO_MANAGER;
10
class AUDIO_IO_JACK_MANAGER;
13
* Interface to JACK audio framework.
15
* @author Kai Vehmanen
17
class AUDIO_IO_JACK : public AUDIO_IO_DEVICE {
21
virtual std::string name(void) const { return("JACK interface"); }
22
virtual std::string description(void) const { return(name()); }
23
virtual std::string parameter_names(void) const;
28
virtual void set_parameter(int param, string value);
29
virtual string get_parameter(int param) const;
31
/** @name Function reimplemented from AUDIO_IO */
34
virtual int supported_io_modes(void) const { return(io_read | io_write); }
35
virtual bool locked_audio_format(void) const { return(true); }
37
virtual void open(void) throw(AUDIO_IO::SETUP_ERROR&);
38
virtual void close(void);
40
virtual bool finished(void) const;
42
virtual long int read_samples(void* target_buffer, long int samples);
43
virtual void write_samples(void* target_buffer, long int samples);
45
virtual AUDIO_IO_MANAGER* create_object_manager(void) const;
46
void set_manager(AUDIO_IO_JACK_MANAGER* mgr, int id);
50
/** @name Function reimplemented from AUDIO_IO_DEVICE */
53
virtual void prepare(void);
54
virtual void start(void);
55
virtual void stop(void);
57
virtual long int latency(void) const;
58
virtual long int prefill_space(void) const { return(0); }
62
AUDIO_IO_JACK* clone(void) const { return new AUDIO_IO_JACK(*this); }
63
AUDIO_IO_JACK* new_expr(void) const { return new AUDIO_IO_JACK(); }
67
AUDIO_IO_JACK_MANAGER* jackmgr_rep;
70
std::string secondparam_rep;
71
SAMPLE_SPECS::sample_pos_t curpos_rep;
75
AUDIO_IO_JACK (const AUDIO_IO_JACK& x) { }
76
AUDIO_IO_JACK& operator=(const AUDIO_IO_JACK& x) { return *this; }
79
#ifdef ECA_ENABLE_AUDIOIO_PLUGINS
81
AUDIO_IO* audio_io_descriptor(void);
82
int audio_io_interface_version(void);
83
const char* audio_io_keyword(void);
84
const char* audio_io_keyword_regex(void);