Commit e03e1df6 authored by Gildas Bazin's avatar Gildas Bazin

* modules/gui/wxwindows/*: some cleanup + disable seekbar if stream is not seekable.

parent 37173af1
...@@ -80,7 +80,7 @@ public: ...@@ -80,7 +80,7 @@ public:
wxPoint = wxDefaultPosition, wxSize = wxSize( 20, -1 ) ); wxPoint = wxDefaultPosition, wxSize = wxSize( 20, -1 ) );
virtual ~wxVolCtrl() {}; virtual ~wxVolCtrl() {};
void Change( int i_volume ); void UpdateVolume();
void OnChange( wxMouseEvent& event ); void OnChange( wxMouseEvent& event );
...@@ -297,6 +297,12 @@ Interface::~Interface() ...@@ -297,6 +297,12 @@ Interface::~Interface()
delete timer; delete timer;
} }
void Interface::Update()
{
/* Misc updates */
((wxVolCtrl *)volctrl)->UpdateVolume();
}
void Interface::OnControlEvent( wxCommandEvent& event ) void Interface::OnControlEvent( wxCommandEvent& event )
{ {
switch( event.GetId() ) switch( event.GetId() )
...@@ -414,10 +420,10 @@ END_EVENT_TABLE() ...@@ -414,10 +420,10 @@ END_EVENT_TABLE()
VLCVolCtrl::VLCVolCtrl( intf_thread_t *p_intf, wxWindow *p_parent, VLCVolCtrl::VLCVolCtrl( intf_thread_t *p_intf, wxWindow *p_parent,
wxGauge **pp_volctrl ) 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), *pp_volctrl = new wxVolCtrl( p_intf, this, -1, wxPoint( 18, 0 ),
wxSize(44,16) ); wxSize( 44, 16 ) );
} }
void VLCVolCtrl::OnPaint( wxPaintEvent &evt ) void VLCVolCtrl::OnPaint( wxPaintEvent &evt )
...@@ -1390,20 +1396,14 @@ bool DragAndDrop::OnDropFiles( wxCoord, wxCoord, ...@@ -1390,20 +1396,14 @@ bool DragAndDrop::OnDropFiles( wxCoord, wxCoord,
#endif #endif
/***************************************************************************** /*****************************************************************************
* Definition of wxVolCtrl class. * Definition of VolCtrl class.
*****************************************************************************/ *****************************************************************************/
wxVolCtrl::wxVolCtrl( intf_thread_t *_p_intf, wxWindow* parent, wxWindowID id, wxVolCtrl::wxVolCtrl( intf_thread_t *_p_intf, wxWindow* parent, wxWindowID id,
wxPoint point, wxSize size ) wxPoint point, wxSize size )
: wxGauge( parent, id, 200, point, size, wxGA_HORIZONTAL | wxGA_SMOOTH ) : wxGauge( parent, id, 200, point, size, wxGA_HORIZONTAL | wxGA_SMOOTH )
{ {
p_intf = _p_intf; p_intf = _p_intf;
UpdateVolume();
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 ) );
} }
void wxVolCtrl::OnChange( wxMouseEvent& event ) void wxVolCtrl::OnChange( wxMouseEvent& event )
...@@ -1411,13 +1411,21 @@ void wxVolCtrl::OnChange( wxMouseEvent& event ) ...@@ -1411,13 +1411,21 @@ void wxVolCtrl::OnChange( wxMouseEvent& event )
if( !event.LeftDown() && !event.LeftIsDown() ) return; if( !event.LeftDown() && !event.LeftIsDown() ) return;
int i_volume = event.GetX() * 200 / GetClientSize().GetWidth(); 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 ); audio_volume_t i_volume;
SetValue( 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"), SetToolTip( wxString::Format((wxString)wxU(_("Volume")) + wxT(" %d"),
i_volume ) ); i_gauge_volume / 2 ) );
} }
...@@ -104,14 +104,17 @@ void Timer::Notify() ...@@ -104,14 +104,17 @@ void Timer::Notify()
/* Show slider */ /* Show slider */
if( p_intf->p_sys->p_input ) if( p_intf->p_sys->p_input )
{ {
//if( p_intf->p_sys->p_input->stream.b_seekable ) p_main_interface->slider->SetValue( 0 );
{ p_main_interface->slider_frame->Show();
p_main_interface->slider_frame->Show(); p_main_interface->frame_sizer->Show(
p_main_interface->frame_sizer->Show( p_main_interface->slider_frame );
p_main_interface->slider_frame ); p_main_interface->frame_sizer->Layout();
p_main_interface->frame_sizer->Layout(); p_main_interface->frame_sizer->Fit( p_main_interface );
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( p_main_interface->statusbar->SetStatusText(
wxU(p_intf->p_sys->p_input->psz_source), 2 ); wxU(p_intf->p_sys->p_input->psz_source), 2 );
...@@ -119,15 +122,6 @@ void Timer::Notify() ...@@ -119,15 +122,6 @@ void Timer::Notify()
p_main_interface->TogglePlayButton( PLAYING_S ); p_main_interface->TogglePlayButton( PLAYING_S );
i_old_playing_status = 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 */ /* control buttons for free pace streams */
b_pace_control = p_intf->p_sys->p_input->stream.b_pace_control; b_pace_control = p_intf->p_sys->p_input->stream.b_pace_control;
} }
...@@ -135,17 +129,14 @@ void Timer::Notify() ...@@ -135,17 +129,14 @@ void Timer::Notify()
else if( p_intf->p_sys->p_input->b_dead ) else if( p_intf->p_sys->p_input->b_dead )
{ {
/* Hide slider */ /* 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->Hide(); p_main_interface->slider_frame );
p_main_interface->frame_sizer->Hide( p_main_interface->frame_sizer->Layout();
p_main_interface->slider_frame ); p_main_interface->frame_sizer->Fit( p_main_interface );
p_main_interface->frame_sizer->Layout();
p_main_interface->frame_sizer->Fit( p_main_interface );
p_main_interface->TogglePlayButton( PAUSE_S ); p_main_interface->TogglePlayButton( PAUSE_S );
i_old_playing_status = PAUSE_S; i_old_playing_status = PAUSE_S;
}
p_main_interface->statusbar->SetStatusText( wxT(""), 0 ); p_main_interface->statusbar->SetStatusText( wxT(""), 0 );
p_main_interface->statusbar->SetStatusText( wxT(""), 2 ); p_main_interface->statusbar->SetStatusText( wxT(""), 2 );
...@@ -166,17 +157,6 @@ void Timer::Notify() ...@@ -166,17 +157,6 @@ void Timer::Notify()
{ {
/* New input or stream map change */ /* New input or stream map change */
p_intf->p_sys->b_playing = 1; 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 */ /* Manage the slider */
if( p_input->stream.b_seekable && p_intf->p_sys->b_playing ) if( p_input->stream.b_seekable && p_intf->p_sys->b_playing )
...@@ -214,14 +194,9 @@ void Timer::Notify() ...@@ -214,14 +194,9 @@ void Timer::Notify()
} }
} }
} }
/* Take care of the volume */
audio_volume_t i_volume; /* Take care of the volume, etc... */
aout_VolumeGet( p_intf, &i_volume ); p_main_interface->Update();
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 ) );
/* Manage Playing status */ /* Manage Playing status */
if( i_old_playing_status != p_input->stream.control.i_status ) if( i_old_playing_status != p_input->stream.control.i_status )
......
...@@ -190,6 +190,7 @@ public: ...@@ -190,6 +190,7 @@ public:
Interface( intf_thread_t *p_intf ); Interface( intf_thread_t *p_intf );
virtual ~Interface(); virtual ~Interface();
void TogglePlayButton( int i_playing_status ); void TogglePlayButton( int i_playing_status );
void Update();
wxBoxSizer *frame_sizer; wxBoxSizer *frame_sizer;
wxStatusBar *statusbar; wxStatusBar *statusbar;
...@@ -823,7 +824,6 @@ private: ...@@ -823,7 +824,6 @@ private:
}; };
#if wxUSE_DRAG_AND_DROP #if wxUSE_DRAG_AND_DROP
/* Drag and Drop class */ /* Drag and Drop class */
class DragAndDrop: public wxFileDropTarget class DragAndDrop: public wxFileDropTarget
......
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