00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __jack_usx2y_h__
00023 #define __jack_usx2y_h__
00024
00025 #define USX2Y_MAXPACK 50
00026 #define USX2Y_MAXBUFFERMS 100
00027 #define USX2Y_MAXSTRIDE 3
00028
00029 #define USX2Y_SSS (((USX2Y_MAXPACK * USX2Y_MAXBUFFERMS * USX2Y_MAXSTRIDE + 4096) / 4096) * 4096)
00030
00031 struct snd_usX2Y_hwdep_pcm_shm
00032 {
00033 char playback[USX2Y_SSS];
00034 char capture0x8[USX2Y_SSS];
00035 char capture0xA[USX2Y_SSS];
00036 volatile int playback_iso_head;
00037 int playback_iso_start;
00038 struct
00039 {
00040 int frame,
00041 offset,
00042 length;
00043 }
00044 captured_iso[128];
00045 volatile int captured_iso_head;
00046 volatile unsigned captured_iso_frames;
00047 int capture_iso_start;
00048 };
00049 typedef struct snd_usX2Y_hwdep_pcm_shm snd_usX2Y_hwdep_pcm_shm_t;
00050
00051 typedef struct
00052 {
00053 alsa_driver_t *driver;
00054 snd_hwdep_t *hwdep_handle;
00055 struct pollfd pfds;
00056 struct snd_usX2Y_hwdep_pcm_shm *hwdep_pcm_shm;
00057 int playback_iso_start;
00058 int playback_iso_bytes_done;
00059 int capture_iso_start;
00060 int capture_iso_bytes_done;
00061 }
00062 usx2y_t;
00063
00064 jack_hardware_t *
00065 jack_alsa_usx2y_hw_new (alsa_driver_t *driver);
00066
00067 #endif