From 1f09d331a4c5def92b66b3d36a3288929bc71b76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Teuli=C3=A8re?= Date: Wed, 26 Apr 2006 17:59:29 +0000 Subject: [PATCH] * skins2: Added the vlc.snapshot() action --- doc/skins/skins2-howto.xml | 3 ++ modules/gui/skins2/Modules.am | 2 + modules/gui/skins2/commands/cmd_snapshot.cpp | 46 ++++++++++++++++++++ modules/gui/skins2/commands/cmd_snapshot.hpp | 33 ++++++++++++++ modules/gui/skins2/parser/interpreter.cpp | 2 + 5 files changed, 86 insertions(+) create mode 100644 modules/gui/skins2/commands/cmd_snapshot.cpp create mode 100644 modules/gui/skins2/commands/cmd_snapshot.hpp diff --git a/doc/skins/skins2-howto.xml b/doc/skins/skins2-howto.xml index 81aa0ab95d4e..99bfa03a7feb 100644 --- a/doc/skins/skins2-howto.xml +++ b/doc/skins/skins2-howto.xml @@ -848,6 +848,9 @@ difficulty to understand how VLC skins work. vlc.fullscreen(): Toggle the fullscreen mode. + + vlc.snapshot(): Take a snapshot (since VLC 0.8.5). + vlc.onTop(): Toggle the "Always on top" status (since VLC 0.8.0). diff --git a/modules/gui/skins2/Modules.am b/modules/gui/skins2/Modules.am index 55d1816e221f..b72118cf497a 100644 --- a/modules/gui/skins2/Modules.am +++ b/modules/gui/skins2/Modules.am @@ -32,6 +32,8 @@ SOURCES_skins2 = \ commands/cmd_quit.hpp \ commands/cmd_resize.cpp \ commands/cmd_resize.hpp \ + commands/cmd_snapshot.cpp \ + commands/cmd_snapshot.hpp \ commands/cmd_show_window.hpp \ commands/cmd_vars.cpp \ commands/cmd_vars.hpp \ diff --git a/modules/gui/skins2/commands/cmd_snapshot.cpp b/modules/gui/skins2/commands/cmd_snapshot.cpp new file mode 100644 index 000000000000..8bf7d613319a --- /dev/null +++ b/modules/gui/skins2/commands/cmd_snapshot.cpp @@ -0,0 +1,46 @@ +/***************************************************************************** + * cmd_snapshot.cpp + ***************************************************************************** + * Copyright (C) 2006 the VideoLAN team + * $Id$ + * + * Authors: Olivier Teulière + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ + +#include "cmd_snapshot.hpp" +#include + + +void CmdSnapshot::execute() +{ + vout_thread_t *pVout; + + if( getIntf()->p_sys->p_input == NULL ) + { + return; + } + + pVout = (vout_thread_t *)vlc_object_find( getIntf()->p_sys->p_input, + VLC_OBJECT_VOUT, FIND_CHILD ); + if( pVout ) + { + // Take a snapshot + vout_Control( pVout, VOUT_SNAPSHOT ); + vlc_object_release( pVout ); + } +} + diff --git a/modules/gui/skins2/commands/cmd_snapshot.hpp b/modules/gui/skins2/commands/cmd_snapshot.hpp new file mode 100644 index 000000000000..e96e7c8e711b --- /dev/null +++ b/modules/gui/skins2/commands/cmd_snapshot.hpp @@ -0,0 +1,33 @@ +/***************************************************************************** + * cmd_snapshot.hpp + ***************************************************************************** + * Copyright (C) 2003 the VideoLAN team + * $Id$ + * + * Authors: Olivier Teulière + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ + +#ifndef CMD_SNAPSHOT_HPP +#define CMD_SNAPSHOT_HPP + +#include "cmd_generic.hpp" + + +/// Command to snapshot VLC +DEFINE_COMMAND(Snapshot, "snapshot" ) + +#endif diff --git a/modules/gui/skins2/parser/interpreter.cpp b/modules/gui/skins2/parser/interpreter.cpp index 9bce12bf9b81..b09e910e6751 100644 --- a/modules/gui/skins2/parser/interpreter.cpp +++ b/modules/gui/skins2/parser/interpreter.cpp @@ -38,6 +38,7 @@ #include "../commands/cmd_fullscreen.hpp" #include "../commands/cmd_on_top.hpp" #include "../commands/cmd_show_window.hpp" +#include "../commands/cmd_snapshot.hpp" #include "../src/theme.hpp" #include "../src/var_manager.hpp" #include "../src/vlcproc.hpp" @@ -108,6 +109,7 @@ Interpreter::Interpreter( intf_thread_t *pIntf ): SkinObject( pIntf ) REGISTER_CMD( "vlc.volumeDown()", CmdVolumeDown ) REGISTER_CMD( "vlc.minimize()", CmdMinimize ) REGISTER_CMD( "vlc.onTop()", CmdOnTop ) + REGISTER_CMD( "vlc.snapshot()", CmdSnapshot ) REGISTER_CMD( "vlc.quit()", CmdQuit ) m_commandMap["equalizer.enable()"] = CmdGenericPtr( new CmdSetEqualizer( getIntf(), true ) );