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

📄 soundcard.h

📁 linux得一些常用命令,以及linux环境下的c编程
💻 H
📖 第 1 页 / 共 4 页
字号:
#define SEQ_SYNCTIMER		TMR_START#define SEQ_MIDIPUTC		5#define SEQ_DRUMON		6	/*** OBSOLETE ***/#define SEQ_DRUMOFF		7	/*** OBSOLETE ***/#define SEQ_ECHO		TMR_ECHO	/* For synching programs with output */#define SEQ_AFTERTOUCH		9#define SEQ_CONTROLLER		10/******************************************* *	Midi controller numbers ******************************************* * Controllers 0 to 31 (0x00 to 0x1f) and * 32 to 63 (0x20 to 0x3f) are continuous * controllers. * In the MIDI 1.0 these controllers are sent using * two messages. Controller numbers 0 to 31 are used * to send the MSB and the controller numbers 32 to 63 * are for the LSB. Note that just 7 bits are used in MIDI bytes. */#define	   CTL_BANK_SELECT		0x00#define	   CTL_MODWHEEL			0x01#define    CTL_BREATH			0x02/*		undefined		0x03 */#define    CTL_FOOT			0x04#define    CTL_PORTAMENTO_TIME		0x05#define    CTL_DATA_ENTRY		0x06#define    CTL_MAIN_VOLUME		0x07#define    CTL_BALANCE			0x08/*		undefined		0x09 */#define    CTL_PAN			0x0a#define    CTL_EXPRESSION		0x0b/*		undefined		0x0c *//*		undefined		0x0d *//*		undefined		0x0e *//*		undefined		0x0f */#define    CTL_GENERAL_PURPOSE1	0x10#define    CTL_GENERAL_PURPOSE2	0x11#define    CTL_GENERAL_PURPOSE3	0x12#define    CTL_GENERAL_PURPOSE4	0x13/*		undefined		0x14 - 0x1f *//*		undefined		0x20 *//* The controller numbers 0x21 to 0x3f are reserved for the *//* least significant bytes of the controllers 0x00 to 0x1f. *//* These controllers are not recognised by the driver. *//* Controllers 64 to 69 (0x40 to 0x45) are on/off switches. *//* 0=OFF and 127=ON (intermediate values are possible) */#define    CTL_DAMPER_PEDAL		0x40#define    CTL_SUSTAIN			0x40	/* Alias */#define    CTL_HOLD			0x40	/* Alias */#define    CTL_PORTAMENTO		0x41#define    CTL_SOSTENUTO		0x42#define    CTL_SOFT_PEDAL		0x43/*		undefined		0x44 */#define    CTL_HOLD2			0x45/*		undefined		0x46 - 0x4f */#define    CTL_GENERAL_PURPOSE5	0x50#define    CTL_GENERAL_PURPOSE6	0x51#define    CTL_GENERAL_PURPOSE7	0x52#define    CTL_GENERAL_PURPOSE8	0x53/*		undefined		0x54 - 0x5a */#define    CTL_EXT_EFF_DEPTH		0x5b#define    CTL_TREMOLO_DEPTH		0x5c#define    CTL_CHORUS_DEPTH		0x5d#define    CTL_DETUNE_DEPTH		0x5e#define    CTL_CELESTE_DEPTH		0x5e	/* Alias for the above one */#define    CTL_PHASER_DEPTH		0x5f#define    CTL_DATA_INCREMENT		0x60#define    CTL_DATA_DECREMENT		0x61#define    CTL_NONREG_PARM_NUM_LSB	0x62#define    CTL_NONREG_PARM_NUM_MSB	0x63#define    CTL_REGIST_PARM_NUM_LSB	0x64#define    CTL_REGIST_PARM_NUM_MSB	0x65/*		undefined		0x66 - 0x78 *//*		reserved		0x79 - 0x7f *//* Pseudo controllers (not midi compatible) */#define    CTRL_PITCH_BENDER		255#define    CTRL_PITCH_BENDER_RANGE	254#define    CTRL_EXPRESSION		253	/* Obsolete */#define    CTRL_MAIN_VOLUME		252	/* Obsolete */#define SEQ_BALANCE		11#define SEQ_VOLMODE             12/* * Volume mode decides how volumes are used */#define VOL_METHOD_ADAGIO	1#define VOL_METHOD_LINEAR	2/* * Note! SEQ_WAIT, SEQ_MIDIPUTC and SEQ_ECHO are used also as *	 input events. *//* * Event codes 0xf0 to 0xfc are reserved for future extensions. */#define SEQ_FULLSIZE		0xfd	/* Long events *//* *	SEQ_FULLSIZE events are used for loading patches/samples to the *	synthesizer devices. These events are passed directly to the driver *	of the associated synthesizer device. There is no limit to the size *	of the extended events. These events are not queued but executed *	immediately when the write() is called (execution can take several *	seconds of time).  * *	When a SEQ_FULLSIZE message is written to the device, it must *	be written using exactly one write() call. Other events cannot *	be mixed to the same write. *	 *	For FM synths (YM3812/OPL3) use struct sbi_instrument and write it to the  *	/dev/sequencer. Don't write other data together with the instrument structure *	Set the key field of the structure to FM_PATCH. The device field is used to *	route the patch to the corresponding device. * *	For wave table use struct patch_info. Initialize the key field *      to WAVE_PATCH. */#define SEQ_PRIVATE		0xfe	/* Low level HW dependent events (8 bytes) */#define SEQ_EXTENDED		0xff	/* Extended events (8 bytes) OBSOLETE *//* * Record for FM patches */typedef unsigned char sbi_instr_data[32];struct sbi_instrument {		unsigned short	key;	/* FM_PATCH or OPL3_PATCH */#define FM_PATCH	_PATCHKEY(0x01)#define OPL3_PATCH	_PATCHKEY(0x03)		short		device;		/*	Synth# (0-4)	*/		int 		channel;	/*	Program# to be initialized 	*/		sbi_instr_data	operators;	/*	Register settings for operator cells (.SBI format)	*/	};struct synth_info {	/* Read only */		char	name[30];		int	device;		/* 0-N. INITIALIZE BEFORE CALLING */		int	synth_type;#define SYNTH_TYPE_FM			0#define SYNTH_TYPE_SAMPLE		1#define SYNTH_TYPE_MIDI			2	/* Midi interface */		int	synth_subtype;#define FM_TYPE_ADLIB			0x00#define FM_TYPE_OPL3			0x01#define MIDI_TYPE_MPU401		0x401#define SAMPLE_TYPE_BASIC		0x10#define SAMPLE_TYPE_GUS			SAMPLE_TYPE_BASIC#define SAMPLE_TYPE_WAVEFRONT           0x11		int	perc_mode;	/* No longer supported */		int	nr_voices;		int	nr_drums;	/* Obsolete field */		int	instr_bank_size;		unsigned int	capabilities;	#define SYNTH_CAP_PERCMODE		0x00000001 /* No longer used */#define SYNTH_CAP_OPL3			0x00000002 /* Set if OPL3 supported */#define SYNTH_CAP_INPUT			0x00000004 /* Input (MIDI) device */		int	dummies[19];	/* Reserve space */	};struct sound_timer_info {		char name[32];		int caps;	};#define MIDI_CAP_MPU401		1		/* MPU-401 intelligent mode */struct midi_info {		char		name[30];		int		device;		/* 0-N. INITIALIZE BEFORE CALLING */		unsigned int	capabilities;	/* To be defined later */		int		dev_type;		int		dummies[18];	/* Reserve space */	};/******************************************** * ioctl commands for the /dev/midi## */typedef struct {		unsigned char cmd;		char nr_args, nr_returns;		unsigned char data[30];	} mpu_command_rec;#define SNDCTL_MIDI_PRETIME		_SIOWR('m', 0, int)#define SNDCTL_MIDI_MPUMODE		_SIOWR('m', 1, int)#define SNDCTL_MIDI_MPUCMD		_SIOWR('m', 2, mpu_command_rec)/******************************************** * IOCTL commands for /dev/dsp and /dev/audio */#define SNDCTL_DSP_RESET		_SIO  ('P', 0)#define SNDCTL_DSP_SYNC			_SIO  ('P', 1)#define SNDCTL_DSP_SPEED		_SIOWR('P', 2, int)#define SNDCTL_DSP_STEREO		_SIOWR('P', 3, int)#define SNDCTL_DSP_GETBLKSIZE		_SIOWR('P', 4, int)#define SNDCTL_DSP_SAMPLESIZE		SNDCTL_DSP_SETFMT#define SNDCTL_DSP_CHANNELS		_SIOWR('P', 6, int)#define SOUND_PCM_WRITE_CHANNELS	SNDCTL_DSP_CHANNELS#define SOUND_PCM_WRITE_FILTER		_SIOWR('P', 7, int)#define SNDCTL_DSP_POST			_SIO  ('P', 8)#define SNDCTL_DSP_SUBDIVIDE		_SIOWR('P', 9, int)#define SNDCTL_DSP_SETFRAGMENT		_SIOWR('P',10, int)/*	Audio data formats (Note! U8=8 and S16_LE=16 for compatibility) */#define SNDCTL_DSP_GETFMTS		_SIOR ('P',11, int) /* Returns a mask */#define SNDCTL_DSP_SETFMT		_SIOWR('P',5, int) /* Selects ONE fmt*/#	define AFMT_QUERY		0x00000000	/* Return current fmt */#	define AFMT_MU_LAW		0x00000001#	define AFMT_A_LAW		0x00000002#	define AFMT_IMA_ADPCM		0x00000004#	define AFMT_U8			0x00000008#	define AFMT_S16_LE		0x00000010	/* Little endian signed 16*/#	define AFMT_S16_BE		0x00000020	/* Big endian signed 16 */#	define AFMT_S8			0x00000040#	define AFMT_U16_LE		0x00000080	/* Little endian U16 */#	define AFMT_U16_BE		0x00000100	/* Big endian U16 */#	define AFMT_MPEG		0x00000200	/* MPEG (2) audio */#	define AFMT_AC3		0x00000400	/* Dolby Digital AC3 *//* * Buffer status queries. */typedef struct audio_buf_info {			int fragments;	/* # of available fragments (partially usend ones not counted) */			int fragstotal;	/* Total # of fragments allocated */			int fragsize;	/* Size of a fragment in bytes */			int bytes;	/* Available space in bytes (includes partially used fragments) */			/* Note! 'bytes' could be more than fragments*fragsize */		} audio_buf_info;#define SNDCTL_DSP_GETOSPACE		_SIOR ('P',12, audio_buf_info)#define SNDCTL_DSP_GETISPACE		_SIOR ('P',13, audio_buf_info)#define SNDCTL_DSP_NONBLOCK		_SIO  ('P',14)#define SNDCTL_DSP_GETCAPS		_SIOR ('P',15, int)#	define DSP_CAP_REVISION		0x000000ff	/* Bits for revision level (0 to 255) */#	define DSP_CAP_DUPLEX		0x00000100	/* Full duplex record/playback */#	define DSP_CAP_REALTIME		0x00000200	/* Real time capability */#	define DSP_CAP_BATCH		0x00000400	/* Device has some kind of */							/* internal buffers which may */							/* cause some delays and */							/* decrease precision of timing */#	define DSP_CAP_COPROC		0x00000800	/* Has a coprocessor */							/* Sometimes it's a DSP */							/* but usually not */#	define DSP_CAP_TRIGGER		0x00001000	/* Supports SETTRIGGER */#	define DSP_CAP_MMAP		0x00002000	/* Supports mmap() */#	define DSP_CAP_MULTI		0x00004000	/* support multiple open */#	define DSP_CAP_BIND		0x00008000	/* channel binding to front/rear/cneter/lfe */#define SNDCTL_DSP_GETTRIGGER		_SIOR ('P',16, int)#define SNDCTL_DSP_SETTRIGGER		_SIOW ('P',16, int)#	define PCM_ENABLE_INPUT		0x00000001#	define PCM_ENABLE_OUTPUT		0x00000002typedef struct count_info {		int bytes;	/* Total # of bytes processed */		int blocks;	/* # of fragment transitions since last time */		int ptr;	/* Current DMA pointer value */	} count_info;#define SNDCTL_DSP_GETIPTR		_SIOR ('P',17, count_info)#define SNDCTL_DSP_GETOPTR		_SIOR ('P',18, count_info)typedef struct buffmem_desc {		unsigned *buffer;		int size;	} buffmem_desc;#define SNDCTL_DSP_MAPINBUF		_SIOR ('P', 19, buffmem_desc)#define SNDCTL_DSP_MAPOUTBUF		_SIOR ('P', 20, buffmem_desc)#define SNDCTL_DSP_SETSYNCRO		_SIO  ('P', 21)#define SNDCTL_DSP_SETDUPLEX		_SIO  ('P', 22)#define SNDCTL_DSP_GETODELAY		_SIOR ('P', 23, int)#define SNDCTL_DSP_GETCHANNELMASK		_SIOWR('P', 64, int)#define SNDCTL_DSP_BIND_CHANNEL		_SIOWR('P', 65, int)#	define DSP_BIND_QUERY		0x00000000#	define DSP_BIND_FRONT		0x00000001#	define DSP_BIND_SURR		0x00000002#	define DSP_BIND_CENTER_LFE	0x00000004#	define DSP_BIND_HANDSET		0x00000008#	define DSP_BIND_MIC		0x00000010#	define DSP_BIND_MODEM1		0x00000020#	define DSP_BIND_MODEM2		0x00000040#	define DSP_BIND_I2S		0x00000080#	define DSP_BIND_SPDIF		0x00000100#define SNDCTL_DSP_SETSPDIF		_SIOW ('P', 66, int)#define SNDCTL_DSP_GETSPDIF		_SIOR ('P', 67, int)#	define SPDIF_PRO	0x0001#	define SPDIF_N_AUD	0x0002#	define SPDIF_COPY	0x0004#	define SPDIF_PRE	0x0008#	define SPDIF_CC		0x07f0#	define SPDIF_L		0x0800#	define SPDIF_DRS	0x4000#	define SPDIF_V		0x8000/* * Application's profile defines the way how playback underrun situations should be handled. *  *	APF_NORMAL (the default) and APF_NETWORK make the driver to cleanup the *	playback buffer whenever an underrun occurs. This consumes some time *	prevents looping the existing buffer. *	APF_CPUINTENS is intended to be set by CPU intensive applications which *	are likely to run out of time occasionally. In this mode the buffer cleanup is *	disabled which saves CPU time but also let's the previous buffer content to *	be played during the "pause" after the underrun. */#define SNDCTL_DSP_PROFILE		_SIOW ('P', 23, int)#define	  APF_NORMAL	0	/* Normal applications */#define	  APF_NETWORK	1	/* Underruns probably caused by an "external" delay */

⌨️ 快捷键说明

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