Commit 5ab06f53 authored by JP Dinger's avatar JP Dinger

Skins2: Avoid work by postponing to where and if it is needed.

parent 00b26db6
...@@ -520,35 +520,25 @@ void VlcProc::on_intf_event_changed( vlc_object_t* p_obj, vlc_value_t newVal ) ...@@ -520,35 +520,25 @@ void VlcProc::on_intf_event_changed( vlc_object_t* p_obj, vlc_value_t newVal )
{ {
input_thread_t* pInput = (input_thread_t*) p_obj; input_thread_t* pInput = (input_thread_t*) p_obj;
StreamTime *pTime = (StreamTime*)m_cVarTime.get(); # define SET_BOOL(m,v) ((VarBoolImpl*)(m).get())->set(v)
VarBoolImpl *pVarSeekable = (VarBoolImpl*)m_cVarSeekable.get(); # define SET_STREAMTIME(m,v,b) ((StreamTime*)(m).get())->set(v,b)
VarBoolImpl *pVarRecordable = (VarBoolImpl*)m_cVarRecordable.get();
VarBoolImpl *pVarRecording = (VarBoolImpl*)m_cVarRecording.get();
VarBoolImpl *pVarDvdActive = (VarBoolImpl*)m_cVarDvdActive.get();
VarBoolImpl *pVarHasVout = (VarBoolImpl*)m_cVarHasVout.get();
VarBoolImpl *pVarHasAudio = (VarBoolImpl*)m_cVarHasAudio.get();
VarBoolImpl *pVarFullscreen = (VarBoolImpl*)m_cVarFullscreen.get();
VarBoolImpl *pVarPlaying = (VarBoolImpl*)m_cVarPlaying.get();
VarBoolImpl *pVarStopped = (VarBoolImpl*)m_cVarStopped.get();
VarBoolImpl *pVarPaused = (VarBoolImpl*)m_cVarPaused.get();
VarBoolImpl *pVarEqualizer = (VarBoolImpl*)m_cVarEqualizer.get();
switch( newVal.i_int ) switch( newVal.i_int )
{ {
case INPUT_EVENT_STATE: case INPUT_EVENT_STATE:
{ {
int state = var_GetInteger( pInput, "state" ); int state = var_GetInteger( pInput, "state" );
pVarStopped->set( false ); SET_BOOL( m_cVarStopped, false );
pVarPlaying->set( state != PAUSE_S ); SET_BOOL( m_cVarPlaying, state != PAUSE_S );
pVarPaused->set( state == PAUSE_S ); SET_BOOL( m_cVarPaused, state == PAUSE_S );
break; break;
} }
case INPUT_EVENT_POSITION: case INPUT_EVENT_POSITION:
{ {
float pos = var_GetFloat( pInput, "position" ); float pos = var_GetFloat( pInput, "position" );
pTime->set( pos, false ); SET_STREAMTIME( m_cVarTime, pos, false );
pVarSeekable->set( pos != 0.0 ); SET_BOOL( m_cVarSeekable, pos != 0.0 );
break; break;
} }
...@@ -558,17 +548,18 @@ void VlcProc::on_intf_event_changed( vlc_object_t* p_obj, vlc_value_t newVal ) ...@@ -558,17 +548,18 @@ void VlcProc::on_intf_event_changed( vlc_object_t* p_obj, vlc_value_t newVal )
vlc_value_t audio_es; vlc_value_t audio_es;
var_Change( pInput, "audio-es", VLC_VAR_CHOICESCOUNT, var_Change( pInput, "audio-es", VLC_VAR_CHOICESCOUNT,
&audio_es, NULL ); &audio_es, NULL );
pVarHasAudio->set( audio_es.i_int > 0 ); SET_BOOL( m_cVarHasAudio, audio_es.i_int > 0 );
break; break;
} }
case INPUT_EVENT_VOUT: case INPUT_EVENT_VOUT:
{ {
vout_thread_t* pVout = input_GetVout( pInput ); vout_thread_t* pVout = input_GetVout( pInput );
pVarHasVout->set( pVout != NULL ); SET_BOOL( m_cVarHasVout, pVout != NULL );
if( pVout ) if( pVout )
{ {
pVarFullscreen->set( var_GetBool( pVout, "fullscreen" ) ); SET_BOOL( m_cVarFullscreen,
var_GetBool( pVout, "fullscreen" ) );
vlc_object_release( pVout ); vlc_object_release( pVout );
} }
break; break;
...@@ -609,7 +600,7 @@ void VlcProc::on_intf_event_changed( vlc_object_t* p_obj, vlc_value_t newVal ) ...@@ -609,7 +600,7 @@ void VlcProc::on_intf_event_changed( vlc_object_t* p_obj, vlc_value_t newVal )
char *pFilters = var_GetNonEmptyString( pAout, "audio-filter" ); char *pFilters = var_GetNonEmptyString( pAout, "audio-filter" );
bool b_equalizer = pFilters && strstr( pFilters, "equalizer" ); bool b_equalizer = pFilters && strstr( pFilters, "equalizer" );
free( pFilters ); free( pFilters );
pVarEqualizer->set( b_equalizer ); SET_BOOL( m_cVarEqualizer, b_equalizer );
if( b_equalizer ) if( b_equalizer )
{ {
var_AddCallback( pAout, "equalizer-bands", var_AddCallback( pAout, "equalizer-bands",
...@@ -627,12 +618,12 @@ void VlcProc::on_intf_event_changed( vlc_object_t* p_obj, vlc_value_t newVal ) ...@@ -627,12 +618,12 @@ void VlcProc::on_intf_event_changed( vlc_object_t* p_obj, vlc_value_t newVal )
vlc_value_t chapters_count; vlc_value_t chapters_count;
var_Change( pInput, "chapter", VLC_VAR_CHOICESCOUNT, var_Change( pInput, "chapter", VLC_VAR_CHOICESCOUNT,
&chapters_count, NULL ); &chapters_count, NULL );
pVarDvdActive->set( chapters_count.i_int > 0 ); SET_BOOL( m_cVarDvdActive, chapters_count.i_int > 0 );
break; break;
} }
case INPUT_EVENT_RECORD: case INPUT_EVENT_RECORD:
pVarRecording->set( var_GetBool( pInput, "record" ) ); SET_BOOL( m_cVarRecording, var_GetBool( pInput, "record" ) );
break; break;
case INPUT_EVENT_DEAD: case INPUT_EVENT_DEAD:
...@@ -642,6 +633,10 @@ void VlcProc::on_intf_event_changed( vlc_object_t* p_obj, vlc_value_t newVal ) ...@@ -642,6 +633,10 @@ void VlcProc::on_intf_event_changed( vlc_object_t* p_obj, vlc_value_t newVal )
default: default:
break; break;
} }
# undef SET_BOOL
# undef SET_STREAMTIME
} }
void VlcProc::on_bit_rate_changed( vlc_object_t* p_obj, vlc_value_t newVal ) void VlcProc::on_bit_rate_changed( vlc_object_t* p_obj, vlc_value_t newVal )
...@@ -810,7 +805,6 @@ void VlcProc::init_variables() ...@@ -810,7 +805,6 @@ void VlcProc::init_variables()
void VlcProc::update_equalizer() void VlcProc::update_equalizer()
{ {
VarBoolImpl *pVarEqualizer = (VarBoolImpl*)m_cVarEqualizer.get();
char *pFilters; char *pFilters;
if( m_pAout ) if( m_pAout )
...@@ -820,6 +814,8 @@ void VlcProc::update_equalizer() ...@@ -820,6 +814,8 @@ void VlcProc::update_equalizer()
bool b_equalizer = pFilters && strstr( pFilters, "equalizer" ); bool b_equalizer = pFilters && strstr( pFilters, "equalizer" );
free( pFilters ); free( pFilters );
VarBoolImpl *pVarEqualizer = (VarBoolImpl*)m_cVarEqualizer.get();
pVarEqualizer->set( b_equalizer ); pVarEqualizer->set( b_equalizer );
} }
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