PERFORCE change 117442 for review

Ryan Beasley ryanb at FreeBSD.org
Thu Apr 5 16:57:03 UTC 2007


http://perforce.freebsd.org/chv.cgi?CH=117442

Change 117442 by ryanb at ryanb_yuki on 2007/04/05 16:56:47

	Incorporate changes from 4Front's sys/soundcard.h w/ minor
	adjustments to conform to style(9).

Affected files ...

.. //depot/projects/soundsystem/src/sys/sys/soundcard.h#2 edit

Differences ...

==== //depot/projects/soundsystem/src/sys/sys/soundcard.h#2 (text+ko) ====

@@ -1639,66 +1639,80 @@
 	int	openedmidi[8];	/* Bit mask telling which midi devices
 				   are busy */
 	int	numcards;	/* Number of sound cards in the system */
-	int	filler[241];	/* For future expansion (set to -1) */
+	int	numaudioengines; /* Number of audio engines in the system */
+	int	filler[240];	/* 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
+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 255) */
+#define MIXT_STEREOSLIDER 5	/* Stereo slider (dual 0 to 255) */
+#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	/* OBSOLETE */
+#define MIXT_STEREODB	16	/* OBSOLETE */
+#define MIXT_SLIDER	17	/* Slider (mono) with full (31 bit) positive
+				   integer range */
+#define MIXT_3D		18
+
+/*
+ * Sliders with range expanded to 15 bits per channel (0-32767)
+ */
+#define MIXT_MONOSLIDER16	19
+#define MIXT_STEREOSLIDER16	20
+
+	/* Possible value range (minvalue to maxvalue) */
+	/* Note that maxvalue may also be smaller than minvalue */
+	int	maxvalue;
+	int	minvalue;
 
-  /* 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 */
+#define MIXF_POLL	0x00000004	/* May change itself */
+#define MIXF_HZ		0x00000008	/* Herz scale */
+#define MIXF_STRING	0x00000010	/* Use dynamic extensions for value */
+#define MIXF_DYNAMIC	0x00000010	/* Supports dynamic extensions */
+#define MIXF_OKFAIL	0x00000020	/* Interpret value as 1=OK, 0=FAIL */
+#define MIXF_FLAT	0x00000040	/* Flat vertical space requirements */
+#define MIXF_LEGACY	0x00000080	/* Legacy mixer control group */
+#define MIXF_CENTIBEL	0x00000100	/* Centibel (0.1 dB) step size */
+#define MIXF_DECIBEL	0x00000200	/* Step size of 1 dB */
+#define MIXF_MAINVOL	0x00000400	/* Main volume control */
+#define MIXF_PCMVOL	0x00000800	/* PCM output volume control */
+#define MIXF_RECVOL	0x00001000	/* PCM recording volume control */
 
-  int flags;
-#	define MIXF_READABLE	0x00000001	/* Has readable value */
-#	define MIXF_WRITEABLE	0x00000002	/* Has writeable value */
-#	define MIXF_POLL	0x00000004	/* May change itself */
-#	define MIXF_HZ		0x00000008	/* Herz scale */
-#	define MIXF_STRING	0x00000010	/* Use dynamic extensions for value */
-#	define MIXF_DYNAMIC	0x00000010	/* Supports dynamic extensions */
-#	define MIXF_OKFAIL	0x00000020	/* Interpret value as 1=OK, 0=FAIL */
-#	define MIXF_FLAT	0x00000040	/* Flat vertical space requirements */
-#	define MIXF_LEGACY	0x00000080	/* Legacy mixer control group */
-  char id[16];			/* Mnemonic ID (mainly for internal use) */
-  int parent;			/* Entry# of parent (group) node (-1 if root) */
+	char	id[16];		/* Mnemonic ID (mainly for internal use) */
+	int	parent;		/* Entry# of parent (group) node (-1 if root) */
 
-  int dummy;			/* Internal use */
+	int	dummy;		/* Internal use */
 
-  int timestamp;
+	int	timestamp;
 
-  char data[64];		/* Misc data (entry type dependent) */
-  unsigned char enum_present[32];	/* Mask of allowed enum values */
-  int control_no;		/* SOUND_MIXER_VOLUME..SOUND_MIXER_MIDI */
-  /* (-1 means not indicated) */
+	char	data[64];	/* Misc data (entry type dependent) */
+	unsigned char	enum_present[32]; /* Mask of allowed enum values */
+	int	control_no;	/* SOUND_MIXER_VOLUME..SOUND_MIXER_MIDI */
+				/* (-1 means not indicated) */
 
