source: roaraudio/include/roaraudio/audio.h @ 16:c4585a26128b

Last change on this file since 16:c4585a26128b was 16:c4585a26128b, checked in by phi, 16 years ago

preperation to support mixing at diffrent levels

File size: 1.5 KB
Line 
1//audio.h:
2
3#ifndef _ROARAUDIO_AUDIO_H_
4#define _ROARAUDIO_AUDIO_H_
5
6#define ROAR_CODEC_PCM_LE  ROAR_CODEC_PCM_S_LE
7#define ROAR_CODEC_PCM_BE  ROAR_CODEC_PCM_S_BE
8#define ROAR_CODEC_PCM_PDP ROAR_CODEC_PCM_S_PDP
9
10/*
11 Bits:
12 76543210
13      ||\---\ byte-
14      |\----/ order
15      \-----> unsigned?
16*/
17
18#define ROAR_CODEC_IS_SIGNED(x)  (((x) & ROAR_CODEC_UNSIGNED) == 0 ? 1 : 0)
19#define ROAR_CODEC_BYTE_ORDER(x) ((x) & 0x03)
20
21#define ROAR_CODEC_UNSIGNED    (1 << 2)
22
23#define ROAR_CODEC_PCM_S_LE  0x01
24#define ROAR_CODEC_PCM_S_BE  0x02
25#define ROAR_CODEC_PCM_S_PDP 0x03
26
27#define ROAR_CODEC_PCM_U_LE  (ROAR_CODEC_PCM_S_LE  | ROAR_CODEC_UNSIGNED)
28#define ROAR_CODEC_PCM_U_BE  (ROAR_CODEC_PCM_S_BE  | ROAR_CODEC_UNSIGNED)
29#define ROAR_CODEC_PCM_U_PDP (ROAR_CODEC_PCM_S_PDP | ROAR_CODEC_UNSIGNED)
30
31#if BYTE_ORDER == BIG_ENDIAN
32
33#define ROAR_CODEC_DEFAULT ROAR_CODEC_PCM_BE
34#define ROAR_BE2DEF(x) (x)
35
36#elif BYTE_ORDER == LITTLE_ENDIAN
37
38#define ROAR_CODEC_DEFAULT ROAR_CODEC_PCM_LE
39#define ROAR_LE2DEF(x) (x)
40
41#else
42
43#define ROAR_CODEC_DEFAULT ROAR_CODEC_PCM_PDP
44#define ROAR_PDP2DEF(x) (x)
45
46#endif
47
48
49#define ROAR_CODEC_NATIVE ROAR_CODEC_DEFAULT
50
51#define ROAR_BITS_MAX             32
52
53#define ROAR_BITS_DEFAULT         16
54#define ROAR_CHANNELS_DEFAULT      2
55#define ROAR_RATE_DEFAULT      44100
56
57#define ROAR_MAX_CHANNELS         64
58
59struct roar_audio_info {
60 unsigned int rate;
61 unsigned int bits;
62 unsigned int channels;
63 unsigned int codec;
64};
65
66struct roar_mixer_settings {
67 unsigned      channels;
68 roar_intm16   scale;
69 roar_intm16   mixer[ROAR_MAX_CHANNELS];
70};
71
72#endif
73
74//ll
Note: See TracBrowser for help on using the repository browser.