00001
00018 #ifndef JezabelALSADriver_included
00019 #define JezabelALSADriver_included
00020
00021 #include <jezabeldriver.h>
00022 #include <alsa/asoundlib.h>
00023
00024
00032 class JezabelALSADriver : public JezabelDriver {
00033 public:
00034
00036 JezabelALSADriver(const char *device);
00037
00038 virtual ~JezabelALSADriver(){}
00039
00040 virtual void setTool(JezabelTool *tool);
00041
00042 virtual void start(JezabelPosition max = JezabelLengthMax);
00043
00044 virtual void stop();
00045
00046 virtual void doit();
00047
00049 static char *deviceName(int N);
00050
00051 protected:
00052
00053 char *device;
00054 int playback_ports, capture_ports;
00055 snd_pcm_t **alsa_handles;
00056 unsigned int playback_voices;
00057 unsigned int capture_voices;
00058 unsigned int bytes_per_sample;
00059 unsigned int samples_per_frame;
00060 unsigned int playback_bytes_per_frame;
00061 unsigned int capture_bytes_per_frame;
00062 bool device_is_open;
00063 char *playback_frame, *capture_frame;
00064 int frame_count;
00065
00066 void start_audio();
00067
00068
00069 };
00070
00071 #endif
00072
00073