annotate libaf/control.h @ 33929:ef9b6445fc55

Ensure we do not use 100% CPU when waiting for input with no file-based inputs.
author reimar
date Sat, 27 Aug 2011 09:58:54 +0000
parents 812db1123f7a
children 49587a84cb91
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28229
72d0b1444141 Replace informal license notices by standard license header
diego
parents: 26182
diff changeset
1 /*
72d0b1444141 Replace informal license notices by standard license header
diego
parents: 26182
diff changeset
2 * This file is part of MPlayer.
72d0b1444141 Replace informal license notices by standard license header
diego
parents: 26182
diff changeset
3 *
72d0b1444141 Replace informal license notices by standard license header
diego
parents: 26182
diff changeset
4 * MPlayer is free software; you can redistribute it and/or modify
72d0b1444141 Replace informal license notices by standard license header
diego
parents: 26182
diff changeset
5 * it under the terms of the GNU General Public License as published by
72d0b1444141 Replace informal license notices by standard license header
diego
parents: 26182
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
72d0b1444141 Replace informal license notices by standard license header
diego
parents: 26182
diff changeset
7 * (at your option) any later version.
72d0b1444141 Replace informal license notices by standard license header
diego
parents: 26182
diff changeset
8 *
72d0b1444141 Replace informal license notices by standard license header
diego
parents: 26182
diff changeset
9 * MPlayer is distributed in the hope that it will be useful,
72d0b1444141 Replace informal license notices by standard license header
diego
parents: 26182
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
72d0b1444141 Replace informal license notices by standard license header
diego
parents: 26182
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
72d0b1444141 Replace informal license notices by standard license header
diego
parents: 26182
diff changeset
12 * GNU General Public License for more details.
72d0b1444141 Replace informal license notices by standard license header
diego
parents: 26182
diff changeset
13 *
72d0b1444141 Replace informal license notices by standard license header
diego
parents: 26182
diff changeset
14 * You should have received a copy of the GNU General Public License along
72d0b1444141 Replace informal license notices by standard license header
diego
parents: 26182
diff changeset
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
72d0b1444141 Replace informal license notices by standard license header
diego
parents: 26182
diff changeset
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
72d0b1444141 Replace informal license notices by standard license header
diego
parents: 26182
diff changeset
17 */
72d0b1444141 Replace informal license notices by standard license header
diego
parents: 26182
diff changeset
18
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25551
diff changeset
19 #ifndef MPLAYER_CONTROL_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25551
diff changeset
20 #define MPLAYER_CONTROL_H
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
21
26182
8db4448bf26c Add missing header #include to fix 'make checkheaders'.
diego
parents: 26029
diff changeset
22 #include <sys/types.h>
8db4448bf26c Add missing header #include to fix 'make checkheaders'.
diego
parents: 26029
diff changeset
23
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
24 /*********************************************
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28229
diff changeset
25 // Control info struct.
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
26 //
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
27 // This struct is the argument in a info call to a filter.
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
28 */
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
29
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28229
diff changeset
30 // Argument types
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
31 #define AF_CONTROL_TYPE_BOOL (0x0<<0)
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
32 #define AF_CONTROL_TYPE_CHAR (0x1<<0)
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
33 #define AF_CONTROL_TYPE_INT (0x2<<0)
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
34 #define AF_CONTROL_TYPE_FLOAT (0x3<<0)
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
35 #define AF_CONTROL_TYPE_STRUCT (0x4<<0)
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
36 #define AF_CONTROL_TYPE_SPECIAL (0x5<<0) // a pointer to a function for example
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
37 #define AF_CONTROL_TYPE_MASK (0x7<<0)
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
38 // Argument geometry
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
39 #define AF_CONTROL_GEOM_SCALAR (0x0<<3)
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
40 #define AF_CONTROL_GEOM_ARRAY (0x1<<3)
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
41 #define AF_CONTROL_GEOM_MATRIX (0x2<<3)
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
42 #define AF_CONTROL_GEOM_MASK (0x3<<3)
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
43 // Argument properties
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
44 #define AF_CONTROL_PROP_READ (0x0<<5) // The argument can be read
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
45 #define AF_CONTROL_PROP_WRITE (0x1<<5) // The argument can be written
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
46 #define AF_CONTROL_PROP_SAVE (0x2<<5) // Can be saved
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
47 #define AF_CONTROL_PROP_RUNTIME (0x4<<5) // Acessable during execution
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
48 #define AF_CONTROL_PROP_CHANNEL (0x8<<5) // Argument is set per channel
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
49 #define AF_CONTROL_PROP_MASK (0xF<<5)
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
50
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
51 typedef struct af_control_info_s{
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
52 int def; // Control enumrification
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
53 char* name; // Name of argument
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
54 char* info; // Description of what it does
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28229
diff changeset
55 int flags; // Flags as defined above
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28229
diff changeset
56 float max; // Max and min value
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28229
diff changeset
57 float min; // (only aplicable on float and int)
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
58 int xdim; // 1st dimension
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
59 int ydim; // 2nd dimension (=0 for everything except matrix)
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
60 size_t sz; // Size of argument in bytes
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
61 int ch; // Channel number (for future use)
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
62 void* arg; // Data (for future use)
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
63 }af_control_info_t;
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
64
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
65
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
66 /*********************************************
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
67 // Extended control used with arguments that operates on only one
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
68 // channel at the time
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
69 */
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
70 typedef struct af_control_ext_s{
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
71 void* arg; // Argument
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
72 int ch; // Chanel number
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
73 }af_control_ext_t;
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
74
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
75 /*********************************************
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28229
diff changeset
76 // Control parameters
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
77 */
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
78
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28229
diff changeset
79 /* The control system is divided into 3 levels
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
80 mandatory calls - all filters must answer to all of these
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
81 optional calls - are optional
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
82 filter specific calls - applies only to some filters
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
83 */
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
84
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
85 #define AF_CONTROL_MANDATORY 0x10000000
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
86 #define AF_CONTROL_OPTIONAL 0x20000000
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
87 #define AF_CONTROL_FILTER_SPECIFIC 0x40000000
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
88
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
89 // MANDATORY CALLS
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
90
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
91 /* Reinitialize filter. The optional argument contains the new
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
92 configuration in form of a af_data_t struct. If the filter does not
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
93 support the new format the struct should be changed and AF_FALSE
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
94 should be returned. If the incoming and outgoing data streams are
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
95 identical the filter can return AF_DETACH. This will remove the
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
96 filter. */
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
97 #define AF_CONTROL_REINIT 0x00000100 | AF_CONTROL_MANDATORY
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
98
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
99 // OPTIONAL CALLS
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
100
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
101 /* Called just after creation with the af_cfg for the stream in which
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
102 the filter resides as input parameter this call can be used by the
7993
ea0680d87f3f Changing the behavour of the commandline parameter -af to conform with -vop. Adding new commanline parameter -af-adv for advanced af options. Adding changes to volume control to support commandline parameters.
anders
parents: 7745
diff changeset
103 filter to initialize itself */
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
104 #define AF_CONTROL_POST_CREATE 0x00000100 | AF_CONTROL_OPTIONAL
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
105
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
106 // Called just before destruction of a filter
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
107 #define AF_CONTROL_PRE_DESTROY 0x00000200 | AF_CONTROL_OPTIONAL
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
108
7993
ea0680d87f3f Changing the behavour of the commandline parameter -af to conform with -vop. Adding new commanline parameter -af-adv for advanced af options. Adding changes to volume control to support commandline parameters.
anders
parents: 7745
diff changeset
109 /* Commandline parameters. If there were any commandline parameters
ea0680d87f3f Changing the behavour of the commandline parameter -af to conform with -vop. Adding new commanline parameter -af-adv for advanced af options. Adding changes to volume control to support commandline parameters.
anders
parents: 7745
diff changeset
110 for this specific filter, they will be given as a char* in the
ea0680d87f3f Changing the behavour of the commandline parameter -af to conform with -vop. Adding new commanline parameter -af-adv for advanced af options. Adding changes to volume control to support commandline parameters.
anders
parents: 7745
diff changeset
111 argument */
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
112 #define AF_CONTROL_COMMAND_LINE 0x00000300 | AF_CONTROL_OPTIONAL
7993
ea0680d87f3f Changing the behavour of the commandline parameter -af to conform with -vop. Adding new commanline parameter -af-adv for advanced af options. Adding changes to volume control to support commandline parameters.
anders
parents: 7745
diff changeset
113
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
114
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
115 // FILTER SPECIFIC CALLS
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
116
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
117 // Basic operations: These can be ored with any of the below calls
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28229
diff changeset
118 // Set argument
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
119 #define AF_CONTROL_SET 0x00000000
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
120 // Get argument
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
121 #define AF_CONTROL_GET 0x00000001
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
122 // Get info about the control, i.e fill in everything except argument
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28229
diff changeset
123 #define AF_CONTROL_INFO 0x00000002
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
124
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
125 // Resample
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
126
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
127 // Set output rate in resample
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
128 #define AF_CONTROL_RESAMPLE_RATE 0x00000100 | AF_CONTROL_FILTER_SPECIFIC
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
129
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
130 // Enable sloppy resampling
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
131 #define AF_CONTROL_RESAMPLE_SLOPPY 0x00000200 | AF_CONTROL_FILTER_SPECIFIC
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
132
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
133 // Set resampling accuracy
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
134 #define AF_CONTROL_RESAMPLE_ACCURACY 0x00000300 | AF_CONTROL_FILTER_SPECIFIC
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
135
14335
8380694ba14f af_bits2fmt and af_str2fmt_short, also removed the extra FORMAT_BPS control in format.c
alex
parents: 13550
diff changeset
136 // Format
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
137
14335
8380694ba14f af_bits2fmt and af_str2fmt_short, also removed the extra FORMAT_BPS control in format.c
alex
parents: 13550
diff changeset
138 #define AF_CONTROL_FORMAT_FMT 0x00000400 | AF_CONTROL_FILTER_SPECIFIC
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
139
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
140 // Channels
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
141
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
142 // Set number of output channels in channels
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
143 #define AF_CONTROL_CHANNELS 0x00000600 | AF_CONTROL_FILTER_SPECIFIC
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
144
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
145 // Set number of channel routes
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
146 #define AF_CONTROL_CHANNELS_ROUTES 0x00000700 | AF_CONTROL_FILTER_SPECIFIC
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
147
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
148 // Set channel routing pair, arg is int[2] and ch is used
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
149 #define AF_CONTROL_CHANNELS_ROUTING 0x00000800 | AF_CONTROL_FILTER_SPECIFIC
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
150
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
151 // Set nuber of channel routing pairs, arg is int*
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
152 #define AF_CONTROL_CHANNELS_NR 0x00000900 | AF_CONTROL_FILTER_SPECIFIC
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
153
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
154 // Set make af_channels into a router
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
155 #define AF_CONTROL_CHANNELS_ROUTER 0x00000A00 | AF_CONTROL_FILTER_SPECIFIC
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28229
diff changeset
156
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28229
diff changeset
157 // Volume
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
158
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
159 // Turn volume control on and off, arg is int*
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
160 #define AF_CONTROL_VOLUME_ON_OFF 0x00000B00 | AF_CONTROL_FILTER_SPECIFIC
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
161
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
162 // Turn soft clipping of the volume on and off, arg is binary
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
163 #define AF_CONTROL_VOLUME_SOFTCLIP 0x00000C00 | AF_CONTROL_FILTER_SPECIFIC
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
164
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
165 // Set volume level, arg is a float* with the volume for all the channels
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
166 #define AF_CONTROL_VOLUME_LEVEL 0x00000D00 | AF_CONTROL_FILTER_SPECIFIC
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
167
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28229
diff changeset
168 // Probed power level for all channels, arg is a float*
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
169 #define AF_CONTROL_VOLUME_PROBE 0x00000E00 | AF_CONTROL_FILTER_SPECIFIC
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
170
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28229
diff changeset
171 // Maximum probed power level for all channels, arg is a float*
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
172 #define AF_CONTROL_VOLUME_PROBE_MAX 0x00000F00 | AF_CONTROL_FILTER_SPECIFIC
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
173
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
174 // Compressor/expander
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
175
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
176 // Turn compressor/expander on and off
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
177 #define AF_CONTROL_COMP_ON_OFF 0x00001000 | AF_CONTROL_FILTER_SPECIFIC
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
178
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
179 // Compression/expansion threshold [dB]
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
180 #define AF_CONTROL_COMP_THRESH 0x00001100 | AF_CONTROL_FILTER_SPECIFIC
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
181
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
182 // Compression/expansion attack time [ms]
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
183 #define AF_CONTROL_COMP_ATTACK 0x00001200 | AF_CONTROL_FILTER_SPECIFIC
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
184
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
185 // Compression/expansion release time [ms]
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
186 #define AF_CONTROL_COMP_RELEASE 0x00001300 | AF_CONTROL_FILTER_SPECIFIC
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
187
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
188 // Compression/expansion gain level [dB]
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
189 #define AF_CONTROL_COMP_RATIO 0x00001400 | AF_CONTROL_FILTER_SPECIFIC
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
190
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
191 // Noise gate
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
192
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
193 // Turn noise gate on an off
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
194 #define AF_CONTROL_GATE_ON_OFF 0x00001500 | AF_CONTROL_FILTER_SPECIFIC
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
195
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28229
diff changeset
196 // Noise gate threshold [dB]
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
197 #define AF_CONTROL_GATE_THRESH 0x00001600 | AF_CONTROL_FILTER_SPECIFIC
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
198
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
199 // Noise gate attack time [ms]
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
200 #define AF_CONTROL_GATE_ATTACK 0x00001700 | AF_CONTROL_FILTER_SPECIFIC
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
201
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28229
diff changeset
202 // Noise gate release time [ms]
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
203 #define AF_CONTROL_GATE_RELEASE 0x00001800 | AF_CONTROL_FILTER_SPECIFIC
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
204
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
205 // Noise gate release range level [dB]
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
206 #define AF_CONTROL_GATE_RANGE 0x00001900 | AF_CONTROL_FILTER_SPECIFIC
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
207
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
208 // Pan
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
209
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28229
diff changeset
210 // Pan levels, arg is a control_ext with a float*
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
211 #define AF_CONTROL_PAN_LEVEL 0x00001A00 | AF_CONTROL_FILTER_SPECIFIC
7745
1d3a3dc1f488 Adding volume control and moving control() call parameters to a seperate file
anders
parents:
diff changeset
212
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
213 // Number of outputs from pan, arg is int*
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
214 #define AF_CONTROL_PAN_NOUT 0x00001B00 | AF_CONTROL_FILTER_SPECIFIC
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28229
diff changeset
215
23551
63d9b7032bf3 Add AF_CONTROL_PAN_BALANCE control
zuxy
parents: 18611
diff changeset
216 // Balance, arg is float*; range -1 (left) to 1 (right), 0 center
29676
812db1123f7a Change libaf control ordering to make the controls unique again, (AF_CONTROL_PAN_BALANCE vs.
reimar
parents: 29263
diff changeset
217 #define AF_CONTROL_PAN_BALANCE 0x00001C00 | AF_CONTROL_FILTER_SPECIFIC
8073
c0e556f9986b Adding equalizer filter + some cosmetics
anders
parents: 7993
diff changeset
218
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28229
diff changeset
219 // Set equalizer gain, arg is a control_ext with a float*
29676
812db1123f7a Change libaf control ordering to make the controls unique again, (AF_CONTROL_PAN_BALANCE vs.
reimar
parents: 29263
diff changeset
220 #define AF_CONTROL_EQUALIZER_GAIN 0x00001D00 | AF_CONTROL_FILTER_SPECIFIC
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
221
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
222
8832
a1578b329cc0 Adding sub-woofer filter, use this filter to add a sub channel to the audio stream
anders
parents: 8607
diff changeset
223 // Delay length in ms, arg is a control_ext with a float*
29676
812db1123f7a Change libaf control ordering to make the controls unique again, (AF_CONTROL_PAN_BALANCE vs.
reimar
parents: 29263
diff changeset
224 #define AF_CONTROL_DELAY_LEN 0x00001E00 | AF_CONTROL_FILTER_SPECIFIC
8607
d6f40a06867b Changes includes:
anders
parents: 8073
diff changeset
225
8073
c0e556f9986b Adding equalizer filter + some cosmetics
anders
parents: 7993
diff changeset
226
8832
a1578b329cc0 Adding sub-woofer filter, use this filter to add a sub channel to the audio stream
anders
parents: 8607
diff changeset
227 // Subwoofer
a1578b329cc0 Adding sub-woofer filter, use this filter to add a sub channel to the audio stream
anders
parents: 8607
diff changeset
228
a1578b329cc0 Adding sub-woofer filter, use this filter to add a sub channel to the audio stream
anders
parents: 8607
diff changeset
229 // Channel number which to insert the filtered data, arg in int*
29676
812db1123f7a Change libaf control ordering to make the controls unique again, (AF_CONTROL_PAN_BALANCE vs.
reimar
parents: 29263
diff changeset
230 #define AF_CONTROL_SUB_CH 0x00001F00 | AF_CONTROL_FILTER_SPECIFIC
8832
a1578b329cc0 Adding sub-woofer filter, use this filter to add a sub channel to the audio stream
anders
parents: 8607
diff changeset
231
a1578b329cc0 Adding sub-woofer filter, use this filter to add a sub channel to the audio stream
anders
parents: 8607
diff changeset
232 // Cutoff frequency [Hz] for lowpass filter, arg is float*
29676
812db1123f7a Change libaf control ordering to make the controls unique again, (AF_CONTROL_PAN_BALANCE vs.
reimar
parents: 29263
diff changeset
233 #define AF_CONTROL_SUB_FC 0x00002000 | AF_CONTROL_FILTER_SPECIFIC
8832
a1578b329cc0 Adding sub-woofer filter, use this filter to add a sub channel to the audio stream
anders
parents: 8607
diff changeset
234
a1578b329cc0 Adding sub-woofer filter, use this filter to add a sub channel to the audio stream
anders
parents: 8607
diff changeset
235
10892
2167ac4c1d72 Adding filter for exporting audio data to visual effect applications
anders
parents: 8832
diff changeset
236 // Export
29676
812db1123f7a Change libaf control ordering to make the controls unique again, (AF_CONTROL_PAN_BALANCE vs.
reimar
parents: 29263
diff changeset
237 #define AF_CONTROL_EXPORT_SZ 0x00003000 | AF_CONTROL_FILTER_SPECIFIC
10892
2167ac4c1d72 Adding filter for exporting audio data to visual effect applications
anders
parents: 8832
diff changeset
238
13550
81e62cbe57d9 reimplementation of the pl_extrastereo and pl_volnorm plugins
alex
parents: 10892
diff changeset
239
81e62cbe57d9 reimplementation of the pl_extrastereo and pl_volnorm plugins
alex
parents: 10892
diff changeset
240 // ExtraStereo Multiplier
29676
812db1123f7a Change libaf control ordering to make the controls unique again, (AF_CONTROL_PAN_BALANCE vs.
reimar
parents: 29263
diff changeset
241 #define AF_CONTROL_ES_MUL 0x00003100 | AF_CONTROL_FILTER_SPECIFIC
13550
81e62cbe57d9 reimplementation of the pl_extrastereo and pl_volnorm plugins
alex
parents: 10892
diff changeset
242
14749
ab617c2e24d3 filter for adding a center channel, adding a high pass filter would be nice
alex
parents: 14335
diff changeset
243
ab617c2e24d3 filter for adding a center channel, adding a high pass filter would be nice
alex
parents: 14335
diff changeset
244 // Center
ab617c2e24d3 filter for adding a center channel, adding a high pass filter would be nice
alex
parents: 14335
diff changeset
245
ab617c2e24d3 filter for adding a center channel, adding a high pass filter would be nice
alex
parents: 14335
diff changeset
246 // Channel number which to inster the filtered data, arg in int*
29676
812db1123f7a Change libaf control ordering to make the controls unique again, (AF_CONTROL_PAN_BALANCE vs.
reimar
parents: 29263
diff changeset
247 #define AF_CONTROL_CENTER_CH 0x00003200 | AF_CONTROL_FILTER_SPECIFIC
14749
ab617c2e24d3 filter for adding a center channel, adding a high pass filter would be nice
alex
parents: 14335
diff changeset
248
18082
0aa3fef68422 very simple filter which can remove a sine at a specified frequency, usefull to get rid of the 50/60hz noise on ultra crappy equipment
michael
parents: 14749
diff changeset
249
18611
1c2f694d5232 Rename sinesupress to sinesuppress, including af_sinesupress.c file rename.
corey
parents: 18082
diff changeset
250 // SineSuppress
29676
812db1123f7a Change libaf control ordering to make the controls unique again, (AF_CONTROL_PAN_BALANCE vs.
reimar
parents: 29263
diff changeset
251 #define AF_CONTROL_SS_FREQ 0x00003300 | AF_CONTROL_FILTER_SPECIFIC
812db1123f7a Change libaf control ordering to make the controls unique again, (AF_CONTROL_PAN_BALANCE vs.
reimar
parents: 29263
diff changeset
252 #define AF_CONTROL_SS_DECAY 0x00003400 | AF_CONTROL_FILTER_SPECIFIC
18082
0aa3fef68422 very simple filter which can remove a sine at a specified frequency, usefull to get rid of the 50/60hz noise on ultra crappy equipment
michael
parents: 14749
diff changeset
253
29676
812db1123f7a Change libaf control ordering to make the controls unique again, (AF_CONTROL_PAN_BALANCE vs.
reimar
parents: 29263
diff changeset
254 #define AF_CONTROL_PLAYBACK_SPEED 0x00003500 | AF_CONTROL_FILTER_SPECIFIC
812db1123f7a Change libaf control ordering to make the controls unique again, (AF_CONTROL_PAN_BALANCE vs.
reimar
parents: 29263
diff changeset
255 #define AF_CONTROL_SCALETEMPO_AMOUNT 0x00003600 | AF_CONTROL_FILTER_SPECIFIC
24896
8133163bd1dd Add audio filter scaletempo
uau
parents: 23551
diff changeset
256
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25551
diff changeset
257 #endif /* MPLAYER_CONTROL_H */