summaryrefslogtreecommitdiff
path: root/plugins/console
diff options
context:
space:
mode:
authorroot <root@elwms02.(none)>2010-04-06 16:13:08 +0200
committerroot <root@elwms02.(none)>2010-04-06 16:13:08 +0200
commit0e7005fcc7483c01aa102fbea358c5ac65a48d62 (patch)
tree11517ce0d3d2977c6732b3aa583b0008083e0bd3 /plugins/console
downloadx-vdr-0e7005fcc7483c01aa102fbea358c5ac65a48d62.tar.gz
x-vdr-0e7005fcc7483c01aa102fbea358c5ac65a48d62.tar.bz2
hello world
Diffstat (limited to 'plugins/console')
-rw-r--r--plugins/console/patches/console-0.6.0.diff152
-rw-r--r--plugins/console/patches/console-0.6.0_vdr-1.5.1.diff33
-rw-r--r--plugins/console/plugin.sh52
3 files changed, 237 insertions, 0 deletions
diff --git a/plugins/console/patches/console-0.6.0.diff b/plugins/console/patches/console-0.6.0.diff
new file mode 100644
index 0000000..dbda827
--- /dev/null
+++ b/plugins/console/patches/console-0.6.0.diff
@@ -0,0 +1,152 @@
+diff -Nur console-0.6.0/console.c console-0.6.0-n/console.c
+--- console-0.6.0/console.c 2004-09-11 23:44:25.000000000 +0200
++++ console-0.6.0-n/console.c 2006-11-07 02:10:27.000000000 +0100
+@@ -60,14 +60,34 @@
+
+ const char *cPluginConsole::CommandLineHelp() {
+
+- return NULL;
++ // Return a string that describes all known command line options.
++ return " -c prog, --command=prog specify the programm which is\n"
++ " called when you start the plugin\n";
+ }
+
+
+
+ bool cPluginConsole::ProcessArgs(int argc, char *argv[]) {
+
+- return true;
++ // Implement command line argument processing here if applicable.
++ static struct option long_options[] = {
++ { "command", required_argument, NULL, 'c' },
++ { NULL, no_argument, NULL, 0 },
++ };
++
++ int c;
++ while ((c = getopt_long(argc, argv, "c:", long_options, NULL)) != -1) {
++ switch (c) {
++ case 'c':
++ fprintf(stderr, "arg: %s\n", optarg);
++ ConsoleCmd = strdup(optarg);
++ break;
++ default:
++ fprintf(stderr, "arg char: %c\n", c);
++ return false;
++ }
++ }
++ return true;
+ }
+
+
+diff -Nur console-0.6.0/Makefile console-0.6.0-n/Makefile
+--- console-0.6.0/Makefile 2006-11-07 02:04:40.000000000 +0100
++++ console-0.6.0-n/Makefile 2006-11-07 02:10:27.000000000 +0100
+@@ -16,7 +16,7 @@
+ ### The C++ compiler and options:
+
+ CXX = g++
+-CXXFLAGS = -O2 -Wall -Woverloaded-virtual
++CXXFLAGS = -fPIC -O2 -Wall -Woverloaded-virtual
+
+ ### The directory environment:
+
+diff -Nur console-0.6.0/menu.c console-0.6.0-n/menu.c
+--- console-0.6.0/menu.c 2004-09-12 00:10:57.000000000 +0200
++++ console-0.6.0-n/menu.c 2006-11-07 02:10:27.000000000 +0100
+@@ -1210,14 +1210,14 @@
+ }
+ case kNone:
+ // Handle blinking elements
+- if (time_ms() >= _nextBlinkTime) {
++ if ((int)cTimeMs::Now() >= _nextBlinkTime) {
+
+- _nextBlinkTime = time_ms() + config.BlinkRate * 100;
++ _nextBlinkTime = cTimeMs::Now() + config.BlinkRate * 100;
+ _blink = !_blink;
+ }
+
+ // Handle keyboard releaseing
+- if (time_ms() >= _timeReleaseCapture) {
++ if ((int)cTimeMs::Now() >= _timeReleaseCapture) {
+ _timeReleaseCapture = INT_MAX;
+
+ // Time elapsed -> repost ESC...
+@@ -1243,10 +1243,10 @@
+ _pConsole->getScreen().BellSeen();
+
+ if (config.BellTimeout) {
+- _toRing = time_ms() + config.BellTimeout * 1000;
++ _toRing = cTimeMs::Now() + config.BellTimeout * 1000;
+ state = osUser1;
+ }
+- } else if (_toRing && time_ms() > _toRing) {
++ } else if (_toRing && (int)cTimeMs::Now() > _toRing) {
+ _toRing = 0;
+ state = osUser1;
+ }
+@@ -1441,7 +1441,7 @@
+ // esc detected. Ask for exit
+ if (data[i] == ESC) {
+
+- _timeReleaseCapture = time_ms() + 1000;
++ _timeReleaseCapture = cTimeMs::Now() + 1000;
+ _inputState = 1;
+
+ } else
+diff -Nur console-0.6.0/virtualconsoles.c console-0.6.0-n/virtualconsoles.c
+--- console-0.6.0/virtualconsoles.c 2004-09-11 23:40:18.000000000 +0200
++++ console-0.6.0-n/virtualconsoles.c 2006-11-07 02:10:27.000000000 +0100
+@@ -20,6 +20,17 @@
+ #include "i18n.h"
+
+
++// This program will be used to realize a console.
++// Be carefull! If your VDR runs as root, then every
++// user can kill your machine if you don't protect
++// the cnsoles.
++// So the default is "/bin/login".
++
++#ifdef CONSOLE_USE_SHELL_INSTEAD_LOGIN
++const char *ConsoleCmd="/bin/sh";
++#else
++const char *ConsoleCmd="/bin/login";
++#endif
+
+
+ cConsConsoles::cConsConsoles()
+@@ -128,9 +139,9 @@
+
+ int cConsConsoles::CreateConsole() {
+
+- char* const args[] = {PROG_FOR_CONSOLE, NULL};
++ char* const args[] = { (char*)ConsoleCmd, NULL };
+
+- cConsVirtualConsole* p = new cConsVirtualConsole(tr("Console"), PROG_FOR_CONSOLE, args);
++ cConsVirtualConsole* p = new cConsVirtualConsole( tr("Console"), ConsoleCmd, args );
+
+ if (p) {
+
+diff -Nur console-0.6.0/virtualconsoles.h console-0.6.0-n/virtualconsoles.h
+--- console-0.6.0/virtualconsoles.h 2004-09-11 23:40:18.000000000 +0200
++++ console-0.6.0-n/virtualconsoles.h 2006-11-07 02:10:27.000000000 +0100
+@@ -21,19 +21,7 @@
+
+
+
+-// This program will be used to realize a console.
+-// Be carefull! If your VDR runs as root, then every
+-// user can kill your machine if you don't protect
+-// the cnsoles.
+-// So the default is "/bin/login".
+-
+-#ifdef CONSOLE_USE_SHELL_INSTEAD_LOGIN
+-#define PROG_FOR_CONSOLE "/bin/sh"
+-#else
+-#define PROG_FOR_CONSOLE "/bin/login"
+-#endif
+-
+-
++extern const char *ConsoleCmd;
+
+
+ class cConsVirtualConsole;
diff --git a/plugins/console/patches/console-0.6.0_vdr-1.5.1.diff b/plugins/console/patches/console-0.6.0_vdr-1.5.1.diff
new file mode 100644
index 0000000..e0e74fd
--- /dev/null
+++ b/plugins/console/patches/console-0.6.0_vdr-1.5.1.diff
@@ -0,0 +1,33 @@
+diff -ruN console-0.6.0/menu.c console-0.6.0_vdr-1.5.1/menu.c
+--- console-0.6.0/menu.c 2004-09-12 00:10:57.000000000 +0200
++++ console-0.6.0_vdr-1.5.1/menu.c 2007-03-19 13:10:14.000000000 +0100
+@@ -1193,7 +1193,7 @@
+
+ switch (BASICKEY(Key)) {
+
+- case kKbd:{ uint64 buf = cKbdRemote::MapFuncToCode(KEYKBD(Key));
++ case kKbd:{ uint64_t buf = cKbdRemote::MapFuncToCode(KEYKBD(Key));
+ WriteToConsole(buf);
+
+ // On every key press, we show the cursor immediately
+@@ -1425,7 +1425,7 @@
+
+
+
+-void cMenuConsole::WriteToConsole(const uint64& code) {
++void cMenuConsole::WriteToConsole(const uint64_t& code) {
+
+ unsigned char* data = (unsigned char*)(void*)&code;
+
+diff -ruN console-0.6.0/menu.h console-0.6.0_vdr-1.5.1/menu.h
+--- console-0.6.0/menu.h 2004-09-11 23:40:18.000000000 +0200
++++ console-0.6.0_vdr-1.5.1/menu.h 2007-03-19 13:10:47.000000000 +0100
+@@ -102,7 +102,7 @@
+ private:
+ void CaptureKeyboard();
+ void ReleaseKeyboard();
+- void WriteToConsole(const uint64& code);
++ void WriteToConsole(const uint64_t& code);
+ bool TerminateConsole();
+
+ void AddSubMenu(cOsdObject* pSubMenu);
diff --git a/plugins/console/plugin.sh b/plugins/console/plugin.sh
new file mode 100644
index 0000000..f8b9fb4
--- /dev/null
+++ b/plugins/console/plugin.sh
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+# x-vdr (Installations-Skript fuer einen VDR mit Debian als Basis)
+# von Marc Wernecke - www.zulu-entertainment.de
+# 05.05.2008
+#
+# vdr-console
+
+# defaults
+source ./../../x-vdr.conf
+source ./../../setup.conf
+source ./../../functions
+
+WEB="http://vdr-wiki.de/vdr/vdr-console/vdr-console-0.6.0.tgz"
+VERSION="console-0.6.0"
+LINK="console"
+
+VAR=`basename $WEB`
+DIR=`pwd`
+
+# plugin entfernen
+function clean_plugin() {
+ cd $SOURCEDIR/VDR/PLUGINS/src
+ rm -rf $LINK*
+ rm -f $VDRLIBDIR/libvdr-$LINK*
+ log "cleaning $LINK"
+}
+
+# plugin installieren
+function install_plugin() {
+ download_plugin
+ extract_plugin
+ cd $SOURCEDIR/VDR/PLUGINS/src
+ rm -f $LINK
+ ln -vfs $VERSION $LINK
+ patch_plugin
+
+ ## plugin specials - start ##
+
+ ## plugin specials - ende ##
+}
+
+# plugin commands
+if [ $# \> 0 ]; then
+ cmd=$1
+ cmd_plugin
+else
+ install_plugin
+ log "install-plugin fuer $VERSION ist fertig"
+fi
+
+exit 0