Commit 517c9e5a authored by Gildas Bazin's avatar Gildas Bazin

* modules/gui/wxwindows/interface.cpp: config_GetInt() inside VLCVolCtrl::OnPaint() is a bad idea.

parent 9b6096ce
...@@ -94,6 +94,7 @@ public: ...@@ -94,6 +94,7 @@ public:
wxVolCtrl *gauge; wxVolCtrl *gauge;
int i_y_offset; int i_y_offset;
vlc_bool_t b_mute;
intf_thread_t *p_intf; intf_thread_t *p_intf;
}; };
...@@ -351,7 +352,6 @@ void Interface::Update() ...@@ -351,7 +352,6 @@ void Interface::Update()
{ {
/* Misc updates */ /* Misc updates */
((VLCVolCtrl *)volctrl)->UpdateVolume(); ((VLCVolCtrl *)volctrl)->UpdateVolume();
} }
void Interface::OnControlEvent( wxCommandEvent& event ) void Interface::OnControlEvent( wxCommandEvent& event )
...@@ -1374,6 +1374,7 @@ public: ...@@ -1374,6 +1374,7 @@ public:
virtual ~wxVolCtrl() {}; virtual ~wxVolCtrl() {};
void UpdateVolume(); void UpdateVolume();
int GetVolume();
void OnChange( wxMouseEvent& event ); void OnChange( wxMouseEvent& event );
...@@ -1428,7 +1429,7 @@ VLCVolCtrl::VLCVolCtrl( intf_thread_t *_p_intf, wxWindow *p_parent ) ...@@ -1428,7 +1429,7 @@ VLCVolCtrl::VLCVolCtrl( intf_thread_t *_p_intf, wxWindow *p_parent )
:wxControl( p_parent, -1, wxDefaultPosition, wxSize(64, VLCVOL_HEIGHT ), :wxControl( p_parent, -1, wxDefaultPosition, wxSize(64, VLCVOL_HEIGHT ),
wxBORDER_NONE ), wxBORDER_NONE ),
i_y_offset((VLCVOL_HEIGHT - TOOLBAR_BMP_HEIGHT) / 2), i_y_offset((VLCVOL_HEIGHT - TOOLBAR_BMP_HEIGHT) / 2),
p_intf(_p_intf) b_mute(0), p_intf(_p_intf)
{ {
gauge = new wxVolCtrl( p_intf, this, -1, wxPoint( 18, i_y_offset ), gauge = new wxVolCtrl( p_intf, this, -1, wxPoint( 18, i_y_offset ),
wxSize( 44, TOOLBAR_BMP_HEIGHT ) ); wxSize( 44, TOOLBAR_BMP_HEIGHT ) );
...@@ -1436,11 +1437,8 @@ VLCVolCtrl::VLCVolCtrl( intf_thread_t *_p_intf, wxWindow *p_parent ) ...@@ -1436,11 +1437,8 @@ VLCVolCtrl::VLCVolCtrl( intf_thread_t *_p_intf, wxWindow *p_parent )
void VLCVolCtrl::OnPaint( wxPaintEvent &evt ) void VLCVolCtrl::OnPaint( wxPaintEvent &evt )
{ {
int i_volume;
i_volume = (audio_volume_t)config_GetInt( p_intf, "volume" );
wxPaintDC dc( this ); wxPaintDC dc( this );
wxBitmap mPlayBitmap( i_volume ? speaker_xpm : speaker_mute_xpm ); wxBitmap mPlayBitmap( b_mute ? speaker_mute_xpm : speaker_xpm );
dc.DrawBitmap( mPlayBitmap, 0, i_y_offset, TRUE ); dc.DrawBitmap( mPlayBitmap, 0, i_y_offset, TRUE );
} }
...@@ -1450,12 +1448,19 @@ void VLCVolCtrl::OnChange( wxMouseEvent& event ) ...@@ -1450,12 +1448,19 @@ void VLCVolCtrl::OnChange( wxMouseEvent& event )
{ {
int i_volume; int i_volume;
aout_VolumeMute( p_intf, (audio_volume_t *)&i_volume ); aout_VolumeMute( p_intf, (audio_volume_t *)&i_volume );
b_mute = !b_mute;
Refresh();
} }
} }
void VLCVolCtrl::UpdateVolume() void VLCVolCtrl::UpdateVolume()
{ {
gauge->UpdateVolume(); gauge->UpdateVolume();
int i_volume = gauge->GetValue();
if( !!i_volume == !b_mute ) return;
b_mute = !b_mute;
Refresh(); Refresh();
} }
......
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