]> git.sesse.net Git - vlc/blobdiff - modules/audio_filter/param_eq.c
hotkeys: Properly set seekable.
[vlc] / modules / audio_filter / param_eq.c
index 124852241dc06573ade2a69c7f18d32deb597b06..53c000f0e739162ef0f43e7db13c07b2bdcc4729 100644 (file)
 /*****************************************************************************
  * Preamble
  *****************************************************************************/
-#include <stdlib.h>                                      /* malloc(), free() */
-#include <string.h>
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
 #include <math.h>
 
-#include <vlc/vlc.h>
+#include <vlc_common.h>
+#include <vlc_plugin.h>
 #include <vlc_aout.h>
 
 /*****************************************************************************
@@ -44,33 +48,33 @@ static void DoWork( aout_instance_t *, aout_filter_t *,
                     aout_buffer_t *, aout_buffer_t * );
 
 vlc_module_begin();
-    set_description( _("Parametric Equalizer") );
-    set_shortname( _("Parametric Equalizer" ) );
+    set_description( N_("Parametric Equalizer") );
+    set_shortname( N_("Parametric Equalizer" ) );
     set_capability( "audio filter", 0 );
     set_category( CAT_AUDIO );
     set_subcategory( SUBCAT_AUDIO_AFILTER );
 
-    add_float( "param-eq-lowf", 100, NULL, N_("Low freq (Hz)"),"", VLC_FALSE );
+    add_float( "param-eq-lowf", 100, NULL, N_("Low freq (Hz)"),"", false );
     add_float_with_range( "param-eq-lowgain", 0, -20.0, 20.0, NULL,
-                          N_("Low freq gain (dB)"), "",VLC_FALSE );
-    add_float( "param-eq-highf", 10000, NULL, N_("High freq (Hz)"),"", VLC_FALSE );
+                          N_("Low freq gain (dB)"), "",false );
+    add_float( "param-eq-highf", 10000, NULL, N_("High freq (Hz)"),"", false );
     add_float_with_range( "param-eq-highgain", 0, -20.0, 20.0, NULL,
-                          N_("High freq gain (dB)"),"",VLC_FALSE );
-    add_float( "param-eq-f1", 300, NULL, N_("Freq 1 (Hz)"),"", VLC_FALSE );
+                          N_("High freq gain (dB)"),"",false );
+    add_float( "param-eq-f1", 300, NULL, N_("Freq 1 (Hz)"),"", false );
     add_float_with_range( "param-eq-gain1", 0, -20.0, 20.0, NULL,
-                          N_("Freq 1 gain (dB)"), "",VLC_FALSE );
+                          N_("Freq 1 gain (dB)"), "",false );
     add_float_with_range( "param-eq-q1", 3, 0.1, 100.0, NULL,
-                          N_("Freq 1 Q"), "",VLC_FALSE );
-    add_float( "param-eq-f2", 1000, NULL, N_("Freq 2 (Hz)"),"", VLC_FALSE );
+                          N_("Freq 1 Q"), "",false );
+    add_float( "param-eq-f2", 1000, NULL, N_("Freq 2 (Hz)"),"", false );
     add_float_with_range( "param-eq-gain2", 0, -20.0, 20.0, NULL,
-                          N_("Freq 2 gain (dB)"),"",VLC_FALSE );
+                          N_("Freq 2 gain (dB)"),"",false );
     add_float_with_range( "param-eq-q2", 3, 0.1, 100.0, NULL,
-                          N_("Freq 2 Q"),"",VLC_FALSE );
-    add_float( "param-eq-f3", 3000, NULL, N_("Freq 3 (Hz)"),"", VLC_FALSE );
+                          N_("Freq 2 Q"),"",false );
+    add_float( "param-eq-f3", 3000, NULL, N_("Freq 3 (Hz)"),"", false );
     add_float_with_range( "param-eq-gain3", 0, -20.0, 20.0, NULL,
-                          N_("Freq 3 gain (dB)"),"",VLC_FALSE );
+                          N_("Freq 3 gain (dB)"),"",false );
     add_float_with_range( "param-eq-q3", 3, 0.1, 100.0, NULL,
-                          N_("Freq 3 Q"),"",VLC_FALSE );
+                          N_("Freq 3 Q"),"",false );
 
     set_callbacks( Open, Close );
 vlc_module_end();
@@ -90,7 +94,7 @@ typedef struct aout_filter_sys_t
     float   coeffs[5*5];
     /* State */
     float  *p_state;
-       
 } aout_filter_sys_t;
 
 
