wxPoint = wxDefaultPosition, wxSize = wxSize( 20, -1 ) );
virtual ~wxVolCtrl() {};
- void Change( int i_volume );
+ void UpdateVolume();
void OnChange( wxMouseEvent& event );
delete timer;
}
+void Interface::Update()
+{
+ /* Misc updates */
+ ((wxVolCtrl *)volctrl)->UpdateVolume();
+}
+
void Interface::OnControlEvent( wxCommandEvent& event )
{
switch( event.GetId() )
VLCVolCtrl::VLCVolCtrl( intf_thread_t *p_intf, wxWindow *p_parent,
wxGauge **pp_volctrl )
- :wxControl( p_parent, -1, wxDefaultPosition, wxSize(64, 16 ), wxBORDER_NONE )
+ :wxControl( p_parent, -1, wxDefaultPosition, wxSize(64, 16), wxBORDER_NONE )
{
- *pp_volctrl = new wxVolCtrl( p_intf, this, -1, wxPoint(18,0),
- wxSize(44,16) );
+ *pp_volctrl = new wxVolCtrl( p_intf, this, -1, wxPoint( 18, 0 ),
+ wxSize( 44, 16 ) );
}
void VLCVolCtrl::OnPaint( wxPaintEvent &evt )
#endif
/*****************************************************************************
- * Definition of wxVolCtrl class.
+ * Definition of VolCtrl class.
*****************************************************************************/
wxVolCtrl::wxVolCtrl( intf_thread_t *_p_intf, wxWindow* parent, wxWindowID id,
wxPoint point, wxSize size )
: wxGauge( parent, id, 200, point, size, wxGA_HORIZONTAL | wxGA_SMOOTH )
{
p_intf = _p_intf;
-
- audio_volume_t i_volume;
- aout_VolumeGet( p_intf, &i_volume );
- i_volume = i_volume * 200 * 2 / AOUT_VOLUME_MAX;
- SetValue( i_volume );
- SetToolTip( wxString::Format((wxString)wxU(_("Volume")) + wxT(" %d"),
- i_volume ) );
+ UpdateVolume();
}
void wxVolCtrl::OnChange( wxMouseEvent& event )
if( !event.LeftDown() && !event.LeftIsDown() ) return;
int i_volume = event.GetX() * 200 / GetClientSize().GetWidth();
- Change( i_volume );
+ aout_VolumeSet( p_intf, i_volume * AOUT_VOLUME_MAX / 200 / 2 );
+ UpdateVolume();
}
-void wxVolCtrl::Change( int i_volume )
+void wxVolCtrl::UpdateVolume()
{
- aout_VolumeSet( p_intf, i_volume * AOUT_VOLUME_MAX / 200 / 2 );
- SetValue( i_volume );
+ audio_volume_t i_volume;
+ aout_VolumeGet( p_intf, &i_volume );
+
+ int i_gauge_volume = i_volume * 200 * 2 / AOUT_VOLUME_MAX;
+ if( i_gauge_volume == GetValue() ) return;
+
+ msg_Err( p_intf, "volume: %i", i_gauge_volume / 2 );
+
+ SetValue( i_gauge_volume );
SetToolTip( wxString::Format((wxString)wxU(_("Volume")) + wxT(" %d"),
- i_volume ) );
+ i_gauge_volume / 2 ) );
}
/* Show slider */
if( p_intf->p_sys->p_input )
{
- //if( p_intf->p_sys->p_input->stream.b_seekable )
- {
- p_main_interface->slider_frame->Show();
- p_main_interface->frame_sizer->Show(
- p_main_interface->slider_frame );
- p_main_interface->frame_sizer->Layout();
- p_main_interface->frame_sizer->Fit( p_main_interface );
- }
+ p_main_interface->slider->SetValue( 0 );
+ p_main_interface->slider_frame->Show();
+ p_main_interface->frame_sizer->Show(
+ p_main_interface->slider_frame );
+ p_main_interface->frame_sizer->Layout();
+ p_main_interface->frame_sizer->Fit( p_main_interface );
+
+ if( p_intf->p_sys->p_input->stream.b_seekable )
+ p_main_interface->slider->Enable();
+ else
+ p_main_interface->slider->Disable();
p_main_interface->statusbar->SetStatusText(
wxU(p_intf->p_sys->p_input->psz_source), 2 );
p_main_interface->TogglePlayButton( PLAYING_S );
i_old_playing_status = PLAYING_S;
- /* Take care of the volume */
- audio_volume_t i_volume;
- aout_VolumeGet( p_intf, &i_volume );
- p_main_interface->volctrl->SetValue( i_volume * 200 * 2 /
- AOUT_VOLUME_MAX );
- p_main_interface->volctrl->SetToolTip(
- wxString::Format((wxString)wxU(_("Volume")) + wxT(" %d"),
- i_volume * 200 / AOUT_VOLUME_MAX ) );
-
/* control buttons for free pace streams */
b_pace_control = p_intf->p_sys->p_input->stream.b_pace_control;
}
else if( p_intf->p_sys->p_input->b_dead )
{
/* Hide slider */
- //if( p_intf->p_sys->p_input->stream.b_seekable )
- {
- p_main_interface->slider_frame->Hide();
- p_main_interface->frame_sizer->Hide(
- p_main_interface->slider_frame );
- p_main_interface->frame_sizer->Layout();
- p_main_interface->frame_sizer->Fit( p_main_interface );
+ p_main_interface->slider_frame->Hide();
+ p_main_interface->frame_sizer->Hide(
+ p_main_interface->slider_frame );
+ p_main_interface->frame_sizer->Layout();
+ p_main_interface->frame_sizer->Fit( p_main_interface );
- p_main_interface->TogglePlayButton( PAUSE_S );
- i_old_playing_status = PAUSE_S;
- }
+ p_main_interface->TogglePlayButton( PAUSE_S );
+ i_old_playing_status = PAUSE_S;
p_main_interface->statusbar->SetStatusText( wxT(""), 0 );
p_main_interface->statusbar->SetStatusText( wxT(""), 2 );
{
/* New input or stream map change */
p_intf->p_sys->b_playing = 1;
-#if 0
- if( p_input->stream.b_changed )
- {
- wxModeManage( p_intf );
- wxSetupMenus( p_intf );
- p_intf->p_sys->b_playing = 1;
-
- p_main_interface->TogglePlayButton( PLAYING_S );
- i_old_playing_status = PLAYING_S;
- }
-#endif
/* Manage the slider */
if( p_input->stream.b_seekable && p_intf->p_sys->b_playing )
}
}
}
- /* Take care of the volume */
- audio_volume_t i_volume;
- aout_VolumeGet( p_intf, &i_volume );
- p_main_interface->volctrl->SetValue( i_volume * 200 *2 /
- AOUT_VOLUME_MAX );
- p_main_interface->volctrl->SetToolTip(
- wxString::Format((wxString)wxU(_("Volume")) + wxT(" %d"),
- i_volume * 200 / AOUT_VOLUME_MAX ) );
+
+ /* Take care of the volume, etc... */
+ p_main_interface->Update();
/* Manage Playing status */
if( i_old_playing_status != p_input->stream.control.i_status )