]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/actions_manager.cpp
Qt: use DIR_SEP for BDMV and VIDEO_TS detection
[vlc] / modules / gui / qt4 / actions_manager.cpp
index 475049f6e1939d575566fda943d375dce3bc9e6f..d5595fdbcd93909445677f9bde4a14d33d9f2559 100644 (file)
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * Controller.cpp : Controller for the main interface
+ * actions_manager.cpp : Controller for the main interface
  ****************************************************************************
  * Copyright (C) 2006-2008 the VideoLAN team
  * $Id$
@@ -33,6 +33,7 @@
 #include "dialogs_provider.hpp" /* Opening Dialogs */
 #include "input_manager.hpp"
 #include "main_interface.hpp" /* Show playlist */
+#include "components/controller.hpp" /* Toggle FSC controller width */
 
 ActionsManager * ActionsManager::instance = NULL;
 
@@ -50,39 +51,51 @@ void ActionsManager::doAction( int id_action )
     {
         case PLAY_ACTION:
             play(); break;
+        case STOP_ACTION:
+            THEMIM->stop(); break;
+        case OPEN_ACTION:
+            THEDP->openDialog(); break;
         case PREVIOUS_ACTION:
-            prev(); break;
+            THEMIM->prev(); break;
         case NEXT_ACTION:
-            next(); break;
-        case STOP_ACTION:
-            stop(); break;
+            THEMIM->next(); break;
         case SLOWER_ACTION:
-            slower(); break;
+            THEMIM->getIM()->slower(); break;
         case FASTER_ACTION:
-            faster(); break;
+            THEMIM->getIM()->faster(); break;
         case FULLSCREEN_ACTION:
             fullscreen(); break;
         case EXTENDED_ACTION:
-            extSettings(); break;
+            THEDP->extendedDialog(); break;
         case PLAYLIST_ACTION:
             playlist(); break;
         case SNAPSHOT_ACTION:
             snapshot(); break;
         case RECORD_ACTION:
             record(); break;
-        case ATOB_ACTION:
-            THEMIM->getIM()->setAtoB(); break;
         case FRAME_ACTION:
             frame(); break;
+        case ATOB_ACTION:
+            THEMIM->getIM()->setAtoB(); break;
         case REVERSE_ACTION:
-            reverse(); break;
+            THEMIM->getIM()->reverse(); break;
         case SKIP_BACK_ACTION:
-            var_SetInteger( p_intf->p_libvlc, "key-pressed",
-                    ACTIONID_JUMP_BACKWARD_SHORT );
+            skipBackward();
             break;
         case SKIP_FW_ACTION:
-            var_SetInteger( p_intf->p_libvlc, "key-pressed",
-                    ACTIONID_JUMP_FORWARD_SHORT );
+            skipForward();
+            break;
+        case QUIT_ACTION:
+            THEDP->quit();  break;
+        case RANDOM_ACTION:
+            THEMIM->toggleRandom(); break;
+        case INFO_ACTION:
+            THEDP->mediaInfoDialog(); break;
+        case OPEN_SUB_ACTION:
+            THEDP->loadSubtitlesFile(); break;
+        case FULLWIDTH_ACTION:
+            if( p_intf->p_sys->p_mi )
+                p_intf->p_sys->p_mi->getFullscreenControllerWidget()->toggleFullwidth();
             break;
         default:
             msg_Dbg( p_intf, "Action: %i", id_action );
@@ -90,14 +103,9 @@ void ActionsManager::doAction( int id_action )
     }
 }
 
