summaryrefslogtreecommitdiffstats
path: root/FFT_Test/audio.hch
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 --- */