]> git.sesse.net Git - vlc/commitdiff
(qt4) Enable reverse playback direction button in qt4 interface.
authorJean-Paul Saman <jean-paul.saman@m2x.nl>
Thu, 20 Nov 2008 16:10:47 +0000 (17:10 +0100)
committerJean-Paul Saman <jean-paul.saman@m2x.nl>
Thu, 20 Nov 2008 16:10:47 +0000 (17:10 +0100)
modules/gui/qt4/components/controller.cpp
modules/gui/qt4/components/controller.hpp
modules/gui/qt4/input_manager.cpp
modules/gui/qt4/input_manager.hpp

index 7e0f51bc812a5b104add087e63695821afc80cc8..95991df368527daca5cbe31fa55dba4f39b59d66 100644 (file)
@@ -378,6 +378,15 @@ QWidget *AbstractController::createWidget( buttonType_e button, int* i_size,
             widget = advControls;
             *i_size = advControls->getWidth();
         }
+    case REVERSE_BUTTON:{
+        QToolButton *reverseButton = new QToolButton;
+        setupButton( reverseButton );
+        CONNECT_MAP_SET( reverseButton, REVERSE_ACTION );
+        BUTTON_SET_BAR( reverseButton, reverse, qtr( "Reverse" ) );
+        ENABLE_ON_INPUT( reverseButton );
+        widget = reverseButton;
+        }
+        break;
     default:
         msg_Warn( p_intf, "This should not happen" );
         break;
@@ -665,6 +674,8 @@ void AbstractController::doAction( int id_action )
             THEMIM->getIM()->setAtoB(); break;
         case FRAME_ACTION:
             frame(); break;
+        case REVERSE_ACTION:
+            reverse(); break;
         default:
             msg_Dbg( p_intf, "Action: %i", id_action );
             break;
@@ -730,6 +741,11 @@ void AbstractController::extSettings()
     THEDP->extendedDialog();
 }
 
+void AbstractController::reverse()
+{
+    THEMIM->getIM()->reverse();
+}
+
 void AbstractController::slower()
 {
     THEMIM->getIM()->slower();
@@ -1226,7 +1242,6 @@ static int FullscreenControllerWidgetMouseMoved( vlc_object_t *vlc_object, const
     return VLC_SUCCESS;
 }
 
-
 /**
  * It is called when video start
  */
@@ -1246,6 +1261,7 @@ void FullscreenControllerWidget::attachVout( vout_thread_t *p_nvout )
                        var_GetInteger( p_vout, "mouse-hide-timeout" ) );
     vlc_mutex_unlock( &lock );
 }
+
 /**
  * It is called after turn off video.
  */
@@ -1294,4 +1310,3 @@ void FullscreenControllerWidget::fullscreenChanged( vout_thread_t *p_vout,
     }
     vlc_mutex_unlock( &lock );
 }
-
index 68be2e50b158f9bd4d41b4d0af42be725c2ac547..4b2515f8286588dce792911894aebdf05b5c5885 100644 (file)
@@ -83,6 +83,7 @@ typedef enum buttonType_e
     TIME_LABEL,
     SPLITTER,
     ADVANCED_CONTROLLER,
+    REVERSE_BUTTON,
 } buttonType_e;
 
 typedef enum actionType_e
@@ -100,7 +101,8 @@ typedef enum actionType_e
     SNAPSHOT_ACTION,
     RECORD_ACTION,
     FRAME_ACTION,
-    ATOB_ACTION
+    ATOB_ACTION,
+    REVERSE_ACTION,
 } actionType_e;
 
 enum
@@ -147,6 +149,7 @@ protected slots:
     void extSettings();
     void faster();
     void slower();
+    void reverse();
     void playlist();
     void snapshot();
     void record();
index 9f65f792476bbc4b8a0b2cbf9434a258882d14e4..d27ec710e73e8d175d9512b98ad1bde713114f24 100644 (file)
@@ -572,6 +572,15 @@ void InputManager::activateTeletext( bool b_enable )
     }
 }
 
+void InputManager::reverse()
+{
+    if( hasInput() )
+    {
+        int i_rate = var_GetInteger( p_input, "rate" );
+        var_SetInteger( p_input, "rate", -i_rate );
+    }
+}
+
 void InputManager::slower()
 {
     if( hasInput() )
@@ -869,4 +878,3 @@ static int VolumeChanged( vlc_object_t *p_this, const char *psz_var,
     QApplication::postEvent( mim, static_cast<QEvent*>(event) );
     return VLC_SUCCESS;
 }
-
index 8e728cbc19a2840eb4e27908e5e6b637c65a476e..904fe9352fa9badf7420b08f2efb1f11ee8a1928 100644 (file)
@@ -116,6 +116,7 @@ public slots:
     void setInput( input_thread_t * ); ///< Our controlled input changed
     void sliderUpdate( float ); ///< User dragged the slider. We get new pos
     /* SpeedRate Rate Management */
+    void reverse();
     void slower();
     void faster();
     void normalRate();