/*****************************************************************************
- * Controller.cpp : Controller for the main interface
+ * actions_manager.cpp : Controller for the main interface
****************************************************************************
* Copyright (C) 2006-2008 the VideoLAN team
* $Id$
#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;
{
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 );
}
}
-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();
THEMIM->togglePlayPause();
}
-inline void ActionsManager::prev()
-{
- THEMIM->prev();
-}
-
-inline void ActionsManager::next()
-{
- THEMIM->next();
-}
-
/**
* TODO
* This functions toggle the fullscreen mode
*/
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();
}
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
{
char *psz = input_item_GetURI( p_item );
if( psz )
- THEDP->streamingDialog( NULL, psz, true );
+ THEDP->streamingDialog( NULL, qfu(psz), true );
}
#endif
}
{
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();
+}