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

📄 soundcard.h

📁 xmms-1.2.10.tar.gz学习使用的就下吧
💻 H
📖 第 1 页 / 共 5 页
字号:
#define SOUND_MASK_OGAIN	(1 << SOUND_MIXER_OGAIN)#define SOUND_MASK_LINE1	(1 << SOUND_MIXER_LINE1)#define SOUND_MASK_LINE2	(1 << SOUND_MIXER_LINE2)#define SOUND_MASK_LINE3	(1 << SOUND_MIXER_LINE3)#define SOUND_MASK_DIGITAL1	(1 << SOUND_MIXER_DIGITAL1)#define SOUND_MASK_DIGITAL2	(1 << SOUND_MIXER_DIGITAL2)#define SOUND_MASK_DIGITAL3	(1 << SOUND_MIXER_DIGITAL3)#define SOUND_MASK_PHONEIN	(1 << SOUND_MIXER_PHONEIN)#define SOUND_MASK_PHONEOUT	(1 << SOUND_MIXER_PHONEOUT)#define SOUND_MASK_RADIO	(1 << SOUND_MIXER_RADIO)#define SOUND_MASK_VIDEO	(1 << SOUND_MIXER_VIDEO)#define SOUND_MASK_MONITOR	(1 << SOUND_MIXER_MONITOR)#define SOUND_MASK_DEPTH	(1 << SOUND_MIXER_DEPTH)#define SOUND_MASK_CENTER	(1 << SOUND_MIXER_CENTER)#define SOUND_MASK_MIDI		(1 << SOUND_MIXER_MIDI)/* Obsolete macros */#define SOUND_MASK_MUTE		(1 << SOUND_MIXER_MUTE)#define SOUND_MASK_ENHANCE	(1 << SOUND_MIXER_ENHANCE)#define SOUND_MASK_LOUD		(1 << SOUND_MIXER_LOUD)#define MIXER_READ(dev)		__SIOR('M', dev, int)#define SOUND_MIXER_READ_VOLUME		MIXER_READ(SOUND_MIXER_VOLUME)#define SOUND_MIXER_READ_BASS		MIXER_READ(SOUND_MIXER_BASS)#define SOUND_MIXER_READ_TREBLE		MIXER_READ(SOUND_MIXER_TREBLE)#define SOUND_MIXER_READ_SYNTH		MIXER_READ(SOUND_MIXER_SYNTH)#define SOUND_MIXER_READ_PCM		MIXER_READ(SOUND_MIXER_PCM)#define SOUND_MIXER_READ_SPEAKER	MIXER_READ(SOUND_MIXER_SPEAKER)#define SOUND_MIXER_READ_LINE		MIXER_READ(SOUND_MIXER_LINE)#define SOUND_MIXER_READ_MIC		MIXER_READ(SOUND_MIXER_MIC)#define SOUND_MIXER_READ_CD		MIXER_READ(SOUND_MIXER_CD)#define SOUND_MIXER_READ_IMIX		MIXER_READ(SOUND_MIXER_IMIX)#define SOUND_MIXER_READ_ALTPCM		MIXER_READ(SOUND_MIXER_ALTPCM)#define SOUND_MIXER_READ_RECLEV		MIXER_READ(SOUND_MIXER_RECLEV)#define SOUND_MIXER_READ_IGAIN		MIXER_READ(SOUND_MIXER_IGAIN)#define SOUND_MIXER_READ_OGAIN		MIXER_READ(SOUND_MIXER_OGAIN)#define SOUND_MIXER_READ_LINE1		MIXER_READ(SOUND_MIXER_LINE1)#define SOUND_MIXER_READ_LINE2		MIXER_READ(SOUND_MIXER_LINE2)#define SOUND_MIXER_READ_LINE3		MIXER_READ(SOUND_MIXER_LINE3)/* Obsolete macros */#define SOUND_MIXER_READ_MUTE		MIXER_READ(SOUND_MIXER_MUTE)#define SOUND_MIXER_READ_ENHANCE	MIXER_READ(SOUND_MIXER_ENHANCE)#define SOUND_MIXER_READ_LOUD		MIXER_READ(SOUND_MIXER_LOUD)#define SOUND_MIXER_READ_RECSRC		MIXER_READ(SOUND_MIXER_RECSRC)#define SOUND_MIXER_READ_DEVMASK	MIXER_READ(SOUND_MIXER_DEVMASK)#define SOUND_MIXER_READ_RECMASK	MIXER_READ(SOUND_MIXER_RECMASK)#define SOUND_MIXER_READ_STEREODEVS	MIXER_READ(SOUND_MIXER_STEREODEVS)#define SOUND_MIXER_READ_CAPS		MIXER_READ(SOUND_MIXER_CAPS)#define MIXER_WRITE(dev)		__SIOWR('M', dev, int)#define SOUND_MIXER_WRITE_VOLUME	MIXER_WRITE(SOUND_MIXER_VOLUME)#define SOUND_MIXER_WRITE_BASS		MIXER_WRITE(SOUND_MIXER_BASS)#define SOUND_MIXER_WRITE_TREBLE	MIXER_WRITE(SOUND_MIXER_TREBLE)#define SOUND_MIXER_WRITE_SYNTH		MIXER_WRITE(SOUND_MIXER_SYNTH)#define SOUND_MIXER_WRITE_PCM		MIXER_WRITE(SOUND_MIXER_PCM)#define SOUND_MIXER_WRITE_SPEAKER	MIXER_WRITE(SOUND_MIXER_SPEAKER)#define SOUND_MIXER_WRITE_LINE		MIXER_WRITE(SOUND_MIXER_LINE)#define SOUND_MIXER_WRITE_MIC		MIXER_WRITE(SOUND_MIXER_MIC)#define SOUND_MIXER_WRITE_CD		MIXER_WRITE(SOUND_MIXER_CD)#define SOUND_MIXER_WRITE_IMIX		MIXER_WRITE(SOUND_MIXER_IMIX)#define SOUND_MIXER_WRITE_ALTPCM	MIXER_WRITE(SOUND_MIXER_ALTPCM)#define SOUND_MIXER_WRITE_RECLEV	MIXER_WRITE(SOUND_MIXER_RECLEV)#define SOUND_MIXER_WRITE_IGAIN		MIXER_WRITE(SOUND_MIXER_IGAIN)#define SOUND_MIXER_WRITE_OGAIN		MIXER_WRITE(SOUND_MIXER_OGAIN)#define SOUND_MIXER_WRITE_LINE1		MIXER_WRITE(SOUND_MIXER_LINE1)#define SOUND_MIXER_WRITE_LINE2		MIXER_WRITE(SOUND_MIXER_LINE2)#define SOUND_MIXER_WRITE_LINE3		MIXER_WRITE(SOUND_MIXER_LINE3)/* Obsolete macros */#define SOUND_MIXER_WRITE_MUTE		MIXER_WRITE(SOUND_MIXER_MUTE)#define SOUND_MIXER_WRITE_ENHANCE	MIXER_WRITE(SOUND_MIXER_ENHANCE)#define SOUND_MIXER_WRITE_LOUD		MIXER_WRITE(SOUND_MIXER_LOUD)#define SOUND_MIXER_WRITE_RECSRC	MIXER_WRITE(SOUND_MIXER_RECSRC)typedef struct mixer_info{  char id[16];  char name[32];  int modify_counter;  int fillers[10];}mixer_info;typedef struct _old_mixer_info	/* Obsolete */{  char id[16];  char name[32];}_old_mixer_info;#define SOUND_MIXER_INFO		__SIOR ('M', 101, mixer_info)#define SOUND_OLD_MIXER_INFO		__SIOR ('M', 101, _old_mixer_info)/* * A mechanism for accessing "proprietary" mixer features. This method * permits passing 128 bytes of arbitrary data between a mixer application * and the mixer driver. Interpretation of the record is defined by * the particular mixer driver. */typedef unsigned char mixer_record[128];#define SOUND_MIXER_ACCESS		__SIOWR('M', 102, mixer_record)/* * Two ioctls for special souncard function (OSS/Free only) */#define SOUND_MIXER_AGC  _SIOWR('M', 103, int)#define SOUND_MIXER_3DSE  _SIOWR('M', 104, int)/* * The SOUND_MIXER_PRIVATE# commands can be redefined by low level drivers. * These features can be used when accessing device specific features. */#define SOUND_MIXER_PRIVATE1		__SIOWR('M', 111, int)#define SOUND_MIXER_PRIVATE2		__SIOWR('M', 112, int)#define SOUND_MIXER_PRIVATE3		__SIOWR('M', 113, int)#define SOUND_MIXER_PRIVATE4		__SIOWR('M', 114, int)#define SOUND_MIXER_PRIVATE5		__SIOWR('M', 115, int)/* * SOUND_MIXER_GETLEVELS and SOUND_MIXER_SETLEVELS calls can be used * for querying current mixer settings from the driver and for loading * default volume settings _prior_ activating the mixer (loading * doesn't affect current state of the mixer hardware). These calls * are for internal use only. */typedef struct mixer_vol_table{  int num;			/* Index to volume table */  char name[32];  int levels[32];}mixer_vol_table;#define SOUND_MIXER_GETLEVELS		__SIOWR('M', 116, mixer_vol_table)#define SOUND_MIXER_SETLEVELS		__SIOWR('M', 117, mixer_vol_table)/*  * An ioctl for identifying the driver version. It will return value * of the SOUND_VERSION macro used when compiling the driver. * This call was introduced in OSS version 3.6 and it will not work * with earlier versions (returns EINVAL). */#define OSS_GETVERSION			__SIOR ('M', 118, int)/* * Calls to set/get the recording gain for the currently active * recording source. These calls automatically map to the right control. * Note that these calls are not supported by all drivers. In this case * the call will return -1 with errno set to EINVAL * * The _MONGAIN work in similar way but set/get the monitoring gain for * the currently selected recording source. */#define SOUND_MIXER_READ_RECGAIN	__SIOR ('M', 119, int)#define SOUND_MIXER_WRITE_RECGAIN	__SIOWR('M', 119, int)#define SOUND_MIXER_READ_MONGAIN	__SIOR ('M', 120, int)#define SOUND_MIXER_WRITE_MONGAIN	__SIOWR('M', 120, int)/************************************************* * Extended mixer interface  (OSS 4.0 and later) * *************************************************/#define SYSINFO_FILL_SIZE 256typedef struct oss_sysinfo{  char product[32];		/* For example OSS/Free, OSS/Linux or OSS/Solaris */  char version[32];		/* For example 4.0a */  int versionnum;		/* See OSS_GETVERSION */  char options[128];		/* Reserved */  int numaudios;		/* # of audio/dsp devices */  int openedaudio[8];		/* Bit mask telling which audio devices are busy */  int numsynths;		/* # of availavle synth devices */  int nummidis;			/* # of available MIDI ports */  int numtimers;		/* # of available timer devices */  int nummixers;		/* # of mixer devices */  int filler[SYSINFO_FILL_SIZE];	/* For future expansion (set to -1) */}oss_sysinfo;typedef struct oss_mixext{  int dev;			/* Mixer device number */  int ctrl;			/* Controller number */  int type;			/* Entry type */#	define MIXT_DEVROOT	 0	/* Device root entry */#	define MIXT_GROUP	 1	/* Controller group */#	define MIXT_ONOFF	 2	/* OFF (0) or ON (1) */#	define MIXT_ENUM	 3	/* Enumerated (0 to maxvalue) */#	define MIXT_MONOSLIDER	 4	/* Mono slider (0 to 100) */#	define MIXT_STEREOSLIDER 5	/* Stereo slider (dual 0 to 100) */#	define MIXT_MESSAGE	 6	/* (Readable) textual message */#	define MIXT_MONOVU	 7	/* VU meter value (mono) */#	define MIXT_STEREOVU	 8	/* VU meter value (stereo) */#	define MIXT_MONOPEAK	 9	/* VU meter peak value (mono) */#	define MIXT_STEREOPEAK	10	/* VU meter peak value (stereo) */#	define MIXT_RADIOGROUP	11	/* Radio button group */#	define MIXT_MARKER	12	/* Separator between normal and extension entries */#	define MIXT_VALUE	13	/* Decimal value entry */#	define MIXT_HEXVALUE	14	/* Hexadecimal value entry */#	define MIXT_MONODB	15	/* Mono atten. slider (0 to -144) */#	define MIXT_STEREODB	16	/* Stereo atten. slider (dual 0 to -144) */#	define MIXT_SLIDER	17	/* Slider (mono) with full integer range */#	define MIXT_3D		18  /* Possible value range (minvalue to maxvalue) */  /* Note that maxvalue may also be smaller than minvalue */  int maxvalue;  int minvalue;  int flags;#	define MIXF_READABLE  0x00000001	/* Has readable value */#	define MIXF_WRITEABLE 0x00000002	/* Has writeable value */  char id[16];			/* Mnemonic ID (for linking with user space info) */  int parent;			/* Entry# of parent (group) node (-1 if root) */  int dummy;			/* Internal use */  int timestamp;  char data[64];		/* Misc data (entry type dependent) */  unsigned int enum_mask;	/* Mask of allowed enum values */  int control_no;		/* SOUND_MIXER_VOLUME..SOUND_MIXER_MIDI */  /* (-1 means not indicated) */  int desc;			/* Descriptive code. For future use. */  int filler[16];}oss_mixext;typedef struct oss_mixext_root{  char id[16];  char name[48];}oss_mixext_root;typedef struct oss_mixer_value{  int dev;  int ctrl;  int value;  int flags;			/* Reserved for future use. Initialize to 0 */  int timestamp;		/* Must be set to oss_mixext.timestamp */  int filler[8];		/* Reserved for future use. Initialize to 0 */}oss_mixer_value;#define OPEN_READ	PCM_ENABLE_INPUT#define OPEN_WRITE	PCM_ENABLE_OUTPUT#define OPEN_READWRITE	(OPEN_READ|OPEN_WRITE)typedef struct oss_audioinfo{  int dev;			/* Audio device number */  char name[64];  int busy;			/* 0, OPEN_READ, OPEN_WRITE or OPEN_READWRITE */  int pid;  int caps;			/* DSP_CAP_INPUT, DSP_CAP_OUTPUT */  int iformats, oformats;  int magic;			/* Reserved for internal use */  char cmd[64];			/* Command using the device */  int card_number;  int port_number;  int mixer_dev;  int real_device;		/* This is the right /dev/dsp# device to open */  int enabled;			/* 1=enabled, 0=device not ready at this moment */  int filler[251];}oss_audioinfo;#define OSS_SYSINFO			__SIOR ('X', 1, oss_sysinfo)#define SNDCTL_MIX_NRMIX		__SIOR ('X', 2, int)#define SNDCTL_MIX_NREXT		__SIOWR('X', 3, int)#define SNDCTL_MIX_EXTINFO		__SIOWR('X', 4, oss_mixext)#define SNDCTL_MIX_READ			__SIOWR('X', 5, oss_mixer_value)#define SNDCTL_MIX_WRITE		__SIOWR('X', 6, oss_mixer_value)#define SNDCTL_AUDIOINFO	__SIOWR('X', 7, oss_audioinfo)/* ioctl codes 'X', 200-255 are reserved for internal use *//* * Level 2 event types for /dev/sequencer *//* * The 4 most significant bits of byte 0 specify the class of * the event:  * *	0x8X = system level events, *	0x9X = device/port specific events, event[1] = device/port, *		The last 4 bits give the subtype: *			0x02	= Channel event (event[3] = chn). *			0x01	= note event (event[4] = note). *			(0x01 is not used alone but always with bit 0x02). *	       event[2] = MIDI message code (0x80=note off etc.) * */#define EV_SEQ_LOCAL		0x80#define EV_TIMING		0x81#define EV_CHN_COMMON		0x92#define EV_CHN_VOICE		0x93#define EV_SYSEX		0x94#define EV_SYSTEM		0x95	/* MIDI system and real time messages (input only) *//* * Event types 200 to 220 are reserved for application use. * These numbers will not be used by the driver. *//* * Events for event type EV_CHN_VOICE */#define MIDI_NOTEOFF		0x80#define MIDI_NOTEON		0x90#define MIDI_KEY_PRESSURE	0xA0/* * Events for event type EV_CHN_COMMON */#define MIDI_CTL_CHANGE		0xB0#define MIDI_PGM_CHANGE		0xC0#define MIDI_CHN_PRESSURE	0xD0#define MIDI_PITCH_BEND		0xE0#define MIDI_SYSTEM_PREFIX	0xF0/* * Timer event types */#define TMR_WAIT_REL		1	/* Time relative to the prev time */#define TMR_WAIT_ABS		2	/* Absolute time since TMR_START */#define TMR_STOP		3#define TMR_START		4#define TMR_CONTINUE		5#define TMR_TEMPO		6#define TMR_ECHO		8

⌨️ 快捷键说明

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