Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
BitchX
GitHub Repository: BitchX/BitchX1.3
Path: blob/master/dll/amp/audio.h
1072 views
1
/* this file is a part of amp software, (C) tomislav uzelac 1996,1997
2
*/
3
4
/* audio.h some global variables
5
*
6
* Created by: tomislav uzelac Mar/Apr, Jul 96
7
*/
8
9
#include <stdio.h>
10
11
struct AUDIO_HEADER {
12
int ID;
13
int layer;
14
int protection_bit;
15
int bitrate_index;
16
int sampling_frequency;
17
int padding_bit;
18
int private_bit;
19
int mode;
20
int mode_extension;
21
int copyright;
22
int original;
23
int emphasis;
24
};
25
26
struct SIDE_INFO {
27
int main_data_begin;
28
int scfsi[2][4];
29
int part2_3_length[2][2];
30
int big_values[2][2];
31
int global_gain[2][2];
32
int scalefac_compress[2][2];
33
int window_switching_flag[2][2];
34
int block_type[2][2];
35
int mixed_block_flag[2][2];
36
int table_select[2][2][3];
37
int subblock_gain[2][2][3];
38
int region0_count[2][2];
39
int region1_count[2][2];
40
int preflag[2][2];
41
int scalefac_scale[2][2];
42
int count1table_select[2][2];
43
};
44
45
46
/* global stuff
47
*/
48
49
extern FILE *in_file;
50
51
extern void statusDisplay(struct AUDIO_HEADER *header, int frameNo);
52
extern void initialise_globals(void);
53
extern void report_header_error(int err);
54
55
extern int scalefac_l[2][2][22];
56
extern int scalefac_s[2][2][13][3];
57
extern int t_b8_l[2][3][22];
58
extern int t_b8_s[2][3][13];
59
extern short t_bitrate[2][3][15];
60
61
extern int is[2][578];
62
extern float xr[2][32][18];
63
64
extern int *t_l,*t_s;
65
extern int nch;
66
extern int t_sampling_frequency[2][3];
67
68
extern int A_QUIET,A_SHOW_CNT;
69
extern int A_WRITE_TO_AUDIO;
70
extern short pcm_sample[64];
71
extern int A_AUDIO_PLAY;
72
extern int A_SET_VOLUME,A_SHOW_TIME;
73
extern int A_DOWNMIX;
74
extern int A_SHUFFLE;
75
76
extern int stop_flag;
77
extern int quit_flag;
78
79
/* ...
80
*/
81
82
#ifdef AUDIO
83
84
FILE *in_file;
85
86
int scalefac_l[2][2][22];
87
int scalefac_s[2][2][13][3];
88
89
int is[2][578];
90
float xr[2][32][18];
91
92
int *t_l,*t_s;
93
int nch;
94
int t_sampling_frequency[2][3] = {
95
{ 22050 , 24000 , 16000},
96
{ 44100 , 48000 , 32000}
97
};
98
99
/* GUI control stuff */
100
int send_fd;
101
int receive_fd;
102
103
int stop_flag;
104
int quit_flag;
105
106
int A_QUIET,A_SHOW_CNT;
107
int A_AUDIO_PLAY;
108
int A_SET_VOLUME, A_SHOW_TIME;
109
int A_SHUFFLE;
110
int A_DOWNMIX;
111
112
short pcm_sample[64];
113
114
short t_bitrate[2][3][15] = {{
115
{0,32,48,56,64,80,96,112,128,144,160,176,192,224,256},
116
{0,8,16,24,32,40,48,56,64,80,96,112,128,144,160},
117
{0,8,16,24,32,40,48,56,64,80,96,112,128,144,160}
118
},{
119
{0,32,64,96,128,160,192,224,256,288,320,352,384,416,448},
120
{0,32,48,56,64,80,96,112,128,160,192,224,256,320,384},
121
{0,32,40,48,56,64,80,96,112,128,160,192,224,256,320}
122
}};
123
124
/* the last sfb is given implicitly on pg.28. of the standard. scalefactors
125
* for that one are 0, pretab also
126
*/
127
/* leftmost index denotes ID, so first three tables are for MPEG2 (header->ID==0)
128
* and the other three are for MPEG1 (header->ID==1)
129
*/
130
/* 22.05, 24, 16 */
131
int t_b8_l[2][3][22]={{ /* table B.8b ISO/IEC 11172-3 */
132
{5,11,17,23,29,35,43,53,65,79,95,115,139,167,199,237,283,335,395,463,521,575},
133
{5,11,17,23,29,35,43,53,65,79,95,113,135,161,193,231,277,331,393,463,539,575},
134
{5,11,17,23,29,35,43,53,65,79,95,115,139,167,199,237,283,335,395,463,521,575}
135
},{
136
{3,7,11,15,19,23,29,35,43,51,61,73,89,109,133,161,195,237,287,341,417,575},
137
{3,7,11,15,19,23,29,35,41,49,59,71,87,105,127,155,189,229,275,329,383,575},
138
{3,7,11,15,19,23,29,35,43,53,65,81,101,125,155,193,239,295,363,447,549,575}
139
}};
140
int t_b8_s[2][3][13]={{ /* table B.8b ISO/IEC 11172-3 */
141
{3,7,11,17,23,31,41,55,73,99,131,173,191},
142
{3,7,11,17,25,35,47,61,79,103,135,179,191},
143
{3,7,11,17,25,35,47,61,79,103,133,173,191}
144
},{
145
{3,7,11,15,21,29,39,51,65,83,105,135,191},
146
{3,7,11,15,21,27,37,49,63,79,99,125,191},
147
{3,7,11,15,21,29,41,57,77,103,137,179,191}
148
}};
149
150
int args(int argc,char **argv);
151
void initialise_decoder(void);
152
int decodeMPEG(struct AUDIO_HEADER *header);
153
void initialise_globals(void);
154
void report_header_error(int err);
155
int setup_audio(struct AUDIO_HEADER *header);
156
void close_audio(void);
157
int ready_audio(void);
158
159
void play(char *inFileStr);
160
161
#endif /* AUDIO */
162
163
164