00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __JackAudioAdapter__
00021 #define __JackAudioAdapter__
00022
00023 #include "JackAudioAdapterInterface.h"
00024 #include "driver_interface.h"
00025
00026 namespace Jack
00027 {
00028
00033 class JackAudioAdapter
00034 {
00035 private:
00036
00037 static int Process(jack_nframes_t, void* arg);
00038 static int BufferSize(jack_nframes_t buffer_size, void* arg);
00039 static int SampleRate(jack_nframes_t sample_rate, void* arg);
00040 static void Latency(jack_latency_callback_mode_t mode, void* arg);
00041
00042 jack_port_t** fCapturePortList;
00043 jack_port_t** fPlaybackPortList;
00044
00045 jack_client_t* fClient;
00046 JackAudioAdapterInterface* fAudioAdapter;
00047 bool fAutoConnect;
00048
00049 void FreePorts();
00050 void ConnectPorts();
00051 void Reset();
00052
00053 public:
00054
00055 JackAudioAdapter(jack_client_t* client, JackAudioAdapterInterface* audio_io, const JSList* params = NULL);
00056 ~JackAudioAdapter();
00057
00058 int Open();
00059 int Close();
00060 };
00061
00062 }
00063
00064 #define CaptureDriverFlags static_cast<JackPortFlags>(JackPortIsOutput | JackPortIsPhysical | JackPortIsTerminal)
00065 #define PlaybackDriverFlags static_cast<JackPortFlags>(JackPortIsInput | JackPortIsPhysical | JackPortIsTerminal)
00066
00067 #endif