+ int i_result = VLC_SUCCESS;
+ int i_volume_step = 1, i_new_volume = 0;
+ bool b_var_mute = false;
+ aout_instance_t *p_aout = findAout( p_object );
+
+ if ( p_aout ) aout_lock_volume( p_aout );
+
+ b_var_mute = (bool)var_GetBool( p_object->p_libvlc, "volume-muted");
+
+ const bool b_unmute_condition = ( /* Also unmute on increments */
+ ( action == INCREMENT_VOLUME )
+ || /* On explicit unmute */
+ ( ( action == SET_MUTE ) && ( b_var_mute && !b_mute ) )
+ || /* On toggle from muted */
+ ( ( action == TOGGLE_MUTE ) && b_var_mute ) );
+
+ const bool b_mute_condition = ( !b_var_mute
+ && ( /* explicit */
+ ( ( action == SET_MUTE ) && b_mute )
+ || /* or toggle */
+ ( action == TOGGLE_MUTE )
+ ));
+
+ /* On UnMute */
+ if ( b_unmute_condition )