alsa_midi_jackmp.cpp

00001 #include "JackAlsaDriver.h"
00002 #include "JackPort.h"
00003 #include "alsa_midi_impl.h"
00004 
00005 using Jack::JackAlsaDriver;
00006 
00007 struct fake_port_t {
00008     JackAlsaDriver* driver;
00009     int port_id;
00010         fake_port_t(JackAlsaDriver *d, int i) : driver(d), port_id(i) {}
00011 };
00012 
00013 int JACK_is_realtime(jack_client_t* client)
00014 {
00015         return ((JackAlsaDriver*)client)->is_realtime();
00016 }
00017 
00018 int JACK_client_create_thread(jack_client_t* client, pthread_t *thread, int priority, int realtime, void *(*start_routine)(void*), void *arg)
00019 {
00020         return ((JackAlsaDriver*)client)->create_thread(thread, priority, realtime, start_routine, arg);
00021 }
00022 
00023 jack_port_t* JACK_port_register(jack_client_t *client, const char *port_name, const char *port_type, unsigned long flags, unsigned long buffer_size)
00024 {
00025         JackAlsaDriver *driver = (JackAlsaDriver*)client;
00026         int port_id = driver->port_register(port_name, port_type, flags, buffer_size);
00027         if (port_id == NO_PORT)
00028             return 0;
00029         else
00030             return (jack_port_t*) new fake_port_t(driver, port_id);
00031 }
00032 
00033 int JACK_port_unregister(jack_client_t *client, jack_port_t *port)
00034 {
00035         fake_port_t* real = (fake_port_t*)port;
00036         int res = 0; //real->driver->port_unregister(real->port_id);
00037         delete real;
00038         return res;
00039 }
00040 
00041 void* JACK_port_get_buffer(jack_port_t *port, jack_nframes_t nframes)
00042 {
00043         fake_port_t* real = (fake_port_t*)port;
00044         return real->driver->port_get_buffer(real->port_id, nframes);
00045 }
00046 
00047 int JACK_port_set_alias(jack_port_t *port, const char* name)
00048 {
00049         fake_port_t* real = (fake_port_t*)port;
00050         return real->driver->port_set_alias(real->port_id, name);
00051 }
00052 
00053 jack_nframes_t JACK_get_sample_rate(jack_client_t *client)
00054 {
00055         return ((JackAlsaDriver*)client)->get_sample_rate();
00056 }
00057 
00058 jack_nframes_t JACK_frame_time(jack_client_t *client)
00059 {
00060         return ((JackAlsaDriver*)client)->frame_time();
00061 }
00062 
00063 jack_nframes_t JACK_last_frame_time(jack_client_t *client)
00064 {
00065         return ((JackAlsaDriver*)client)->last_frame_time();
00066 }

Generated on Thu Feb 14 11:16:01 2008 for Jackdmp by  doxygen 1.5.1