]> git.sesse.net Git - vlc/commitdiff
* skins2: Added the vlc.snapshot() action
authorOlivier Teulière <ipkiss@videolan.org>
Wed, 26 Apr 2006 17:59:29 +0000 (17:59 +0000)
committerOlivier Teulière <ipkiss@videolan.org>
Wed, 26 Apr 2006 17:59:29 +0000 (17:59 +0000)
doc/skins/skins2-howto.xml
modules/gui/skins2/Modules.am
modules/gui/skins2/commands/cmd_snapshot.cpp [new file with mode: 0644]
modules/gui/skins2/commands/cmd_snapshot.hpp [new file with mode: 0644]
modules/gui/skins2/parser/interpreter.cpp

index 81aa0ab95d4e35186b2dc70fa5511ee9602eade9..99bfa03a7feb6af5f2e61c64bb5871cf4488bb4c 100644 (file)
@@ -848,6 +848,9 @@ difficulty to understand how VLC skins work.</para>
   <listitem><para>
     <emphasis>vlc.fullscreen()</emphasis>: Toggle the fullscreen mode.
   </para></listitem>
+  <listitem><para>
+    <emphasis>vlc.snapshot()</emphasis>: Take a snapshot (since VLC 0.8.5).
+  </para></listitem>
   <listitem><para>
     <emphasis>vlc.onTop()</emphasis>: Toggle the "Always on top" status (since VLC 0.8.0).
   </para></listitem>
index 55d1816e221fd63e6085ca10715a647fb896f954..b72118cf497ae8a122f45423ae81a0f31da87016 100644 (file)
@@ -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 (file)
index 0000000..8bf7d61
--- /dev/null
@@ -0,0 +1,46 @@
+/*****************************************************************************
+ * cmd_snapshot.cpp
+ *****************************************************************************
+ * Copyright (C) 2006 the VideoLAN team
+ * $Id$
+ *
+ * Authors: Olivier Teulière <ipkiss@via.ecp.fr>
+ *
+ * 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 <vlc/vout.h>
+
+
+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 (file)
index 0000000..e96e7c8
--- /dev/null
@@ -0,0 +1,33 @@
+/*****************************************************************************
+ * cmd_snapshot.hpp
+ *****************************************************************************
+ * Copyright (C) 2003 the VideoLAN team
+ * $Id$
+ *
+ * Authors: Olivier Teulière <ipkiss@via.ecp.fr>
+ *
+ * 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
index 9bce12bf9b81d877a46d59374d2474d4b2897885..b09e910e675174bba9ee37fa0f05c5a1cccaea10 100644 (file)
@@ -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 ) );