/*****************************************************************************
- * Controller.cpp : Controller for the main interface
+ * actions_manager.cpp : Controller for the main interface
****************************************************************************
* Copyright (C) 2006-2008 the VideoLAN team
* $Id$
#endif
#include <vlc_vout.h>
-#include <vlc_aout.h>
#include <vlc_keys.h>
#include "actions_manager.hpp"
#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 REVERSE_ACTION:
THEMIM->getIM()->reverse(); break;
case SKIP_BACK_ACTION:
- var_SetInteger( p_intf->p_libvlc, "key-action",
- ACTIONID_JUMP_BACKWARD_SHORT );
+ skipBackward();
break;
case SKIP_FW_ACTION:
- var_SetInteger( p_intf->p_libvlc, "key-action",
- 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 );
break;
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();
*/
void ActionsManager::fullscreen()
{
+ 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 );
}
}
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()
{
- aout_VolumeMute( p_intf, NULL );
+ playlist_MuteToggle( THEPL );
}
void ActionsManager::AudioUp()
{
- aout_VolumeUp( p_intf, 1, NULL );
+ playlist_VolumeUp( THEPL, 1, NULL );
}
void ActionsManager::AudioDown()
{
- aout_VolumeDown( p_intf, 1, NULL );
+ 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();
}