@@ -103,20 +107,20 @@ static int Open( vlc_object_t *p_this )
 {
     aout_filter_t     *p_filter = (aout_filter_t *)p_this;
     aout_filter_sys_t *p_sys;
-    vlc_bool_t         b_fit = VLC_TRUE;
+    bool         b_fit = true;
     int                i_samplerate;
 
     if( p_filter->input.i_format != VLC_FOURCC('f','l','3','2' ) ||
         p_filter->output.i_format != VLC_FOURCC('f','l','3','2') )
     {
-        b_fit = VLC_FALSE;
+        b_fit = false;
         p_filter->input.i_format = VLC_FOURCC('f','l','3','2');
         p_filter->output.i_format = VLC_FOURCC('f','l','3','2');
         msg_Warn( p_filter, "bad input or output format" );
     }
     if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
     {
-        b_fit = VLC_FALSE;
+        b_fit = false;
         memcpy( &p_filter->output, &p_filter->input,
                 sizeof(audio_sample_format_t) );
         msg_Warn( p_filter, "input and output formats are not similar" );
@@ -128,7 +132,7 @@ static int Open( vlc_object_t *p_this )
     }
 
     p_filter->pf_do_work = DoWork;
-    p_filter->b_in_place = VLC_TRUE;
+    p_filter->b_in_place = true;
 
     /* Allocate structure */
     p_sys = p_filter->p_sys = malloc( sizeof( aout_filter_sys_t ) );
@@ -137,11 +141,11 @@ static int Open( vlc_object_t *p_this )
     p_sys->f_lowgain = config_GetFloat( p_this, "param-eq-lowgain");
     p_sys->f_highf = config_GetFloat( p_this, "param-eq-highf");
     p_sys->f_highgain = config_GetFloat( p_this, "param-eq-highgain");
-    
     p_sys->f_f1 = config_GetFloat( p_this, "param-eq-f1");
     p_sys->f_Q1 = config_GetFloat( p_this, "param-eq-q1");
     p_sys->f_gain1 = config_GetFloat( p_this, "param-eq-gain1");
-    
     p_sys->f_f2 = config_GetFloat( p_this, "param-eq-f2");
     p_sys->f_Q2 = config_GetFloat( p_this, "param-eq-q2");
     p_sys->f_gain2 = config_GetFloat( p_this, "param-eq-gain2");
@@ -149,7 +153,7 @@ static int Open( vlc_object_t *p_this )
     p_sys->f_f3 = config_GetFloat( p_this, "param-eq-f3");
     p_sys->f_Q3 = config_GetFloat( p_this, "param-eq-q3");
     p_sys->f_gain3 = config_GetFloat( p_this, "param-eq-gain3");
-  
 
     i_samplerate = p_filter->input.i_rate;
     CalcPeakEQCoeffs(p_sys->f_f1, p_sys->f_Q1, p_sys->f_gain1,
@@ -183,11 +187,12 @@ static void Close( vlc_object_t *p_this )
 static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
                     aout_buffer_t * p_in_buf, aout_buffer_t * p_out_buf )
 {
+    VLC_UNUSED(p_aout);
     p_out_buf->i_nb_samples = p_in_buf->i_nb_samples;
     p_out_buf->i_nb_bytes = p_in_buf->i_nb_bytes;
 
     ProcessEQ( (float*)p_in_buf->p_buffer, (float*)p_out_buf->p_buffer,
-               p_filter->p_sys->p_state, 
+               p_filter->p_sys->p_state,
                p_filter->input.i_channels, p_in_buf->i_nb_samples,
                p_filter->p_sys->coeffs, 5 );
 }
@@ -200,7 +205,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
  * coeffs[3] = a1
  * coeffs[4] = a2
  *
- * Equations taken from RBJ audio EQ cookbook 
+ * Equations taken from RBJ audio EQ cookbook
  * (http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt)
  */
 static void CalcPeakEQCoeffs( float f0, float Q, float gainDB, float Fs,
@@ -213,23 +218,23 @@ static void CalcPeakEQCoeffs( float f0, float Q, float gainDB, float Fs,
     float a0, a1, a2;
 
     // Provide sane limits to avoid overflow
-    if (Q < 0.1f) Q = 0.1f;   
+    if (Q < 0.1f) Q = 0.1f;
     if (Q > 100) Q = 100;
     if (f0 > Fs/2*0.95f) f0 = Fs/2*0.95f;
     if (gainDB < -40) gainDB = -40;
     if (gainDB > 40) gainDB = 40;
-    
     A = pow(10, gainDB/40);
     w0 = 2*3.141593f*f0/Fs;
     alpha = sin(w0)/(2*Q);
-    
     b0 = 1 + alpha*A;
     b1 = -2*cos(w0);
     b2 = 1 - alpha*A;
     a0 = 1 + alpha/A;
     a1 = -2*cos(w0);
     a2 = 1 - alpha/A;
-    
     // Store values to coeffs and normalize by 1/a0
     coeffs[0] = b0/a0;
     coeffs[1] = b1/a0;
@@ -246,7 +251,7 @@ static void CalcPeakEQCoeffs( float f0, float Q, float gainDB, float Fs,
  * coeffs[3] = a1
  * coeffs[4] = a2
  *
- * Equations taken from RBJ audio EQ cookbook 
+ * Equations taken from RBJ audio EQ cookbook
  * (http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt)
  */
 static void CalcShelfEQCoeffs( float f0, float slope, float gainDB, int high,
@@ -300,8 +305,8 @@ static void CalcShelfEQCoeffs( float f0, float slope, float gainDB, int high,
   samples is not premultiplied by channels
   size of coeffs is 5*eqCount
 */
-void ProcessEQ( float *src, float *dest, float *state, 
-                unsigned channels, unsigned samples, float *coeffs, 
+void ProcessEQ( float *src, float *dest, float *state,
+                unsigned channels, unsigned samples, float *coeffs,
                 unsigned eqCount )
 {
     unsigned i, chn, eq;