patch-2.0.1 linux/include/linux/soundcard.h
Next file: linux/include/linux/sysv_fs.h
Previous file: linux/include/linux/posix_types.h
Back to the patch index
Back to the overall index
- Lines: 175
- Date:
Sun Jun 30 12:25:28 1996
- Orig file:
v2.0.0/linux/include/linux/soundcard.h
- Orig date:
Sun Apr 21 12:39:03 1996
diff -u --recursive --new-file v2.0.0/linux/include/linux/soundcard.h linux/include/linux/soundcard.h
@@ -58,6 +58,8 @@
#define SNDCARD_MAUI 23
#define SNDCARD_PSEUDO_MSS 24
#define SNDCARD_GUSPNP 25
+#define SNDCARD_UART401 26
+/* Soundcard numbers 27 to N are reserved. Don't add more numbers here */
/***********************************
* IOCTL Commands for /dev/sequencer
@@ -140,7 +142,7 @@
* Sample loading mechanism for internal synthesizers (/dev/sequencer)
* The following patch_info structure has been designed to support
* Gravis UltraSound. It tries to be universal format for uploading
- * sample based patches but is probably too limited.
+ * sample based patches but is propably too limited.
*/
struct patch_info {
@@ -168,6 +170,7 @@
#define WAVE_VIBRATO 0x00010000 /* The vibrato info is valid */
#define WAVE_TREMOLO 0x00020000 /* The tremolo info is valid */
#define WAVE_SCALE 0x00040000 /* The scaling info is valid */
+#define WAVE_FRACTIONS 0x00080000 /* Fraction information is valid */
/* Other bits must be zeroed */
int len; /* Size of the wave data in bytes */
@@ -220,7 +223,8 @@
unsigned int scale_factor; /* from 0 to 2048 or 0 to 2 */
int volume;
- int spare[4];
+ int fractions;
+ int spare[3];
char data[1]; /* The waveform data starts here */
};
@@ -259,7 +263,7 @@
* may confuse the patch manager daemon.
*/
-struct patmgr_info { /* Note! size must be < 4k since kmalloc() is used */
+struct patmgr_info {
unsigned int key; /* Don't worry. Reserved for communication
between the patch manager and the driver. */
#define PM_K_EVENT 1 /* Event from the /dev/sequencer driver */
@@ -550,7 +554,8 @@
#define SNDCTL_DSP_STEREO _IOWR('P', 3, int)
#define SNDCTL_DSP_GETBLKSIZE _IOWR('P', 4, int)
#define SNDCTL_DSP_SAMPLESIZE SNDCTL_DSP_SETFMT
-#define SOUND_PCM_WRITE_CHANNELS _IOWR('P', 6, int)
+#define SNDCTL_DSP_CHANNELS _IOWR('P', 6, int)
+#define SOUND_PCM_WRITE_CHANNELS SNDCTL_DSP_CHANNELS
#define SOUND_PCM_WRITE_FILTER _IOWR('P', 7, int)
#define SNDCTL_DSP_POST _IO ('P', 8)
#define SNDCTL_DSP_SUBDIVIDE _IOWR('P', 9, int)
@@ -575,7 +580,7 @@
* Buffer status queries.
*/
typedef struct audio_buf_info {
- int fragments; /* # of available fragments (partially used ones not counted) */
+ int fragments; /* # of available fragments (partially usend ones not counted) */
int fragstotal; /* Total # of fragments allocated */
int fragsize; /* Size of a fragment in bytes */
@@ -688,7 +693,7 @@
#define SNDCTL_COPR_WCODE _IOW ('C', 5, copr_debug_buf)
#define SNDCTL_COPR_RUN _IOWR('C', 6, copr_debug_buf)
#define SNDCTL_COPR_HALT _IOWR('C', 7, copr_debug_buf)
-#define SNDCTL_COPR_SENDMSG _IOW ('C', 8, copr_msg)
+#define SNDCTL_COPR_SENDMSG _IOWR('C', 8, copr_msg)
#define SNDCTL_COPR_RCVMSG _IOR ('C', 9, copr_msg)
/*********************************************
@@ -722,7 +727,7 @@
/*
* The AD1848 codec and compatibles have three line level inputs
* (line, aux1 and aux2). Since each card manufacturer have assigned
- * different meanings to these inputs, it's impractical to assign
+ * different meanings to these inputs, it's inpractical to assign
* specific meanings (line, cd, synth etc.) to them.
*/
#define SOUND_MIXER_LINE1 14 /* Input source 1 (aux1) */
@@ -737,6 +742,7 @@
/* Note! Number 31 cannot be used since the sign bit is reserved */
+#ifdef NO_LONGER_AVAILABLE
/*
* The following unsupported macros will be removed from the API in near
* future.
@@ -744,7 +750,7 @@
#define SOUND_MIXER_ENHANCE 29 /* Enhanced stereo (0, 40, 60 or 80) */
#define SOUND_MIXER_MUTE 28 /* 0 or 1 */
#define SOUND_MIXER_LOUD 30 /* 0 or 1 */
-
+#endif
#define SOUND_DEVICE_LABELS {"Vol ", "Bass ", "Trebl", "Synth", "Pcm ", "Spkr ", "Line ", \
@@ -784,9 +790,11 @@
#define SOUND_MASK_LINE2 (1 << SOUND_MIXER_LINE2)
#define SOUND_MASK_LINE3 (1 << SOUND_MIXER_LINE3)
+#ifdef NO_LONGER_AVAILABLE
#define SOUND_MASK_MUTE (1 << SOUND_MIXER_MUTE)
#define SOUND_MASK_ENHANCE (1 << SOUND_MIXER_ENHANCE)
#define SOUND_MASK_LOUD (1 << SOUND_MIXER_LOUD)
+#endif
#define MIXER_READ(dev) _IOR('M', dev, int)
#define SOUND_MIXER_READ_VOLUME MIXER_READ(SOUND_MIXER_VOLUME)
@@ -806,9 +814,11 @@
#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)
+#ifdef NO_LONGER_AVAILABLE
#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)
+#endif
#define SOUND_MIXER_READ_RECSRC MIXER_READ(SOUND_MIXER_RECSRC)
#define SOUND_MIXER_READ_DEVMASK MIXER_READ(SOUND_MIXER_DEVMASK)
@@ -834,12 +844,42 @@
#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)
+#ifdef NO_LONGER_AVAILABLE
#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)
+#endif
#define SOUND_MIXER_WRITE_RECSRC MIXER_WRITE(SOUND_MIXER_RECSRC)
+typedef struct mixer_info
+{
+ char id[16];
+ char name[32];
+} mixer_info;
+
+#define SOUND_MIXER_INFO _IOR ('M', 101, 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 _IOWR('M', 102, mixer_record)
+
+/*
+ * 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 _IOWR('M', 111, int)
+#define SOUND_MIXER_PRIVATE2 _IOWR('M', 112, int)
+#define SOUND_MIXER_PRIVATE3 _IOWR('M', 113, int)
+#define SOUND_MIXER_PRIVATE4 _IOWR('M', 114, int)
+#define SOUND_MIXER_PRIVATE5 _IOWR('M', 115, int)
+
/*
* Level 2 event types for /dev/sequencer
*/
@@ -1077,7 +1117,7 @@
#define SEQ_PANNING(dev, voice, pos) SEQ_CONTROL(dev, voice, CTL_PAN, (pos+128) / 2)
/*
- * Timing and synchronization macros
+ * Timing and syncronization macros
*/
#define _TIMER_EVENT(ev, parm) {_SEQ_NEEDBUF(8);\
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov