diff options
author | Takashi Iwai <tiwai@suse.de> | 2011-05-24 18:36:18 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2011-05-24 18:36:18 +0200 |
commit | 95ff57b0ce96f2ca44bee83357cc6370cc03dab1 (patch) | |
tree | a2787e12d9b45aedee7e969f55fe0a57766d5ff2 | |
parent | bbd17b43dc04c039b6adb24a174c90c934b60ecd (diff) | |
download | salsa-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.h | 163 | ||||
-rw-r--r-- | src/hctl_types.h | 23 | ||||
-rw-r--r-- | src/hwdep_types.h | 42 | ||||
-rw-r--r-- | src/mixer_types.h | 52 | ||||
-rw-r--r-- | src/pcm_types.h | 304 | ||||
-rw-r--r-- | src/rawmidi_types.h | 28 | ||||
-rw-r--r-- | src/timer_types.h | 85 |
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 */ |