- osd_UpdateState( p_osd->p_state,
- p_button->i_x, p_button->i_y,
- p_button->p_current_state->p_pic->p[Y_PLANE].i_visible_pitch,
- p_button->p_current_state->p_pic->p[Y_PLANE].i_visible_lines,
- p_button->p_current_state->p_pic );
- osd_SetMenuUpdate( p_osd, VLC_TRUE );
- osd_SetMenuVisible( p_osd, VLC_TRUE );
+ p_button = p_osd->p_state->p_volume;
+ if( p_osd->p_state->p_volume )
+ p_osd->p_state->p_visible = p_osd->p_state->p_volume;
+ if( p_button && p_button->b_range )
+ {
+ /* Update the volume state images to match the current volume */
+ i_volume = config_GetInt( p_this, "volume" );
+ i_steps = osd_VolumeStep( p_this, i_volume, p_button->i_ranges );
+ p_button->p_current_state = osd_VolumeStateChange( p_button->p_states, i_steps );
+
+ osd_UpdateState( p_osd->p_state,
+ p_button->i_x, p_button->i_y,
+ p_button->p_current_state->p_pic->p[Y_PLANE].i_visible_pitch,
+ p_button->p_current_state->p_pic->p[Y_PLANE].i_visible_lines,
+ p_button->p_current_state->p_pic );
+ osd_SetMenuUpdate( p_osd, VLC_TRUE );
+ osd_SetMenuVisible( p_osd, VLC_TRUE );
+ }
+ vlc_object_release( (vlc_object_t*) p_osd );
+ vlc_mutex_unlock( lockval.p_address );