Mercurial > mplayer.hg
annotate libao2/audio_plugin.h @ 4965:923605707de6
sorry, 10l:)
author | pontscho |
---|---|
date | Thu, 07 Mar 2002 00:03:51 +0000 |
parents | 9a468a190c4c |
children | be67d073f23b |
rev | line source |
---|---|
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
1 #ifndef __audio_plugin_h__ |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
2 #define __audio_plugin_h__ |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
3 |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
4 // Functions supplied by plugins |
3096 | 5 typedef struct ao_plugin_functions_s |
6 { | |
7 ao_info_t *info; | |
8 int (*control)(int cmd,int arg); | |
9 int (*init)(); | |
10 void (*uninit)(); | |
11 void (*reset)(); | |
12 int (*play)(); | |
13 } ao_plugin_functions_t; | |
14 | |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
15 // Global data for all audio plugins |
3096 | 16 typedef struct ao_plugin_data_s |
17 { | |
18 void* data; /* current data block read only ok to change */ | |
19 int len; /* setup and current buffer length */ | |
20 int rate; /* setup data rate */ | |
21 int channels; /* setup number of channels */ | |
22 int format; /* setup format */ | |
23 double sz_mult; /* Buffer size multiplier */ | |
3107 | 24 double sz_fix; /* Fix (as in static) extra buffer size */ |
3096 | 25 float delay_mult; /* Delay multiplier */ |
26 float delay_fix; /* Fix delay */ | |
27 }ao_plugin_data_t; | |
28 | |
3335 | 29 extern volatile ao_plugin_data_t ao_plugin_data; |
3096 | 30 |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
31 // Plugin confuguration data set by cmd-line parameters |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
32 typedef struct ao_plugin_cfg_s |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
33 { |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
34 char* plugin_list; // List of used plugins read from cfg |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
35 int pl_format_type; // Output format |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
36 int pl_delay_len; // Number of samples to delay sound output |
3631
5f5189ac6a41
Added plugin for fractional resampling (alpha code)
anders
parents:
3335
diff
changeset
|
37 int pl_resample_fout; // Output frequency from resampling |
4859 | 38 int pl_volume_volume; // Initial volume setting |
4927
3022570ad7d4
Extrastereo plugin: increases linearly the difference between left and right
pl
parents:
4859
diff
changeset
|
39 float pl_extrastereo_mul; // Stereo enhancer multiplier |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
40 } ao_plugin_cfg_t; |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
41 |
4859 | 42 extern ao_plugin_cfg_t ao_plugin_cfg; |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
43 |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
44 // Configuration defaults |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
45 #define CFG_DEFAULTS { \ |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
46 NULL, \ |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
47 AFMT_S16_LE, \ |
3631
5f5189ac6a41
Added plugin for fractional resampling (alpha code)
anders
parents:
3335
diff
changeset
|
48 0, \ |
4859 | 49 48000, \ |
4927
3022570ad7d4
Extrastereo plugin: increases linearly the difference between left and right
pl
parents:
4859
diff
changeset
|
50 255, \ |
3022570ad7d4
Extrastereo plugin: increases linearly the difference between left and right
pl
parents:
4859
diff
changeset
|
51 2.5 \ |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
52 }; |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
53 |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
54 // This block should not be available in the pl_xxxx files |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
55 // due to compilation issues |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
56 #ifndef PLUGIN |
4941 | 57 #define NPL 7+1 // Number of PLugins ( +1 list ends with NULL ) |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
58 // List of plugins |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
59 extern ao_plugin_functions_t audio_plugin_delay; |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
60 extern ao_plugin_functions_t audio_plugin_format; |
3315 | 61 extern ao_plugin_functions_t audio_plugin_surround; |
3631
5f5189ac6a41
Added plugin for fractional resampling (alpha code)
anders
parents:
3335
diff
changeset
|
62 extern ao_plugin_functions_t audio_plugin_resample; |
4859 | 63 extern ao_plugin_functions_t audio_plugin_volume; |
4927
3022570ad7d4
Extrastereo plugin: increases linearly the difference between left and right
pl
parents:
4859
diff
changeset
|
64 extern ao_plugin_functions_t audio_plugin_extrastereo; |
4941 | 65 extern ao_plugin_functions_t audio_plugin_volnorm; |
3315 | 66 |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
67 |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
68 #define AO_PLUGINS { \ |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
69 &audio_plugin_delay, \ |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
70 &audio_plugin_format, \ |
3315 | 71 &audio_plugin_surround, \ |
3631
5f5189ac6a41
Added plugin for fractional resampling (alpha code)
anders
parents:
3335
diff
changeset
|
72 &audio_plugin_resample, \ |
4859 | 73 &audio_plugin_volume, \ |
4927
3022570ad7d4
Extrastereo plugin: increases linearly the difference between left and right
pl
parents:
4859
diff
changeset
|
74 &audio_plugin_extrastereo, \ |
4941 | 75 &audio_plugin_volnorm, \ |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
76 NULL \ |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
77 } |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
78 #endif /* PLUGIN */ |
3107 | 79 |
80 | |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
81 // Control parameters used by the plugins |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
82 #define AOCONTROL_PLUGIN_SET_LEN 1 // All plugins must respond to this parameter |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
83 |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
84 #endif |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
85 |