if ( p_aout ) aout_lock_volume( p_aout );
- b_var_mute = (bool)var_GetBool( p_object->p_libvlc, "volume-muted");
+ b_var_mute = var_GetBool( p_object, "volume-muted");
- const bool b_unmute_condition = ( /* Also unmute on increments */
+ const bool b_unmute_condition = ( b_var_mute
+ && ( /* Unmute: on increments */
( action == INCREMENT_VOLUME )
|| /* On explicit unmute */
- ( ( action == SET_MUTE ) && ( b_var_mute && !b_mute ) )
+ ( ( action == SET_MUTE ) && !b_mute )
|| /* On toggle from muted */
- ( ( action == TOGGLE_MUTE ) && b_var_mute ) );
+ ( action == TOGGLE_MUTE )
+ ));
const bool b_mute_condition = ( !b_var_mute
&& ( /* explicit */
( action == TOGGLE_MUTE )
));
+ /* If muting or unmuting when play hasn't started */
+ if ( action == SET_MUTE && !b_unmute_condition && !b_mute_condition )
+ {
+ if ( p_aout )
+ {
+ aout_unlock_volume( p_aout );
+ vlc_object_release( p_aout );
+ }
+ return i_result;
+ }
+
/* On UnMute */
if ( b_unmute_condition )
{
/* Restore saved volume */
- var_Create( p_object->p_libvlc, "saved-volume", VLC_VAR_INTEGER );
- i_volume = (audio_volume_t)var_GetInteger( p_object->p_libvlc,
- "saved-volume" );
- var_SetBool( p_object->p_libvlc, "volume-muted", false );
+ i_volume = var_GetInteger( p_object, "saved-volume" );
+ var_SetBool( p_object, "volume-muted", false );
}
else if ( b_mute_condition )
{
if ( action == INCREMENT_VOLUME )
{
- i_volume_step = config_GetInt( p_object->p_libvlc, "volume-step" );
+ i_volume_step = var_InheritInteger( p_object, "volume-step" );
if ( !b_unmute_condition )
i_volume = config_GetInt( p_object, "volume" );
i_volume = i_new_volume;
}
- var_Create( p_object->p_libvlc, "saved-volume", VLC_VAR_INTEGER );
- var_SetInteger( p_object->p_libvlc, "saved-volume" , i_volume );
+ var_SetInteger( p_object, "saved-volume" , i_volume );
/* On Mute */
if ( b_mute_condition )
{
i_volume = AOUT_VOLUME_MIN;
- var_SetBool( p_object->p_libvlc, "volume-muted", true );
+ var_SetBool( p_object, "volume-muted", true );
}
/* Commit volume changes */
}
/* trigger callbacks */
- var_TriggerCallback( p_object->p_libvlc, "volume-change");
+ var_TriggerCallback( p_object, "volume-change" );
if ( p_aout )
{
var_SetBool( p_aout, "intf-change", true );
bool b_return_val;
aout_instance_t * p_aout = findAout( p_object );
if ( p_aout ) aout_lock_volume( p_aout );
- b_return_val = var_GetBool( p_object->p_libvlc, "volume-muted");
+ b_return_val = var_GetBool( p_object, "volume-muted");
if ( p_aout )
{
aout_unlock_volume( p_aout );
{
aout_instance_t *p_aout = findAout( p_this );
- if( AoutChangeFilterString( p_this, p_aout, "audio-filter", psz_name, b_add ) )
+ if( aout_ChangeFilterString( p_this, p_aout, "audio-filter", psz_name, b_add ) )
{
if( p_aout )
AoutInputsMarkToRestart( p_aout );