⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 caiaq-device.h

📁 linux 内核源代码
💻 H
字号:
#ifndef CAIAQ_DEVICE_H#define CAIAQ_DEVICE_H#include "../usbaudio.h"#define USB_VID_NATIVEINSTRUMENTS 0x17cc#define USB_PID_RIGKONTROL2	0x1969#define USB_PID_RIGKONTROL3	0x1940#define USB_PID_KORECONTROLLER 	0x4711#define USB_PID_AK1		0x0815#define USB_PID_AUDIO8DJ	0x1978#define EP1_BUFSIZE 64#define CAIAQ_USB_STR_LEN 0xff#define MAX_STREAMS 32//#define	SND_USB_CAIAQ_DEBUG#define MODNAME "snd-usb-caiaq"#define log(x...) snd_printk(KERN_WARNING MODNAME" log: " x)#ifdef SND_USB_CAIAQ_DEBUG#define debug(x...) snd_printk(KERN_WARNING MODNAME " debug: " x)#else#define debug(x...) do { } while(0)#endif#define EP1_CMD_GET_DEVICE_INFO	0x1#define EP1_CMD_READ_ERP	0x2#define EP1_CMD_READ_ANALOG	0x3#define EP1_CMD_READ_IO		0x4#define EP1_CMD_WRITE_IO	0x5#define EP1_CMD_MIDI_READ	0x6#define EP1_CMD_MIDI_WRITE	0x7#define EP1_CMD_AUDIO_PARAMS	0x9#define EP1_CMD_AUTO_MSG	0xbstruct caiaq_device_spec {	unsigned short fw_version;	unsigned char hw_subtype;	unsigned char num_erp;	unsigned char num_analog_in;	unsigned char num_digital_in;	unsigned char num_digital_out;	unsigned char num_analog_audio_out;	unsigned char num_analog_audio_in;	unsigned char num_digital_audio_out;	unsigned char num_digital_audio_in;	unsigned char num_midi_out;	unsigned char num_midi_in;	unsigned char data_alignment;} __attribute__ ((packed));struct snd_usb_caiaq_cb_info;struct snd_usb_caiaqdev {	struct snd_usb_audio chip;	struct urb ep1_in_urb;	struct urb midi_out_urb;	struct urb **data_urbs_in;	struct urb **data_urbs_out;	struct snd_usb_caiaq_cb_info *data_cb_info;		unsigned char ep1_in_buf[EP1_BUFSIZE];	unsigned char ep1_out_buf[EP1_BUFSIZE];	unsigned char midi_out_buf[EP1_BUFSIZE];	struct caiaq_device_spec spec;	spinlock_t spinlock;	wait_queue_head_t ep1_wait_queue;	wait_queue_head_t prepare_wait_queue;	int spec_received, audio_parm_answer;		char vendor_name[CAIAQ_USB_STR_LEN];	char product_name[CAIAQ_USB_STR_LEN];	char serial[CAIAQ_USB_STR_LEN];	int n_streams, n_audio_in, n_audio_out;	int streaming, first_packet, output_running;	int audio_in_buf_pos[MAX_STREAMS];	int audio_out_buf_pos[MAX_STREAMS];	int period_in_count[MAX_STREAMS];	int period_out_count[MAX_STREAMS];	int input_panic, output_panic;	char *audio_in_buf, *audio_out_buf;	unsigned int samplerates;	struct snd_pcm_substream *sub_playback[MAX_STREAMS];	struct snd_pcm_substream *sub_capture[MAX_STREAMS];	/* Linux input */#ifdef CONFIG_SND_USB_CAIAQ_INPUT	struct input_dev *input_dev;#endif		/* ALSA */	struct snd_pcm *pcm;	struct snd_pcm_hardware pcm_info;	struct snd_rawmidi *rmidi;	struct snd_rawmidi_substream *midi_receive_substream;	struct snd_rawmidi_substream *midi_out_substream;};struct snd_usb_caiaq_cb_info {	struct snd_usb_caiaqdev *dev;	int index;};#define caiaqdev(c) ((struct snd_usb_caiaqdev*)(c)->private_data)int snd_usb_caiaq_set_audio_params (struct snd_usb_caiaqdev *dev, int rate, int depth, int bbp);int snd_usb_caiaq_set_auto_msg (struct snd_usb_caiaqdev *dev, int digital, int analog, int erp);#endif /* CAIAQ_DEVICE_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -