b_force_update = true;
/* Switch to play */
- input_ChangeState( p_input, PLAYING_S);
+ input_ChangeStateWithVarCallback( p_input, PLAYING_S, false );
/* */
if( !i_ret )
}
/* Switch to new state */
- input_ChangeState( p_input, state);
+ input_ChangeStateWithVarCallback( p_input, state, false );
/* */
if( !i_ret )
b_force_update = true;
/* Correct "state" value */
- input_ChangeState( p_input, p_input->i_state );
+ input_ChangeStateWithVarCallback( p_input, p_input->i_state, false );
}
else if( val.i_int != PLAYING_S && val.i_int != PAUSE_S )
{
void MRLSplit( char *, const char **, const char **, char ** );
-static inline void input_ChangeState( input_thread_t *p_input, int state )
+static inline void input_ChangeStateWithVarCallback( input_thread_t *p_input, int state, bool callback )
{
bool changed = (p_input->i_state != state);
- var_SetInteger( p_input, "state", p_input->i_state = state );
+ if( callback )
+ var_SetInteger( p_input, "state", p_input->i_state = state );
+ else
+ {
+ vlc_value_t val;
+ val.i_int = PLAYING_S;
+ var_Change( p_input, "state", VLC_VAR_SETVALUE, &val, NULL );
+ }
if( changed )
{
vlc_event_t event;
}
}
+static inline void input_ChangeState( input_thread_t *p_input, int state )
+{
+ input_ChangeStateWithVarCallback( p_input, state, true );
+}
+
+
/* Access */
#define access_New( a, b, c, d ) __access_New(VLC_OBJECT(a), b, c, d )