blob: a09fe8d10bb0ca017aaa57960ae7b5c48dd08a34 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
/*! \file audio.hch
*
* \section generic Audiodriver API
*
* \section project Project information.
* Project Graphic Equalizer\n
* \author O.M. Schinagl
* \date 20041021
* \version 0.1
*
* \section copyright Copyright
* Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
*
* \section history Change history
* 20041021: O.M. Schinagl\n Initial version
*
********************************************************************/
#ifndef _AUDIO_HCH
#define _AUDIO_HCH 1
/*
* Type definition of the shared memory to be used in various processes
*/
typedef struct {
mpram {
ram unsigned 7 write[256];
rom unsigned 7 read[256];
} fft_info with { block = "BlockRAM"};
mpram {
ram signed 6 write[256];
rom signed 6 read[256];
} ifft_info with { block = "BlockRAM"};
mpram {
ram unsigned 4 write[768];
rom unsigned 4 read[768];
} equalizer_levels with { block = "BlockRAM"};
unsigned 10 active_preset;
unsigned 4 *equalizer_levels_ptr;
unsigned 1 display_log;
} audiodata_t;
/*
* States used to indicate wether audio data is sampled.
*/
#define AUDIO_NOT_READY 0
#define AUDIO_READY 1
/*
* Line in or Mic in aliases for audio_init.
*/
#define LINE_IN RC200AudioInLineIn
#define MIC_IN RC200AudioInMicrophone
/*
* Sample Rate Aliases for audio_init.
*/
#define SR_8000 RC200AudioSampleRate8000
#define SR_11025 RC200AudioSampleRate11025
#define SR_16000 RC200AudioSampleRate16000
#define SR_22050 RC200AudioSampleRate22050
#define SR_44100 RC200AudioSampleRate44100
#define SR_48000 RC200AudioSampleRate48000
/*
* Initialize the Audio sub-system. gain_level sets the internal amplifier to
* passed level, input_source chooses between line in or mic in. The
* sample_rate is set to supplied rate. Defines for these are mentioned above.
*/
macro proc audio_init(gain_level, input_source, sample_rate, AUDIOIN, AUDIOOUT);
/*
* Main audiodriver loop. This procedure never returns! It handles audio io and
* updates the shared memory. It needs Audio I/O handlers passed.
*/
macro proc audio_main(audiodata, AUDIOIN, AUDIOOUT);
#else
#error "ERROR file audio.hch multiple times included"
#endif /* --- _AUDIO_HCH --- */
|