2001-06-08 23:31:06 +00:00
|
|
|
|
|
|
|
/* Defines that AFMT_ stuff */
|
|
|
|
|
|
|
|
#ifdef HAVE_SYS_SOUNDCARD_H
|
|
|
|
#include <sys/soundcard.h> /* For AFMT_* on linux */
|
2002-04-27 22:42:27 +00:00
|
|
|
#else
|
|
|
|
#ifdef HAVE_SOUNDCARD_H
|
|
|
|
#include <soundcard.h> /* OpenBSD have this instead of <sys/soundcard> */
|
|
|
|
#endif
|
2001-06-08 23:31:06 +00:00
|
|
|
#endif
|
|
|
|
|
2004-12-07 02:24:15 +00:00
|
|
|
#include "config.h" /* for native endianness */
|
2003-01-03 15:12:18 +00:00
|
|
|
|
2001-06-08 23:31:06 +00:00
|
|
|
/* standard, old OSS audio formats */
|
|
|
|
#ifndef AFMT_MU_LAW
|
|
|
|
# define AFMT_MU_LAW 0x00000001
|
|
|
|
# define AFMT_A_LAW 0x00000002
|
|
|
|
# define AFMT_IMA_ADPCM 0x00000004
|
|
|
|
# define AFMT_U8 0x00000008
|
|
|
|
# define AFMT_S16_LE 0x00000010 /* Little endian signed 16*/
|
|
|
|
# define AFMT_S16_BE 0x00000020 /* Big endian signed 16 */
|
|
|
|
# define AFMT_S8 0x00000040
|
|
|
|
# define AFMT_U16_LE 0x00000080 /* Little endian U16 */
|
|
|
|
# define AFMT_U16_BE 0x00000100 /* Big endian U16 */
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef AFMT_MPEG
|
|
|
|
# define AFMT_MPEG 0x00000200 /* MPEG (2) audio */
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef AFMT_AC3
|
|
|
|
# define AFMT_AC3 0x00000400 /* Dolby Digital AC3 */
|
|
|
|
#endif
|
|
|
|
|
2004-10-04 19:05:16 +00:00
|
|
|
/* 24 bit formats from the linux kernel */
|
|
|
|
#ifndef AFMT_S24_LE
|
2004-10-23 18:26:04 +00:00
|
|
|
|
|
|
|
// FreeBSD fix...
|
|
|
|
#if AFMT_S32_LE == 0x1000
|
|
|
|
|
|
|
|
#define AFMT_S24_LE 0x00010000
|
|
|
|
#define AFMT_S24_BE 0x00020000
|
|
|
|
#define AFMT_U24_LE 0x00040000
|
|
|
|
#define AFMT_U24_BE 0x00080000
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
2004-10-04 19:05:16 +00:00
|
|
|
#define AFMT_S24_LE 0x00000800
|
|
|
|
#define AFMT_S24_BE 0x00001000
|
|
|
|
#define AFMT_U24_LE 0x00002000
|
|
|
|
#define AFMT_U24_BE 0x00004000
|
2004-10-23 18:26:04 +00:00
|
|
|
|
|
|
|
#endif
|
|
|
|
|
2001-06-08 23:31:06 +00:00
|
|
|
#endif
|
|
|
|
|
2004-10-04 19:05:16 +00:00
|
|
|
/* 32 bit formats from the linux kernel */
|
|
|
|
#ifndef AFMT_S32_LE
|
|
|
|
#define AFMT_S32_LE 0x00008000
|
|
|
|
#define AFMT_S32_BE 0x00010000
|
|
|
|
#define AFMT_U32_LE 0x00020000
|
|
|
|
#define AFMT_U32_BE 0x00040000
|
|
|
|
#endif
|
2002-10-12 20:02:01 +00:00
|
|
|
|
|
|
|
/* native endian formats */
|
|
|
|
#ifndef AFMT_S16_NE
|
|
|
|
# if WORDS_BIGENDIAN
|
|
|
|
# define AFMT_S16_NE AFMT_S16_BE
|
2004-10-04 19:05:16 +00:00
|
|
|
# define AFMT_S24_NE AFMT_S24_BE
|
2002-10-12 20:02:01 +00:00
|
|
|
# define AFMT_S32_NE AFMT_S32_BE
|
|
|
|
# else
|
|
|
|
# define AFMT_S16_NE AFMT_S16_LE
|
2004-10-04 19:05:16 +00:00
|
|
|
# define AFMT_S24_NE AFMT_S24_LE
|
2002-10-12 20:02:01 +00:00
|
|
|
# define AFMT_S32_NE AFMT_S32_LE
|
|
|
|
# endif
|
|
|
|
#endif
|
2002-11-17 17:35:31 +00:00
|
|
|
|
|
|
|
#ifndef AFMT_FLOAT
|
2004-10-04 19:05:16 +00:00
|
|
|
# define AFMT_FLOAT 0x00100000
|
2002-11-17 17:35:31 +00:00
|
|
|
#endif
|
2004-05-16 10:48:59 +00:00
|
|
|
|
|
|
|
/* for formats that don't have a corresponding AFMT_* type,
|
|
|
|
* use the flags from libaf/af_format.h or'ed with this */
|
|
|
|
#define AFMT_AF_FLAGS 0x70000000
|