-/*
- * The desc field is reserved for internal purposes of OSS. It should not be 
- * used by applications.
- */
-  unsigned int desc;
+	/*
+	 * The desc field is reserved for internal purposes of OSS. It should
+	 * not be used by applications.
+	 */
+	unsigned int	desc;
 #define MIXEXT_SCOPE_MASK			0x0000003f
 #define MIXEXT_SCOPE_OTHER			0x00000000
 #define MIXEXT_SCOPE_INPUT			0x00000001
@@ -1706,25 +1720,23 @@
 #define MIXEXT_SCOPE_MONITOR			0x00000003
 #define MIXEXT_SCOPE_RECSWITCH			0x00000004
 
-  char extname[32];
-  int update_counter;
-  int filler[7];
+	char	extname[32];
+	int	update_counter;
+	int	filler[7];
 } oss_mixext;
 
-typedef struct oss_mixext_root
-{
-  char id[16];
-  char name[48];
+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 */
+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 OSS_ENUM_MAXVALUE       255
@@ -1754,7 +1766,7 @@
 	char	name[64];
 	int	busy;		/* 0, OPEN_READ, OPEN_WRITE or OPEN_READWRITE */
 	int	pid;
-	int	caps;		/* DSP_CAP_INPUT, DSP_CAP_OUTPUT */
+	int	caps;		/* PCM_CAP_INPUT, PCM_CAP_OUTPUT */
 	int	iformats;
 	int	oformats;
 	int	magic;		/* Reserved for internal use */
@@ -1762,11 +1774,9 @@
 	int	card_number;
 	int	port_number;
 	int	mixer_dev;
-	int	real_device;	/* Obsolete field. Replaced by devnode */
-	int	enabled;	/* 1=enabled, 0=device not ready at this
-				   moment */
-	int	flags;		/* For internal use only - no practical
-				   meaning */
+	int	legacy_device;	/* Obsolete field. Replaced by devnode */
+	int	enabled;	/* 1=enabled, 0=device not ready at this moment */
+	int	flags;		/* For internal use only - no practical meaning */
 	int	min_rate;	/* Sample rate limits */
 	int	max_rate;
 	int	min_channels;	/* Number of channels supported */
@@ -1780,75 +1790,84 @@
 	oss_longname_t	song_name;	/* Song name (if given) */
 	oss_label_t	label;		/* Device label (if given) */
 	int		latency;	/* In usecs, -1=unknown */
-	oss_devnode_t	devnode;	/* Device special file name (inside
-					   /dev) */
-	int filler[186];
+	oss_devnode_t	devnode;	/* Device special file name (absolute path) */
+	int	next_play_engine;	/* Read the documentation for more info */
+	int	next_rec_engine;	/* Read the documentation for more info */
+	int filler[184];
 } oss_audioinfo;
 
