]> git.sesse.net Git - vlc/commitdiff
* modules/gui/wxwindows/*: some cleanup + disable seekbar if stream is not seekable.
authorGildas Bazin <gbazin@videolan.org>
Sun, 16 May 2004 17:25:10 +0000 (17:25 +0000)
committerGildas Bazin <gbazin@videolan.org>
Sun, 16 May 2004 17:25:10 +0000 (17:25 +0000)
modules/gui/wxwindows/interface.cpp
modules/gui/wxwindows/timer.cpp
modules/gui/wxwindows/wxwindows.h

index 435476cd5668d0fbc39ad96f8003c72cb28ac4e7..5c50757a16c8cb39d9056feac3d446d66246f1b0 100644 (file)
@@ -80,7 +80,7 @@ public:
                wxPoint = wxDefaultPosition, wxSize = wxSize( 20, -1 ) );
     virtual ~wxVolCtrl() {};
 
-    void Change( int i_volume );
+    void UpdateVolume();
 
     void OnChange( wxMouseEvent& event );
 
@@ -297,6 +297,12 @@ Interface::~Interface()
     delete timer;
 }
 
+void Interface::Update()
+{
+    /* Misc updates */
+    ((wxVolCtrl *)volctrl)->UpdateVolume();
+}
+
 void Interface::OnControlEvent( wxCommandEvent& event )
 {
     switch( event.GetId() )
@@ -414,10 +420,10 @@ END_EVENT_TABLE()
 
 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 )
@@ -1390,20 +1396,14 @@ bool DragAndDrop::OnDropFiles( wxCoord, wxCoord,
 #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 )
@@ -1411,13 +1411,21 @@ 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 ) );
 }
index 6c29a5aef7a4fd33289c721d7ebdd4eacef41149..5438cc95da6385720cccb2a6c916da6c77d3d2de 100644 (file)
@@ -104,14 +104,17 @@ void Timer::Notify()
         /* 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 );
@@ -119,15 +122,6 @@ void Timer::Notify()
             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;
         }
@@ -135,17 +129,14 @@ void Timer::Notify()
     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 );
@@ -166,17 +157,6 @@ void Timer::Notify()
         {
             /* 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 )
@@ -214,14 +194,9 @@ void Timer::Notify()
                     }
                 }
             }
-            /* 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 )
index ca1a2a9fa5baefa59e050a15a3d107aedaf568b5..2084d491bec3a695b2e919acd5e71f3996fa45de 100644 (file)
@@ -190,6 +190,7 @@ public:
     Interface( intf_thread_t *p_intf );
     virtual ~Interface();
     void TogglePlayButton( int i_playing_status );
+    void Update();
 
     wxBoxSizer  *frame_sizer;
     wxStatusBar *statusbar;
@@ -823,7 +824,6 @@ private:
 
 };
 
-
 #if wxUSE_DRAG_AND_DROP
 /* Drag and Drop class */
 class DragAndDrop: public wxFileDropTarget