-inline void ActionsManager::stop()
-{
-    THEMIM->stop();
-}
-
 void ActionsManager::play()
 {
-    if( THEPL->current.i_size == 0 )
+    if( THEPL->current.i_size == 0 && THEPL->items.i_size == 0 )
     {
         /* The playlist is empty, open a file requester */
         THEDP->openFileDialog();
@@ -106,16 +114,6 @@ void ActionsManager::play()
     THEMIM->togglePlayPause();
 }
 
-inline void ActionsManager::prev()
-{
-    THEMIM->prev();
-}
-
-inline void ActionsManager::next()
-{
-    THEMIM->next();
-}
-
 /**
   * TODO
  * This functions toggle the fullscreen mode
@@ -124,47 +122,26 @@ inline void ActionsManager::next()
  */
 void ActionsManager::fullscreen()
 {
-    vout_thread_t *p_vout =
-      (vout_thread_t *)vlc_object_find( p_intf, VLC_OBJECT_VOUT, FIND_ANYWHERE );
+    bool fs = var_ToggleBool( THEPL, "fullscreen" );
+    vout_thread_t *p_vout = THEMIM->getVout();
     if( p_vout)
     {
-        var_SetBool( p_vout, "fullscreen", !var_GetBool( p_vout, "fullscreen" ) );
+        var_SetBool( p_vout, "fullscreen", fs );
         vlc_object_release( p_vout );
     }
 }
 
 void ActionsManager::snapshot()
 {
-    vout_thread_t *p_vout =
-      (vout_thread_t *)vlc_object_find( p_intf, VLC_OBJECT_VOUT, FIND_ANYWHERE );
+    vout_thread_t *p_vout = THEMIM->getVout();
     if( p_vout )
     {
-        vout_Control( p_vout, VOUT_SNAPSHOT );
+        var_TriggerCallback( p_vout, "video-snapshot" );
         vlc_object_release( p_vout );
     }
 }
 
-inline void ActionsManager::extSettings()
-{
-    THEDP->extendedDialog();
-}
-
-inline void ActionsManager::reverse()
-{
-    THEMIM->getIM()->reverse();
-}
-
-inline void ActionsManager::slower()
-{
-    THEMIM->getIM()->slower();
-}
-
-inline void ActionsManager::faster()
-{
-    THEMIM->getIM()->faster();
-}
-
-inline void ActionsManager::playlist()
+void ActionsManager::playlist()
 {
     if( p_intf->p_sys->p_mi ) p_intf->p_sys->p_mi->togglePlaylist();
 }
@@ -175,8 +152,7 @@ void ActionsManager::record()
     if( p_input )
     {
         /* This method won't work fine if the stream can't be cut anywhere */
-        const bool b_recording = var_GetBool( p_input, "record" );
-        var_SetBool( p_input, "record", !b_recording );
+        var_ToggleBool( p_input, "record" );
 #if 0
         else
         {
@@ -187,7 +163,7 @@ void ActionsManager::record()
 
             char *psz = input_item_GetURI( p_item );
             if( psz )
-                THEDP->streamingDialog( NULL, psz, true );
+                THEDP->streamingDialog( NULL, qfu(psz), true );
         }
 #endif
     }
@@ -197,7 +173,35 @@ void ActionsManager::frame()
 {
     input_thread_t *p_input = THEMIM->getInput();
     if( p_input )
-        var_SetVoid( p_input, "frame-next" );
+        var_TriggerCallback( p_input, "frame-next" );
+}
+
+void ActionsManager::toggleMuteAudio()
+{
+     playlist_MuteToggle( THEPL );
+}
+
+void ActionsManager::AudioUp()
+{
+    playlist_VolumeUp( THEPL, 1, NULL );
 }
 
+void ActionsManager::AudioDown()
+{
+    playlist_VolumeDown( THEPL, 1, NULL );
+}
+
+void ActionsManager::skipForward()
+{
+    input_thread_t *p_input = THEMIM->getInput();
+    if( p_input )
+        THEMIM->getIM()->jumpFwd();
+}
+
+void ActionsManager::skipBackward()
+{
+    input_thread_t *p_input = THEMIM->getInput();
+    if( p_input )
+        THEMIM->getIM()->jumpBwd();
+}