source: roaraudio/include/roaraudio/audio.h @ 317:ea95c08ada23

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

reserved one bit for MIDI

File size: 1.6 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     \------> PCM(0) or MIDI(1)?
17*/
18
19#define ROAR_CODEC_IS_SIGNED(x)  (((x) & ROAR_CODEC_UNSIGNED) == 0 ? 1 : 0)
20#define ROAR_CODEC_BYTE_ORDER(x) ((x) & 0x03)
21
22#define ROAR_CODEC_UNSIGNED    (1 << 2)
23
24#define ROAR_CODEC_PCM_S_LE  0x01
25#define ROAR_CODEC_PCM_S_BE  0x02
26#define ROAR_CODEC_PCM_S_PDP 0x03
27
28#define ROAR_CODEC_PCM_U_LE  (ROAR_CODEC_PCM_S_LE  | ROAR_CODEC_UNSIGNED)
29#define ROAR_CODEC_PCM_U_BE  (ROAR_CODEC_PCM_S_BE  | ROAR_CODEC_UNSIGNED)
30#define ROAR_CODEC_PCM_U_PDP (ROAR_CODEC_PCM_S_PDP | ROAR_CODEC_UNSIGNED)
31
32#if BYTE_ORDER == BIG_ENDIAN
33
34#define ROAR_CODEC_DEFAULT ROAR_CODEC_PCM_BE
35#define ROAR_BE2DEF(x) (x)
36
37#elif BYTE_ORDER == LITTLE_ENDIAN
38
39#define ROAR_CODEC_DEFAULT ROAR_CODEC_PCM_LE
40#define ROAR_LE2DEF(x) (x)
41
42#else
43
44#define ROAR_CODEC_DEFAULT ROAR_CODEC_PCM_PDP
45#define ROAR_PDP2DEF(x) (x)
46
47#endif
48
49
50#define ROAR_CODEC_NATIVE ROAR_CODEC_DEFAULT
51
52#define ROAR_BITS_MAX             32
53
54#define ROAR_BITS_DEFAULT         16
55#define ROAR_CHANNELS_DEFAULT      2
56#define ROAR_RATE_DEFAULT      44100
57
58#define ROAR_MAX_CHANNELS         64
59
60#define ROAR_SET_VOL_ALL           1
61#define ROAR_SET_VOL_ONE           2
62
63struct roar_audio_info {
64 unsigned int rate;
65 unsigned int bits;
66 unsigned int channels;
67 unsigned int codec;
68};
69
70struct roar_mixer_settings {
71 //unsigned      channels;
72 roar_intm16   scale;
73 roar_intm16   mixer[ROAR_MAX_CHANNELS];
74};
75
76#endif
77
78//ll
Note: See TracBrowser for help on using the repository browser.