00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __JackFreebobDriver__
00023 #define __JackFreebobDriver__
00024
00025 #include "JackAudioDriver.h"
00026 #include "JackThreadedDriver.h"
00027 #include "JackTime.h"
00028
00029 #include "freebob_driver.h"
00030
00031 namespace Jack
00032 {
00033
00038 class JackFreebobDriver : public JackAudioDriver
00039 {
00040
00041 private:
00042
00043
00044 int g_verbose;
00045
00046 jack_driver_t* fDriver;
00047 int freebob_driver_attach (freebob_driver_t *driver);
00048 int freebob_driver_detach (freebob_driver_t *driver);
00049 int freebob_driver_read (freebob_driver_t * driver, jack_nframes_t nframes);
00050 int freebob_driver_write (freebob_driver_t * driver, jack_nframes_t nframes);
00051 jack_nframes_t freebob_driver_wait (freebob_driver_t *driver,
00052 int extra_fd, int *status,
00053 float *delayed_usecs);
00054 int freebob_driver_start (freebob_driver_t *driver);
00055 int freebob_driver_stop (freebob_driver_t *driver);
00056 int freebob_driver_restart (freebob_driver_t *driver);
00057 freebob_driver_t *freebob_driver_new (char *name, freebob_jack_settings_t *params);
00058 void freebob_driver_delete (freebob_driver_t *driver);
00059
00060 #ifdef FREEBOB_DRIVER_WITH_MIDI
00061 freebob_driver_midi_handle_t *freebob_driver_midi_init(freebob_driver_t *driver);
00062 void freebob_driver_midi_finish (freebob_driver_midi_handle_t *m);
00063 int freebob_driver_midi_start (freebob_driver_midi_handle_t *m);
00064 int freebob_driver_midi_stop (freebob_driver_midi_handle_t *m);
00065 #endif
00066
00067 void jack_driver_init (jack_driver_t *driver);
00068 void jack_driver_nt_init (jack_driver_nt_t * driver);
00069
00070 public:
00071
00072 JackFreebobDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table)
00073 :JackAudioDriver(name, alias, engine, table)
00074 {}
00075 virtual ~JackFreebobDriver()
00076 {}
00077
00078 int Open(freebob_jack_settings_t *cmlparams);
00079
00080 int Close();
00081 int Attach();
00082 int Detach();
00083
00084 int Start();
00085 int Stop();
00086
00087 int Read();
00088 int Write();
00089
00090 int SetBufferSize(jack_nframes_t nframes);
00091 };
00092
00093 }
00094
00095 #endif