-typedef struct oss_mixerinfo
-{
-  int dev;
-  char id[16];
-  char name[32];
-  int modify_counter;
-  int card_number;
-  int port_number;
-  char handle[32];
-  int magic;			/* Reserved */
-  int enabled;			/* Reserved */
-  int caps;
-#define MIXER_CAP_VIRTUAL				0x00000001
-  int flags;			/* Reserved */
-  int nrext;
-  /*
-   * The priority field can be used to select the default (motherboard)
-   * mixer device. The mixer with the highest priority is the
-   * most preferred one. -2 or less means that this device cannot be used
-   * as the default mixer.
-   */
-  int priority;
-  int filler[254];		/* Reserved */
+typedef struct oss_mixerinfo {
+	int	dev;
+	char	id [16];
+	char	name[32];
+	int	modify_counter;
+	int	card_number;
+	int	port_number;
+	char	handle[32];
+	int	magic;		/* Reserved */
+	int	enabled;	/* Reserved */
+	int	caps;
+#define MIXER_CAP_VIRTUAL	0x00000001
+#define MIXER_CAP_LAYOUT_B	0x00000002	/* For internal use only */
+#define MIXER_CAP_NARROW	0x00000004	/* Conserve horiz space */
+	int	flags;		/* Reserved */
+	int	nrext;
+	/*
+	 * The priority field can be used to select the default (motherboard)
+	 * mixer device. The mixer with the highest priority is the most
+	 * preferred one. -2 or less means that this device cannot be used as
+	 * the default mixer.
+	 */
+	int	priority;
+	oss_devnode_t devnode;	/* Device special file name (absolute path) */
+	int	legacy_device;
+	int	filler[245];	/* Reserved */
 } oss_mixerinfo;
 
-typedef struct oss_midi_info
-{
-  int dev;			/* Midi device number */
-  char name[64];
-  int busy;			/* 0, OPEN_READ, OPEN_WRITE or OPEN_READWRITE */
-  int pid;
-  char cmd[64];			/* Command using the device (if known) */
-  int caps;
+typedef struct oss_midi_info {
+	int	dev;		/* Midi device number */
+	char	name[64];
+	int	busy;		/* 0, OPEN_READ, OPEN_WRITE or OPEN_READWRITE */
+	int	pid;
+	char	cmd[64];	/* Command using the device (if known) */
+	int	caps;
 #define MIDI_CAP_MPU401		0x00000001	/**** OBSOLETE ****/
 #define MIDI_CAP_INPUT		0x00000002
 #define MIDI_CAP_OUTPUT		0x00000004
 #define MIDI_CAP_INOUT		(MIDI_CAP_INPUT|MIDI_CAP_OUTPUT)
 #define MIDI_CAP_VIRTUAL	0x00000008	/* Pseudo device */
-#define MIDI_CAP_MTCINPUT	0x00000010	/* Supports SNDCTL_MIDI_MTCINPUT */
+#define MIDI_CAP_MTCINPUT	0x00000010	/* Supports
+						 * SNDCTL_MIDI_MTCINPUT */
 #define MIDI_CAP_CLIENT		0x00000020	/* Virtual client side device */
 #define MIDI_CAP_SERVER		0x00000040	/* Virtual server side device */
 #define MIDI_CAP_INTERNAL	0x00000080	/* Internal (synth) device */
-#define MIDI_CAP_EXTERNAL	0x00000100	/* external (MIDI port) device */
-#define MIDI_CAP_PTOP		0x00000200	/* Point to point link to one device */
+#define MIDI_CAP_EXTERNAL	0x00000100	/* external (MIDI port)
+						 * device */
+#define MIDI_CAP_PTOP		0x00000200	/* Point to point link to one
+						 * device */
 #define MIDI_CAP_MTC		0x00000400	/* MTC/SMPTE (control) device */
-  int magic;			/* Reserved for internal use */
-  int card_number;
-  int port_number;
-  int enabled;			/* 1=enabled, 0=device not ready at this moment */
-  int flags;			/* For internal use only - no practical meaning */
-  char handle[32];
-  oss_longname_t song_name;	/* Song name (if known) */
-  oss_label_t label;		/* Device label (if given) */
-  int latency;			/* In usecs, -1=unknown */
-  int filler[244];
+	int	magic;		/* Reserved for internal use */
+	int	card_number;
+	int	port_number;
+	int	enabled;	/* 1=enabled, 0=device not ready at this
+				 * moment */
+	int	flags;		/* For internal use only - no practical
+				 * meaning */
+	char	handle[32];
+	oss_longname_t song_name;	/* Song name (if known) */
+	oss_label_t label;	/* Device label (if given) */
+	int	latency;	/* In usecs, -1=unknown */
+	oss_devnode_t devnode;	/* Device special file name (absolute path) */
+	int	legacy_device;
+	int	filler[235];
 } oss_midi_info;
 
-typedef struct oss_card_info
-{
-  int card;
-  char shortname[16];
-  char longname[128];
-  int flags;
-  int filler[256];
+typedef struct oss_card_info {
+	int	card;
+	char	shortname[16];
+	char	longname[128];
+	int	flags;
+	int	filler[256];
 } oss_card_info;
 
 #define SNDCTL_SYSINFO          _IOR ('X', 1, oss_sysinfo)
@@ -1865,6 +1884,10 @@
 #define SNDCTL_MIDIINFO		_IOWR('X', 9, oss_midi_info)
 #define SNDCTL_MIXERINFO	_IOWR('X',10, oss_mixerinfo)
 #define SNDCTL_CARDINFO		_IOWR('X',11, oss_card_info)
+#define SNDCTL_ENGINEINFO	_IOWR('X',12, oss_audioinfo)
+#define SNDCTL_AUDIOINFO_EX	_IOWR('X',13, oss_audioinfo)
+
+/* ioctl codes 'X', 200-255 are reserved for internal (4Front) use */
 
 /*
  * Few more "globally" available ioctl calls.


More information about the p4-projects mailing list