Commit d0ea236c authored by Akash Mehrotra's avatar Akash Mehrotra Committed by Jean-Baptiste Kempf

LUA: EQ Preset setter

parent 7384460f
...@@ -176,7 +176,7 @@ static int vlclua_equalizer_get( lua_State *L ) ...@@ -176,7 +176,7 @@ static int vlclua_equalizer_get( lua_State *L )
free(str); free(str);
asprintf( &str , "band_%d", i++ ); asprintf( &str , "band_%d", i++ );
lua_setfield( L , -2 , str ); lua_setfield( L , -2 , str );
free(str); free( str );
} }
free( psz_bands_origin ); free( psz_bands_origin );
if (loc != (locale_t)0) if (loc != (locale_t)0)
...@@ -239,6 +239,47 @@ static int vlclua_equalizer_set( lua_State *L ) ...@@ -239,6 +239,47 @@ static int vlclua_equalizer_set( lua_State *L )
return 1; return 1;
} }
/*****************************************************************************
* Set the preset specified by preset id
*****************************************************************************/
static int vlclua_equalizer_setpreset( lua_State *L )
{
int presetid = luaL_checknumber( L, 1 );
if( presetid >= NB_PRESETS || presetid < 0 )
return 0;
input_thread_t *p_input = vlclua_get_input_internal( L );
if( p_input )
{
audio_output_t *p_aout = input_GetAout( p_input );
vlc_object_release( p_input );
if ( !p_aout )
{
return 0;
}
char *psz_af = var_GetNonEmptyString( p_aout, "audio-filter" );
if ( !psz_af || strstr ( psz_af, "equalizer" ) == NULL )
{
vlc_object_release( p_aout );
return 0;
}
char *newstr;
if( asprintf( &newstr , "%6.1f" , eqz_preset_10b[presetid].f_amp[0] ) == -1 )
return 0;
for ( int i = 1 ; i < 10 ; i++ )
{
if ( asprintf( &newstr, "%s%6.1f",newstr ,eqz_preset_10b[presetid].f_amp[i]) == -1 )
return 0;
}
var_SetString( p_aout, "equalizer-bands",newstr );
var_SetFloat( p_aout, "equalizer-preamp", eqz_preset_10b[presetid].f_preamp );
var_SetString( p_aout , "equalizer-preset" , preset_list[presetid] );
vlc_object_release( p_aout );
free( newstr );
return 1;
}
return 0;
}
/**************************************************************************** /****************************************************************************
* Enable/disable Equalizer * Enable/disable Equalizer
*****************************************************************************/ *****************************************************************************/
...@@ -271,7 +312,8 @@ static const luaL_Reg vlclua_equalizer_reg[] = { ...@@ -271,7 +312,8 @@ static const luaL_Reg vlclua_equalizer_reg[] = {
{ "equalizerget", vlclua_equalizer_get }, { "equalizerget", vlclua_equalizer_get },
{ "equalizerset", vlclua_equalizer_set }, { "equalizerset", vlclua_equalizer_set },
{ "enable", vlclua_equalizer_enable }, { "enable", vlclua_equalizer_enable },
{"presets",vlclua_equalizer_get_presets }, { "presets",vlclua_equalizer_get_presets },
{ "setpreset", vlclua_equalizer_setpreset },
{ NULL, NULL } { NULL, NULL }
}; };
......
...@@ -125,6 +125,9 @@ status.xml or status.json ...@@ -125,6 +125,9 @@ status.xml or status.json
0 -- disables the equalizer 0 -- disables the equalizer
1 -- enables the equalizer 1 -- enables the equalizer
>command=setpreset&val=<presetid>
set the equalizer preset as per the id specified
<Displays the equalizer band gains. <Displays the equalizer band gains.
Band 0: 60 Hz, 1: 170 Hz, 2: 310 Hz, 3: 600 Hz, 4: 1 kHz, Band 0: 60 Hz, 1: 170 Hz, 2: 310 Hz, 3: 600 Hz, 4: 1 kHz,
5: 3 kHz, 6: 6 kHz, 7: 12 kHz , 8: 14 kHz , 9: 16 kHz 5: 3 kHz, 6: 6 kHz, 7: 12 kHz , 8: 14 kHz , 9: 16 kHz
......
...@@ -172,6 +172,8 @@ processcommands = function () ...@@ -172,6 +172,8 @@ processcommands = function ()
vlc.equalizer.equalizerset(band,val) vlc.equalizer.equalizerset(band,val)
elseif command == "enableeq" then elseif command == "enableeq" then
if val == '0' then vlc.equalizer.enable(false) else vlc.equalizer.enable(true) end if val == '0' then vlc.equalizer.enable(false) else vlc.equalizer.enable(true) end
elseif command == "setpreset" then
vlc.equalizer.setpreset(val)
end end
local input = nil local input = nil
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment