aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2011-05-24 18:36:18 +0200
committerTakashi Iwai <tiwai@suse.de>2011-05-24 18:36:18 +0200
commit95ff57b0ce96f2ca44bee83357cc6370cc03dab1 (patch)
treea2787e12d9b45aedee7e969f55fe0a57766d5ff2
parentbbd17b43dc04c039b6adb24a174c90c934b60ecd (diff)
downloadsalsa-lib-95ff57b0ce96f2ca44bee83357cc6370cc03dab1.tar.gz
Remove redundant definitions of kernel API
All kernel API definitions are found in asound.h and can be referred directly, so we don't need to re-define everything in other places.
-rw-r--r--src/ctl_types.h163
-rw-r--r--src/hctl_types.h23
-rw-r--r--src/hwdep_types.h42
-rw-r--r--src/mixer_types.h52
-rw-r--r--src/pcm_types.h304
-rw-r--r--src/rawmidi_types.h28
-rw-r--r--src/timer_types.h85
7 files changed, 27 insertions, 670 deletions
diff --git a/src/ctl_types.h b/src/ctl_types.h
index d232b91..5539e03 100644
--- a/src/ctl_types.h
+++ b/src/ctl_types.h
@@ -4,165 +4,26 @@
#include <unistd.h>
#include <stdint.h>
-/** IEC958 structure */
-typedef struct snd_aes_iec958 {
- unsigned char status[24]; /**< AES/IEC958 channel status bits */
- unsigned char subcode[147]; /**< AES/IEC958 subcode bits */
- unsigned char pad; /**< nothing */
- unsigned char dig_subframe[4]; /**< AES/IEC958 subframe bits */
-} snd_aes_iec958_t;
-
-/** CTL card info container */
-typedef struct sndrv_ctl_card_info snd_ctl_card_info_t;
-
-/** CTL element identifier container */
-typedef struct sndrv_ctl_elem_id snd_ctl_elem_id_t;
-
-/** CTL element identifier list container */
-typedef struct sndrv_ctl_elem_list snd_ctl_elem_list_t;
-
-/** CTL element info container */
-typedef struct sndrv_ctl_elem_info snd_ctl_elem_info_t;
-
-/** CTL element value container */
-typedef struct sndrv_ctl_elem_value snd_ctl_elem_value_t;
-
-/** CTL event container */
-typedef struct sndrv_ctl_event snd_ctl_event_t;
-
-/** CTL element type */
-typedef enum _snd_ctl_elem_type {
- /** Invalid type */
- SND_CTL_ELEM_TYPE_NONE = 0,
- /** Boolean contents */
- SND_CTL_ELEM_TYPE_BOOLEAN,
- /** Integer contents */
- SND_CTL_ELEM_TYPE_INTEGER,
- /** Enumerated contents */
- SND_CTL_ELEM_TYPE_ENUMERATED,
- /** Bytes contents */
- SND_CTL_ELEM_TYPE_BYTES,
- /** IEC958 (S/PDIF) setting content */
- SND_CTL_ELEM_TYPE_IEC958,
- /** 64-bit integer contents */
- SND_CTL_ELEM_TYPE_INTEGER64,
- SND_CTL_ELEM_TYPE_LAST = SND_CTL_ELEM_TYPE_INTEGER64
-} snd_ctl_elem_type_t;
-
-/** CTL related interface */
-typedef enum _snd_ctl_elem_iface {
- /** Card level */
- SND_CTL_ELEM_IFACE_CARD = 0,
- /** Hardware dependent device */
- SND_CTL_ELEM_IFACE_HWDEP,
- /** Mixer */
- SND_CTL_ELEM_IFACE_MIXER,
- /** PCM */
- SND_CTL_ELEM_IFACE_PCM,
- /** RawMidi */
- SND_CTL_ELEM_IFACE_RAWMIDI,
- /** Timer */
- SND_CTL_ELEM_IFACE_TIMER,
- /** Sequencer */
- SND_CTL_ELEM_IFACE_SEQUENCER,
- SND_CTL_ELEM_IFACE_LAST = SND_CTL_ELEM_IFACE_SEQUENCER
-} snd_ctl_elem_iface_t;
-
-/** Event class */
-typedef enum _snd_ctl_event_type {
- /** Elements related event */
- SND_CTL_EVENT_ELEM = 0,
- SND_CTL_EVENT_LAST = SND_CTL_EVENT_ELEM
-}snd_ctl_event_type_t;
-
-/** Element has been removed (Warning: test this first and if set don't
- * test the other masks) \hideinitializer */
-#define SND_CTL_EVENT_MASK_REMOVE (~0U)
-/** Element value has been changed \hideinitializer */
-#define SND_CTL_EVENT_MASK_VALUE (1<<0)
-/** Element info has been changed \hideinitializer */
-#define SND_CTL_EVENT_MASK_INFO (1<<1)
-/** Element has been added \hideinitializer */
-#define SND_CTL_EVENT_MASK_ADD (1<<2)
-/** Element's TLV value has been changed \hideinitializer */
-#define SND_CTL_EVENT_MASK_TLV (1<<3)
-
-/** CTL name helper */
-#define SND_CTL_NAME_NONE ""
-/** CTL name helper */
-#define SND_CTL_NAME_PLAYBACK "Playback "
-/** CTL name helper */
-#define SND_CTL_NAME_CAPTURE "Capture "
-
-/** CTL name helper */
-#define SND_CTL_NAME_IEC958_NONE ""
-/** CTL name helper */
-#define SND_CTL_NAME_IEC958_SWITCH "Switch"
-/** CTL name helper */
-#define SND_CTL_NAME_IEC958_VOLUME "Volume"
-/** CTL name helper */
-#define SND_CTL_NAME_IEC958_DEFAULT "Default"
-/** CTL name helper */
-#define SND_CTL_NAME_IEC958_MASK "Mask"
-/** CTL name helper */
-#define SND_CTL_NAME_IEC958_CON_MASK "Con Mask"
-/** CTL name helper */
-#define SND_CTL_NAME_IEC958_PRO_MASK "Pro Mask"
-/** CTL name helper */
-#define SND_CTL_NAME_IEC958_PCM_STREAM "PCM Stream"
-/** Element name for IEC958 (S/PDIF) */
-#define SND_CTL_NAME_IEC958(expl,direction,what) "IEC958 " expl SND_CTL_NAME_##direction SND_CTL_NAME_IEC958_##what
-
-/** Mask for the major Power State identifier */
-#define SND_CTL_POWER_MASK 0xff00
-/** ACPI/PCI Power State D0 */
-#define SND_CTL_POWER_D0 0x0000
-/** ACPI/PCI Power State D1 */
-#define SND_CTL_POWER_D1 0x0100
-/** ACPI/PCI Power State D2 */
-#define SND_CTL_POWER_D2 0x0200
-/** ACPI/PCI Power State D3 */
-#define SND_CTL_POWER_D3 0x0300
-/** ACPI/PCI Power State D3hot */
-#define SND_CTL_POWER_D3hot (SND_CTL_POWER_D3|0x0000)
-/** ACPI/PCI Power State D3cold */
-#define SND_CTL_POWER_D3cold (SND_CTL_POWER_D3|0x0001)
-
-/** TLV type - Container */
-#define SND_CTL_TLVT_CONTAINER 0x0000
-/** TLV type - basic dB scale */
-#define SND_CTL_TLVT_DB_SCALE 0x0001
-/** TLV type - linear volume */
-#define SND_CTL_TLVT_DB_LINEAR 0x0002
-/** TLV type - dB range container */
-#define SND_CTL_TLVT_DB_RANGE 0x0003
-/** TLV type - dB scale specified by min/max values */
-#define SND_CTL_TLVT_DB_MINMAX 0x0004
-/** TLV type - dB scale specified by min/max values (with mute) */
-#define SND_CTL_TLVT_DB_MINMAX_MUTE 0x0005
-
-/** Mute state */
+/* TLV types */
+#define SND_CTL_TLVT_CONTAINER 0
+#define SND_CTL_TLVT_DB_SCALE 1
+#define SND_CTL_TLVT_DB_LINEAR 2
+#define SND_CTL_TLVT_DB_RANGE 3
+#define SND_CTL_TLVT_DB_MINMAX 4
+#define SND_CTL_TLVT_DB_MINMAX_MUTE 5
+
+/* Mute state */
#define SND_CTL_TLV_DB_GAIN_MUTE -9999999
-/** CTL type */
typedef enum _snd_ctl_type {
- /** Kernel level CTL */
SND_CTL_TYPE_HW,
- /** Shared memory client CTL */
- SND_CTL_TYPE_SHM,
- /** INET client CTL (not yet implemented) */
- SND_CTL_TYPE_INET,
- /** External control plugin */
- SND_CTL_TYPE_EXT
+ SND_CTL_TYPE_SHM, /* not used by SALSA */
+ SND_CTL_TYPE_INET, /* not used by SALSA */
+ SND_CTL_TYPE_EXT /* not used by SALSA */
} snd_ctl_type_t;
-/** Non blocking mode (flag for open mode) \hideinitializer */
#define SND_CTL_NONBLOCK 0x0001
-
-/** Async notification (flag for open mode) \hideinitializer */
#define SND_CTL_ASYNC 0x0002
-
-/** Read only (flag for open mode) \hideinitializer */
#define SND_CTL_READONLY 0x0004
#endif /* __ALSA_CTL_TYPES_H */
diff --git a/src/hctl_types.h b/src/hctl_types.h
index caa6b6a..5fd3e5d 100644
--- a/src/hctl_types.h
+++ b/src/hctl_types.h
@@ -1,38 +1,15 @@
#ifndef __ALSA_HCTL_TYPES_H
#define __ALSA_HCTL_TYPES_H
-/** HCTL element handle */
typedef struct _snd_hctl_elem snd_hctl_elem_t;
-
-/** HCTL handle */
typedef struct _snd_hctl snd_hctl_t;
-
-/**
- * \brief Compare function for sorting HCTL elements
- * \param e1 First element
- * \param e2 Second element
- * \return -1 if e1 < e2, 0 if e1 == e2, 1 if e1 > e2
- */
typedef int (*snd_hctl_compare_t)(const snd_hctl_elem_t *e1,
const snd_hctl_elem_t *e2);
int snd_hctl_compare_fast(const snd_hctl_elem_t *c1,
const snd_hctl_elem_t *c2);
-/**
- * \brief HCTL callback function
- * \param hctl HCTL handle
- * \param mask event mask
- * \param elem related HCTL element (if any)
- * \return 0 on success otherwise a negative error code
- */
typedef int (*snd_hctl_callback_t)(snd_hctl_t *hctl,
unsigned int mask,
snd_hctl_elem_t *elem);
-/**
- * \brief HCTL element callback function
- * \param elem HCTL element
- * \param mask event mask
- * \return 0 on success otherwise a negative error code
- */
typedef int (*snd_hctl_elem_callback_t)(snd_hctl_elem_t *elem,
unsigned int mask);
diff --git a/src/hwdep_types.h b/src/hwdep_types.h
index d4c4b80..fbb93cf 100644
--- a/src/hwdep_types.h
+++ b/src/hwdep_types.h
@@ -1,48 +1,10 @@
-/** HwDep DSP status container */
-typedef struct sndrv_hwdep_dsp_status snd_hwdep_dsp_status_t;
-
-/** HwDep DSP image container */
-typedef struct sndrv_hwdep_dsp_image snd_hwdep_dsp_image_t;
-
-/** HwDep interface */
-typedef enum _snd_hwdep_iface {
- SND_HWDEP_IFACE_OPL2 = 0, /**< OPL2 raw driver */
- SND_HWDEP_IFACE_OPL3, /**< OPL3 raw driver */
- SND_HWDEP_IFACE_OPL4, /**< OPL4 raw driver */
- SND_HWDEP_IFACE_SB16CSP, /**< SB16CSP driver */
- SND_HWDEP_IFACE_EMU10K1, /**< EMU10K1 driver */
- SND_HWDEP_IFACE_YSS225, /**< YSS225 driver */
- SND_HWDEP_IFACE_ICS2115, /**< ICS2115 driver */
- SND_HWDEP_IFACE_SSCAPE, /**< Ensoniq SoundScape ISA card (MC68EC000) */
- SND_HWDEP_IFACE_VX, /**< Digigram VX cards */
- SND_HWDEP_IFACE_MIXART, /**< Digigram miXart cards */
- SND_HWDEP_IFACE_USX2Y, /**< Tascam US122, US224 & US428 usb */
- SND_HWDEP_IFACE_EMUX_WAVETABLE, /**< EmuX wavetable */
- SND_HWDEP_IFACE_BLUETOOTH, /**< Bluetooth audio */
- SND_HWDEP_IFACE_USX2Y_PCM, /**< Tascam US122, US224 & US428 raw USB PCM */
- SND_HWDEP_IFACE_PCXHR, /**< Digigram PCXHR */
- SND_HWDEP_IFACE_SB_RC, /**< SB Extigy/Audigy2NX remote control */
-
- SND_HWDEP_IFACE_LAST = SND_HWDEP_IFACE_SB_RC /**< last known hwdep interface */
-} snd_hwdep_iface_t;
-
-/** open for reading */
#define SND_HWDEP_OPEN_READ (O_RDONLY)
-/** open for writing */
#define SND_HWDEP_OPEN_WRITE (O_WRONLY)
-/** open for reading and writing */
#define SND_HWDEP_OPEN_DUPLEX (O_RDWR)
-/** open mode flag: open in nonblock mode */
#define SND_HWDEP_OPEN_NONBLOCK (O_NONBLOCK)
-/** HwDep handle type */
typedef enum _snd_hwdep_type {
- /** Kernel level HwDep */
SND_HWDEP_TYPE_HW,
- /** Shared memory client HwDep (not yet implemented) */
- SND_HWDEP_TYPE_SHM,
- /** INET client HwDep (not yet implemented) */
- SND_HWDEP_TYPE_INET
+ SND_HWDEP_TYPE_SHM, /* not used by SALSA */
+ SND_HWDEP_TYPE_INET /* not used by SALSA */
} snd_hwdep_type_t;
-
-
diff --git a/src/mixer_types.h b/src/mixer_types.h
index f5d87d3..ad97723 100644
--- a/src/mixer_types.h
+++ b/src/mixer_types.h
@@ -7,101 +7,49 @@ typedef struct _snd_mixer snd_mixer_t;
typedef struct _snd_mixer_elem snd_mixer_elem_t;
#define snd_mixer_class_t snd_mixer_t
-/**
- * \brief Mixer callback function
- * \param mixer Mixer handle
- * \param mask event mask
- * \param elem related mixer element (if any)
- * \return 0 on success otherwise a negative error code
- */
typedef int (*snd_mixer_callback_t)(snd_mixer_t *ctl,
unsigned int mask,
snd_mixer_elem_t *elem);
-/**
- * \brief Mixer element callback function
- * \param elem Mixer element
- * \param mask event mask
- * \return 0 on success otherwise a negative error code
- */
typedef int (*snd_mixer_elem_callback_t)(snd_mixer_elem_t *elem,
unsigned int mask);
-/**
- * \brief Compare function for sorting mixer elements
- * \param e1 First element
- * \param e2 Second element
- * \return -1 if e1 < e2, 0 if e1 == e2, 1 if e1 > e2
- */
typedef int (*snd_mixer_compare_t)(const snd_mixer_elem_t *e1,
const snd_mixer_elem_t *e2);
-/** Mixer element type */
typedef enum _snd_mixer_elem_type {
- /* Simple (legacy) mixer elements */
SND_MIXER_ELEM_SIMPLE,
SND_MIXER_ELEM_LAST = SND_MIXER_ELEM_SIMPLE
} snd_mixer_elem_type_t;
-/**
- * \defgroup SimpleMixer Simple Mixer Interface
- * \ingroup Mixer
- * The simple mixer interface.
- * \{
- */
-
-/* Simple (legacy) mixer elements API */
-
-/** Mixer simple element channel identifier */
typedef enum _snd_mixer_selem_channel_id {
- /** Unknown */
SND_MIXER_SCHN_UNKNOWN = -1,
- /** Front left */
SND_MIXER_SCHN_FRONT_LEFT = 0,
- /** Front right */
SND_MIXER_SCHN_FRONT_RIGHT,
- /** Rear left */
SND_MIXER_SCHN_REAR_LEFT,
- /** Rear right */
SND_MIXER_SCHN_REAR_RIGHT,
- /** Front center */
SND_MIXER_SCHN_FRONT_CENTER,
- /** Woofer */
SND_MIXER_SCHN_WOOFER,
- /** Side Left */
SND_MIXER_SCHN_SIDE_LEFT,
- /** Side Right */
SND_MIXER_SCHN_SIDE_RIGHT,
- /** Rear Center */
SND_MIXER_SCHN_REAR_CENTER,
SND_MIXER_SCHN_LAST = 31,
- /** Mono (Front left alias) */
SND_MIXER_SCHN_MONO = SND_MIXER_SCHN_FRONT_LEFT
} snd_mixer_selem_channel_id_t;
-/** Mixer simple element - register options - abstraction level */
enum snd_mixer_selem_regopt_abstract {
- /** no abstraction - try use all universal controls from driver */
SND_MIXER_SABSTRACT_NONE = 0,
- /** basic abstraction - Master,PCM,CD,Aux,Record-Gain etc. */
SND_MIXER_SABSTRACT_BASIC,
};
-/** Mixer simple element - register options */
struct snd_mixer_selem_regopt {
- /** structure version */
int ver;
- /** v1: abstract layer selection */
enum snd_mixer_selem_regopt_abstract abstract;
- /** v1: device name (must be NULL when playback_pcm or capture_pcm != NULL) */
const char *device;
- /** v1: playback PCM connected to mixer device (NULL == none) */
snd_pcm_t *playback_pcm;
- /** v1: capture PCM connected to mixer device (NULL == none) */
snd_pcm_t *capture_pcm;
};
-/** Mixer simple element identifier */
typedef struct _snd_mixer_selem_id snd_mixer_selem_id_t;
#endif /* __ALSA_MIXER_TYPES_H */
diff --git a/src/pcm_types.h b/src/pcm_types.h
index a3b52a4..79c523c 100644
--- a/src/pcm_types.h
+++ b/src/pcm_types.h
@@ -4,358 +4,70 @@
#include <unistd.h>
#include <stdint.h>
-/** PCM hardware configuration space container */
-typedef struct sndrv_pcm_hw_params snd_pcm_hw_params_t;
-/** PCM software configuration container */
-typedef struct sndrv_pcm_sw_params snd_pcm_sw_params_t;
-/** PCM status container */
- typedef struct sndrv_pcm_status snd_pcm_status_t;
-/** PCM access types mask */
-typedef struct sndrv_mask snd_mask_t;
-/** PCM access types mask */
-typedef struct sndrv_mask snd_pcm_access_mask_t;
-/** PCM formats mask */
-typedef struct sndrv_mask snd_pcm_format_mask_t;
-/** PCM subformats mask */
-typedef struct sndrv_mask snd_pcm_subformat_mask_t;
+typedef snd_mask_t snd_pcm_access_mask_t;
+typedef snd_mask_t snd_pcm_format_mask_t;
+typedef snd_mask_t snd_pcm_subformat_mask_t;
-/** PCM class */
-typedef enum _snd_pcm_class {
- /** standard device */
-
- SND_PCM_CLASS_GENERIC = 0,
- /** multichannel device */
- SND_PCM_CLASS_MULTI,
- /** software modem device */
- SND_PCM_CLASS_MODEM,
- /** digitizer device */
- SND_PCM_CLASS_DIGITIZER,
- SND_PCM_CLASS_LAST = SND_PCM_CLASS_DIGITIZER
-} snd_pcm_class_t;
-
-/** PCM subclass */
-typedef enum _snd_pcm_subclass {
- /** subdevices are mixed together */
- SND_PCM_SUBCLASS_GENERIC_MIX = 0,
- /** multichannel subdevices are mixed together */
- SND_PCM_SUBCLASS_MULTI_MIX,
- SND_PCM_SUBCLASS_LAST = SND_PCM_SUBCLASS_MULTI_MIX
-} snd_pcm_subclass_t;
-
-/** PCM stream (direction) */
-typedef enum _snd_pcm_stream {
- /** Playback stream */
- SND_PCM_STREAM_PLAYBACK = 0,
- /** Capture stream */
- SND_PCM_STREAM_CAPTURE,
- SND_PCM_STREAM_LAST = SND_PCM_STREAM_CAPTURE
-} snd_pcm_stream_t;
-
-/** PCM access type */
-typedef enum _snd_pcm_access {
- /** mmap access with simple interleaved channels */
- SND_PCM_ACCESS_MMAP_INTERLEAVED = 0,
- /** mmap access with simple non interleaved channels */
- SND_PCM_ACCESS_MMAP_NONINTERLEAVED,
- /** mmap access with complex placement */
- SND_PCM_ACCESS_MMAP_COMPLEX,
- /** snd_pcm_readi/snd_pcm_writei access */
- SND_PCM_ACCESS_RW_INTERLEAVED,
- /** snd_pcm_readn/snd_pcm_writen access */
- SND_PCM_ACCESS_RW_NONINTERLEAVED,
- SND_PCM_ACCESS_LAST = SND_PCM_ACCESS_RW_NONINTERLEAVED
-} snd_pcm_access_t;
-
-/** PCM sample format */
-typedef enum _snd_pcm_format {
- /** Unknown */
- SND_PCM_FORMAT_UNKNOWN = -1,
- /** Signed 8 bit */
- SND_PCM_FORMAT_S8 = 0,
- /** Unsigned 8 bit */
- SND_PCM_FORMAT_U8,
- /** Signed 16 bit Little Endian */
- SND_PCM_FORMAT_S16_LE,
- /** Signed 16 bit Big Endian */
- SND_PCM_FORMAT_S16_BE,
- /** Unsigned 16 bit Little Endian */
- SND_PCM_FORMAT_U16_LE,
- /** Unsigned 16 bit Big Endian */
- SND_PCM_FORMAT_U16_BE,
- /** Signed 24 bit Little Endian using low three bytes in 32-bit word */
- SND_PCM_FORMAT_S24_LE,
- /** Signed 24 bit Big Endian using low three bytes in 32-bit word */
- SND_PCM_FORMAT_S24_BE,
- /** Unsigned 24 bit Little Endian using low three bytes in 32-bit word */
- SND_PCM_FORMAT_U24_LE,
- /** Unsigned 24 bit Big Endian using low three bytes in 32-bit word */
- SND_PCM_FORMAT_U24_BE,
- /** Signed 32 bit Little Endian */
- SND_PCM_FORMAT_S32_LE,
- /** Signed 32 bit Big Endian */
- SND_PCM_FORMAT_S32_BE,
- /** Unsigned 32 bit Little Endian */
- SND_PCM_FORMAT_U32_LE,
- /** Unsigned 32 bit Big Endian */
- SND_PCM_FORMAT_U32_BE,
- /** Float 32 bit Little Endian, Range -1.0 to 1.0 */
- SND_PCM_FORMAT_FLOAT_LE,
- /** Float 32 bit Big Endian, Range -1.0 to 1.0 */
- SND_PCM_FORMAT_FLOAT_BE,
- /** Float 64 bit Little Endian, Range -1.0 to 1.0 */
- SND_PCM_FORMAT_FLOAT64_LE,
- /** Float 64 bit Big Endian, Range -1.0 to 1.0 */
- SND_PCM_FORMAT_FLOAT64_BE,
- /** IEC-958 Little Endian */
- SND_PCM_FORMAT_IEC958_SUBFRAME_LE,
- /** IEC-958 Big Endian */
- SND_PCM_FORMAT_IEC958_SUBFRAME_BE,
- /** Mu-Law */
- SND_PCM_FORMAT_MU_LAW,
- /** A-Law */
- SND_PCM_FORMAT_A_LAW,
- /** Ima-ADPCM */
- SND_PCM_FORMAT_IMA_ADPCM,
- /** MPEG */
- SND_PCM_FORMAT_MPEG,
- /** GSM */
- SND_PCM_FORMAT_GSM,
- /** Special */
- SND_PCM_FORMAT_SPECIAL = 31,
- /** Signed 24bit Little Endian in 3bytes format */
- SND_PCM_FORMAT_S24_3LE = 32,
- /** Signed 24bit Big Endian in 3bytes format */
- SND_PCM_FORMAT_S24_3BE,
- /** Unsigned 24bit Little Endian in 3bytes format */
- SND_PCM_FORMAT_U24_3LE,
- /** Unsigned 24bit Big Endian in 3bytes format */
- SND_PCM_FORMAT_U24_3BE,
- /** Signed 20bit Little Endian in 3bytes format */
- SND_PCM_FORMAT_S20_3LE,
- /** Signed 20bit Big Endian in 3bytes format */
- SND_PCM_FORMAT_S20_3BE,
- /** Unsigned 20bit Little Endian in 3bytes format */
- SND_PCM_FORMAT_U20_3LE,
- /** Unsigned 20bit Big Endian in 3bytes format */
- SND_PCM_FORMAT_U20_3BE,
- /** Signed 18bit Little Endian in 3bytes format */
- SND_PCM_FORMAT_S18_3LE,
- /** Signed 18bit Big Endian in 3bytes format */
- SND_PCM_FORMAT_S18_3BE,
- /** Unsigned 18bit Little Endian in 3bytes format */
- SND_PCM_FORMAT_U18_3LE,
- /** Unsigned 18bit Big Endian in 3bytes format */
- SND_PCM_FORMAT_U18_3BE,
- SND_PCM_FORMAT_LAST = SND_PCM_FORMAT_U18_3BE,
-
-#if __BYTE_ORDER == __LITTLE_ENDIAN
- /** Signed 16 bit CPU endian */
- SND_PCM_FORMAT_S16 = SND_PCM_FORMAT_S16_LE,
- /** Unsigned 16 bit CPU endian */
- SND_PCM_FORMAT_U16 = SND_PCM_FORMAT_U16_LE,
- /** Signed 24 bit CPU endian */
- SND_PCM_FORMAT_S24 = SND_PCM_FORMAT_S24_LE,
- /** Unsigned 24 bit CPU endian */
- SND_PCM_FORMAT_U24 = SND_PCM_FORMAT_U24_LE,
- /** Signed 32 bit CPU endian */
- SND_PCM_FORMAT_S32 = SND_PCM_FORMAT_S32_LE,
- /** Unsigned 32 bit CPU endian */
- SND_PCM_FORMAT_U32 = SND_PCM_FORMAT_U32_LE,
- /** Float 32 bit CPU endian */
- SND_PCM_FORMAT_FLOAT = SND_PCM_FORMAT_FLOAT_LE,
- /** Float 64 bit CPU endian */
- SND_PCM_FORMAT_FLOAT64 = SND_PCM_FORMAT_FLOAT64_LE,
- /** IEC-958 CPU Endian */
- SND_PCM_FORMAT_IEC958_SUBFRAME = SND_PCM_FORMAT_IEC958_SUBFRAME_LE
-#elif __BYTE_ORDER == __BIG_ENDIAN
- /** Signed 16 bit CPU endian */
- SND_PCM_FORMAT_S16 = SND_PCM_FORMAT_S16_BE,
- /** Unsigned 16 bit CPU endian */
- SND_PCM_FORMAT_U16 = SND_PCM_FORMAT_U16_BE,
- /** Signed 24 bit CPU endian */
- SND_PCM_FORMAT_S24 = SND_PCM_FORMAT_S24_BE,
- /** Unsigned 24 bit CPU endian */
- SND_PCM_FORMAT_U24 = SND_PCM_FORMAT_U24_BE,
- /** Signed 32 bit CPU endian */
- SND_PCM_FORMAT_S32 = SND_PCM_FORMAT_S32_BE,
- /** Unsigned 32 bit CPU endian */
- SND_PCM_FORMAT_U32 = SND_PCM_FORMAT_U32_BE,
- /** Float 32 bit CPU endian */
- SND_PCM_FORMAT_FLOAT = SND_PCM_FORMAT_FLOAT_BE,
- /** Float 64 bit CPU endian */
- SND_PCM_FORMAT_FLOAT64 = SND_PCM_FORMAT_FLOAT64_BE,
- /** IEC-958 CPU Endian */
- SND_PCM_FORMAT_IEC958_SUBFRAME = SND_PCM_FORMAT_IEC958_SUBFRAME_BE
-#else
-#error "Unknown endian"
-#endif
-} snd_pcm_format_t;
-
-/** PCM sample subformat */
-typedef enum _snd_pcm_subformat {
- /** Standard */
- SND_PCM_SUBFORMAT_STD = 0,
- SND_PCM_SUBFORMAT_LAST = SND_PCM_SUBFORMAT_STD
-} snd_pcm_subformat_t;
-
-/** PCM state */
-typedef enum _snd_pcm_state {
- /** Open */
- SND_PCM_STATE_OPEN = 0,
- /** Setup installed */
- SND_PCM_STATE_SETUP,
- /** Ready to start */
- SND_PCM_STATE_PREPARED,
- /** Running */
- SND_PCM_STATE_RUNNING,
- /** Stopped: underrun (playback) or overrun (capture) detected */
- SND_PCM_STATE_XRUN,
- /** Draining: running (playback) or stopped (capture) */
- SND_PCM_STATE_DRAINING,
- /** Paused */
- SND_PCM_STATE_PAUSED,
- /** Hardware is suspended */
- SND_PCM_STATE_SUSPENDED,
- /** Hardware is disconnected */
- SND_PCM_STATE_DISCONNECTED,
- SND_PCM_STATE_LAST = SND_PCM_STATE_DISCONNECTED
-} snd_pcm_state_t;
-
-/** PCM start mode */
+/* deprecated */
typedef enum _snd_pcm_start {
- /** Automatic start on data read/write */
SND_PCM_START_DATA = 0,
- /** Explicit start */
SND_PCM_START_EXPLICIT,
SND_PCM_START_LAST = SND_PCM_START_EXPLICIT
} snd_pcm_start_t;
-/** PCM xrun mode */
+/* deprecated */
typedef enum _snd_pcm_xrun {
- /** Xrun detection disabled */
SND_PCM_XRUN_NONE = 0,
- /** Stop on xrun detection */
SND_PCM_XRUN_STOP,
SND_PCM_XRUN_LAST = SND_PCM_XRUN_STOP
} snd_pcm_xrun_t;
-/** PCM timestamp mode */
-typedef enum _snd_pcm_tstamp {
- /** No timestamp */
- SND_PCM_TSTAMP_NONE = 0,
- /** Update timestamp at every hardware position update */
- SND_PCM_TSTAMP_ENABLE,
- /** Equivalent with #SND_PCM_TSTAMP_ENABLE,
- * just for compatibility with older versions
- */
- SND_PCM_TSTAMP_MMAP = SND_PCM_TSTAMP_ENABLE,
- SND_PCM_TSTAMP_LAST = SND_PCM_TSTAMP_MMAP
-} snd_pcm_tstamp_t;
-
-/** Unsigned frames quantity */
-typedef unsigned long snd_pcm_uframes_t;
-/** Signed frames quantity */
-typedef long snd_pcm_sframes_t;
-
-/** Non blocking mode (flag for open mode) \hideinitializer */
#define SND_PCM_NONBLOCK 0x00000001
-/** Async notification (flag for open mode) \hideinitializer */
#define SND_PCM_ASYNC 0x00000002
#define SND_PCM_NO_AUTO_RESAMPLE 0x00010000
-/** Disable automatic (but not forced!) channel conversion */
#define SND_PCM_NO_AUTO_CHANNELS 0x00020000
-/** Disable automatic (but not forced!) format conversion */
#define SND_PCM_NO_AUTO_FORMAT 0x00040000
-/** Disable soft volume control */
#define SND_PCM_NO_SOFTVOL 0x00080000
-/** PCM type */
-enum _snd_pcm_type {
- /** Kernel level PCM */
+typedef enum _snd_pcm_type {
SND_PCM_TYPE_HW = 0,
- /** Hooked PCM */
+ /* the rest are not supported by SALSA (of course!) */
SND_PCM_TYPE_HOOKS,
- /** One or more linked PCM with exclusive access to selected
- channels */
SND_PCM_TYPE_MULTI,
- /** File writing plugin */
SND_PCM_TYPE_FILE,
- /** Null endpoint PCM */
SND_PCM_TYPE_NULL,
- /** Shared memory client PCM */
SND_PCM_TYPE_SHM,
- /** INET client PCM (not yet implemented) */
SND_PCM_TYPE_INET,
- /** Copying plugin */
SND_PCM_TYPE_COPY,
- /** Linear format conversion PCM */
SND_PCM_TYPE_LINEAR,
- /** A-Law format conversion PCM */
SND_PCM_TYPE_ALAW,
- /** Mu-Law format conversion PCM */
SND_PCM_TYPE_MULAW,
- /** IMA-ADPCM format conversion PCM */
SND_PCM_TYPE_ADPCM,
- /** Rate conversion PCM */
SND_PCM_TYPE_RATE,
- /** Attenuated static route PCM */
SND_PCM_TYPE_ROUTE,
- /** Format adjusted PCM */
SND_PCM_TYPE_PLUG,
- /** Sharing PCM */
SND_PCM_TYPE_SHARE,
- /** Meter plugin */
SND_PCM_TYPE_METER,
- /** Mixing PCM */
SND_PCM_TYPE_MIX,
- /** Attenuated dynamic route PCM (not yet implemented) */
SND_PCM_TYPE_DROUTE,
- /** Loopback server plugin (not yet implemented) */
SND_PCM_TYPE_LBSERVER,
- /** Linear Integer <-> Linear Float format conversion PCM */
SND_PCM_TYPE_LINEAR_FLOAT,
- /** LADSPA integration plugin */
SND_PCM_TYPE_LADSPA,
- /** Direct Mixing plugin */
SND_PCM_TYPE_DMIX,
- /** Jack Audio Connection Kit plugin */
SND_PCM_TYPE_JACK,
- /** Direct Snooping plugin */
SND_PCM_TYPE_DSNOOP,
- /** Direct Sharing plugin */
SND_PCM_TYPE_DSHARE,
- /** IEC958 subframe plugin */
SND_PCM_TYPE_IEC958,
- /** Soft volume plugin */
SND_PCM_TYPE_SOFTVOL,
- /** External I/O plugin */
SND_PCM_TYPE_IOPLUG,
- /** External filter plugin */
SND_PCM_TYPE_EXTPLUG,
SND_PCM_TYPE_LAST = SND_PCM_TYPE_EXTPLUG
-};
-
-/** PCM type */
-typedef enum _snd_pcm_type snd_pcm_type_t;
+} snd_pcm_type_t;
-/** PCM area specification */
typedef struct _snd_pcm_channel_area {
- /** base address of channel samples */
void *addr;
- /** offset to first sample in bits */
unsigned int first;
- /** samples distance in bits */
unsigned int step;
} snd_pcm_channel_area_t;
-/** PCM synchronization ID */
-typedef union _snd_pcm_sync_id {
- /** 8-bit ID */
- unsigned char id[16];
- /** 16-bit ID */
- unsigned short id16[8];
- /** 32-bit ID */
- unsigned int id32[4];
-} snd_pcm_sync_id_t;
-
#endif /* __ALSA_PCM_TYPES_H */
diff --git a/src/rawmidi_types.h b/src/rawmidi_types.h
index 3c7c295..d05d1f0 100644
--- a/src/rawmidi_types.h
+++ b/src/rawmidi_types.h
@@ -1,37 +1,15 @@
#ifndef __ALSA_RAWMIDI_TYPES_H
#define __ALSA_RAWMIDI_TYPES_H
-/** RawMidi settings container */
-typedef struct sndrv_rawmidi_params snd_rawmidi_params_t;
-/** RawMidi status container */
-typedef struct sndrv_rawmidi_status snd_rawmidi_status_t;
-
-/** RawMidi stream (direction) */
-typedef enum _snd_rawmidi_stream {
- /** Output stream */
- SND_RAWMIDI_STREAM_OUTPUT = 0,
- /** Input stream */
- SND_RAWMIDI_STREAM_INPUT,
- SND_RAWMIDI_STREAM_LAST = SND_RAWMIDI_STREAM_INPUT
-} snd_rawmidi_stream_t;
-
-/** Append (flag to open mode) \hideinitializer */
#define SND_RAWMIDI_APPEND 0x0001
-/** Non blocking mode (flag to open mode) \hideinitializer */
#define SND_RAWMIDI_NONBLOCK 0x0002
-/** Write sync mode (Flag to open mode) \hideinitializer */
#define SND_RAWMIDI_SYNC 0x0004
-/** RawMidi type */
typedef enum _snd_rawmidi_type {
- /** Kernel level RawMidi */
SND_RAWMIDI_TYPE_HW,
- /** Shared memory client RawMidi (not yet implemented) */
- SND_RAWMIDI_TYPE_SHM,
- /** INET client RawMidi (not yet implemented) */
- SND_RAWMIDI_TYPE_INET,
- /** Virtual (sequencer) RawMidi */
- SND_RAWMIDI_TYPE_VIRTUAL
+ SND_RAWMIDI_TYPE_SHM, /* not used by SALSA */
+ SND_RAWMIDI_TYPE_INET, /* not used by SALSA */
+ SND_RAWMIDI_TYPE_VIRTUAL /* not used by SALSA */
} snd_rawmidi_type_t;
#endif /* __ALSA_RAWMIDI_TYPES_H */
diff --git a/src/timer_types.h b/src/timer_types.h
index d558bd4..cb4e40f 100644
--- a/src/timer_types.h
+++ b/src/timer_types.h
@@ -1,97 +1,16 @@
#ifndef __ALSA_TIMER_TYPES_H
#define __ALSA_TIMER_TYPES_H
-/** timer identification structure */
-typedef struct sndrv_timer_id snd_timer_id_t;
-/** timer global info structure */
-typedef struct sndrv_timer_ginfo snd_timer_ginfo_t;
-/** timer global params structure */
-typedef struct sndrv_timer_gparams snd_timer_gparams_t;
-/** timer global status structure */
-typedef struct sndrv_timer_gstatus snd_timer_gstatus_t;
-/** timer info structure */
-typedef struct sndrv_timer_info snd_timer_info_t;
-/** timer params structure */
-typedef struct sndrv_timer_params snd_timer_params_t;
-/** timer status structure */
-typedef struct sndrv_timer_status snd_timer_status_t;
-/** timer master class */
-typedef enum _snd_timer_class {
- SND_TIMER_CLASS_NONE = -1, /**< invalid */
- SND_TIMER_CLASS_SLAVE = 0, /**< slave timer */
- SND_TIMER_CLASS_GLOBAL, /**< global timer */
- SND_TIMER_CLASS_CARD, /**< card timer */
- SND_TIMER_CLASS_PCM, /**< PCM timer */
- SND_TIMER_CLASS_LAST = SND_TIMER_CLASS_PCM /**< last timer */
-} snd_timer_class_t;
-
-/** timer slave class */
-typedef enum _snd_timer_slave_class {
- SND_TIMER_SCLASS_NONE = 0, /**< none */
- SND_TIMER_SCLASS_APPLICATION, /**< for internal use */
- SND_TIMER_SCLASS_SEQUENCER, /**< sequencer timer */
- SND_TIMER_SCLASS_OSS_SEQUENCER, /**< OSS sequencer timer */
- SND_TIMER_SCLASS_LAST = SND_TIMER_SCLASS_OSS_SEQUENCER /**< last slave timer */
-} snd_timer_slave_class_t;
-
-/** timer read event identification */
-typedef enum _snd_timer_event {
- SND_TIMER_EVENT_RESOLUTION = 0, /* val = resolution in ns */
- SND_TIMER_EVENT_TICK, /* val = ticks */
- SND_TIMER_EVENT_START, /* val = resolution in ns */
- SND_TIMER_EVENT_STOP, /* val = 0 */
- SND_TIMER_EVENT_CONTINUE, /* val = resolution in ns */
- SND_TIMER_EVENT_PAUSE, /* val = 0 */
- SND_TIMER_EVENT_EARLY, /* val = 0 */
- SND_TIMER_EVENT_SUSPEND, /* val = 0 */
- SND_TIMER_EVENT_RESUME, /* val = resolution in ns */
- /* master timer events for slave timer instances */
- SND_TIMER_EVENT_MSTART = SND_TIMER_EVENT_START + 10,
- SND_TIMER_EVENT_MSTOP = SND_TIMER_EVENT_STOP + 10,
- SND_TIMER_EVENT_MCONTINUE = SND_TIMER_EVENT_CONTINUE + 10,
- SND_TIMER_EVENT_MPAUSE = SND_TIMER_EVENT_PAUSE + 10,
- SND_TIMER_EVENT_MSUSPEND = SND_TIMER_EVENT_SUSPEND + 10,
- SND_TIMER_EVENT_MRESUME = SND_TIMER_EVENT_RESUME + 10
-} snd_timer_event_t;
-
-/** timer read structure */
-typedef struct _snd_timer_read {
- unsigned int resolution; /**< tick resolution in nanoseconds */
- unsigned int ticks; /**< count of happened ticks */
-} snd_timer_read_t;
-
-/** timer tstamp + event read structure */
-typedef struct _snd_timer_tread {
- snd_timer_event_t event; /**< Timer event */
- snd_htimestamp_t tstamp; /**< Time stamp of each event */
- unsigned int val; /**< Event value */
-} snd_timer_tread_t;
-
-/** global timer - system */
-#define SND_TIMER_GLOBAL_SYSTEM 0
-/** global timer - RTC */
-#define SND_TIMER_GLOBAL_RTC 1
-/** global timer - HPET */
-#define SND_TIMER_GLOBAL_HPET 2
-
-/** timer open mode flag - non-blocking behaviour */
#define SND_TIMER_OPEN_NONBLOCK (1<<0)
-/** use timestamps and event notification - enhanced read */
#define SND_TIMER_OPEN_TREAD (1<<1)
-/** timer handle type */
typedef enum _snd_timer_type {
- /** Kernel level HwDep */
SND_TIMER_TYPE_HW = 0,
- /** Shared memory client timer (not yet implemented) */
- SND_TIMER_TYPE_SHM,
- /** INET client timer (not yet implemented) */
- SND_TIMER_TYPE_INET
+ SND_TIMER_TYPE_SHM, /* not used by SALSA */
+ SND_TIMER_TYPE_INET /* not used by SALSA */
} snd_timer_type_t;
-/** timer query handle */
typedef struct _snd_timer_query snd_timer_query_t;
-/** timer handle */
typedef struct _snd_timer snd_timer_t;
#endif /* __ALSA_TIMER_TYPES_H */