Xxv
(→Records) |
(→Grab) |
||
Zeile 405: | Zeile 405: | ||
Manual: http://www.xpix.de/downloads/xxv/doc/GRAB.html | Manual: http://www.xpix.de/downloads/xxv/doc/GRAB.html | ||
+ | |||
+ | * grab ist jetzt in der Lage, zusätzliche Informationen (wie z.B. den Kanal) in das gegrabbte Livebild einzublenden. | ||
===Remote=== | ===Remote=== |
Version vom 5. Mai 2005, 05:49 Uhr
Inhaltsverzeichnis |
Beschreibung
xxv ist ein zentraler Dienst zur Administrierung des VDR und dessen Umgebung, bei dem verschiedene Ports offen sind und diese verschiedene Services bedienen können.
Einen zusätzlichen Port über ein Plugin einzurichten sollte genauso einfach sein, wie auch einen bestimmten Service bereitzustellen. Das Schreiben eines Plugins geht sehr schnell, da der Input (Vdr, DB usw) sowie der Output (Telnet, HTTP, ... ) generisch realisiert wurde. Es soll also z.B. möglich sein, mit einer TelnetConsole, HttpBrowser, WapTelefon, etc. einen Autotimer einzutragen. Dieser sollte wesentlich schneller die EPG-Daten durchsuchen können (MySQL-Datenbank) und über ein Interface dem VDR den neuen Timer mitteilen. Dabei wird natürlich auch dem singleModus des SVdrP Rechnung getragen und nur ein Befehl abgesendet. Danach wird der Port sofort wieder geschlossen, damit andere Programme wieder auf den svdrp zugreifen können.
Lange Rede kurzer Sinn, hier ein kleiner Überblick der derzeitigen Funktionen:
- komplett in Perl realisiert
- sehr generisches Frontend
- Plugin system
- Datenbank Unterstützung
- Epg-Daten werden regelmäßig geparst und eingetragen
- sehr einfaches Pluginkonzept für zukünftige Erweiterungen
- mehrere Services aus einem Dienst (Telnet, HTTP, ...)
- Dump-Interface fuer externe Programme
Bilder
Softwareanforderungen
- mysql-server
- perl
- DBI
- DBD::mysql
- Event
- Test::Simple
- URI
- MIME::Base64
- Time::HiRes
- Attribute::Handlers
- Locale::gettext
- mplayer (optional), Installation siehe mplayer-plugin
Installation
Subversion checkout
Wir unterstützen ab sofort Subversion, das heisst also für Euch das auf Eurem System subversion installiert sein sollte. Wie Subversion-Clients auf Eurem System installiert werden könnt Ihr hier nachlesen:
http://subversion.tigris.org/project_packages.html
Um einen Checkout zu machen (also sich das aktuelle xxv zu ziehen) ruft ihr einfach folgendes auf:
cd $SOURCEDIR svn checkout http://bandt.dyndns.org/repos/XXV
Xxv entpacken
cd $SOURCEDIR tar xvzf xxv-<VERSION>.tar.gz
Man page installieren
cd $SOURCEDIR cp doc/xxvd.1 /usr/share/man/man1
Logrotate conf installieren
cd $SOURCEDIR cp etc/logrotate.d/xxvd /etc/logrotate.d/xxvd
MySQL
per Source
cd $SOURCEDIR tar xvzf mysql-<VERSION>.tar.gz ./configure --prefix=/usr/local \ --libexecdir=/usr/local/bin \ --without-extra-tools \ --without-bench make make install cd /usr/local/lib ln -s mysql/libmysqlclient.so* . groupadd mysql useradd -g mysql mysql chown -R mysql var mysql_install_db --user=mysql & ldconfig
Debian-spezifisch
apt-get install mysql-server
Perl Module
Nun folgen einige Perl Module, da gibt es wie 2 Wege:
per cpan
Der empfohlende Weg: Mittels "Bundle::Xxv" per CPAN, einfach in das $SOURCEDIR/lib Verzeichniss wechseln und das Bundle installieren. Dazu muss man LEIDER dem cpan das Modul unterschieben, es kann sein das bei den mkdir's Fehlermeldungen kommen das dieses Verzeichniss bereits schon existiert, das könnt ihr getrost ignorieren. Alle Module die benoetigt werden stehen in diesem Bundle und werden automatisch installiert:
cd $SOURCEDIR/xxv-<VERSION>/lib mkdir ~/.cpan mkdir ~/.cpan/Bundle cp Bundle/Xxv.pm ~/.cpan/Bundle perl -MCPAN -e 'install Bundle::Xxv'
per Source
Oder eine andere Möglichkeit via Source, auf dem TestPC als Basis Peanut waren es folgende Pakete:
- DBI-<VERSION>.tar.gz
- DBD-mysql-<VERSION>.tar.gz
- Event-<VERSION>.tar.gz
- URI-<VERSION>.tar.gz
- Time-HiRes-<VERSION>.tar.gz
- MIME-Base64-<VERSION>.tar.gz
- Attribute-Handlers-<VERSION>.tar.gz
- gettext-<VERSION>.tar.gz
Die Installation ist für alle Pakete identisch:
cd $SOURCEDIR tar xvzf <NAME>-<VERSION>.tar.gz cd <NAME>-<VERSION> perl Makefile.PL make make install cd -
Debian-spezifisch
apt-get install libdbi-perl \ libevent-perl \ libtimedate-perl \ libtime-hires-perl \ libmime-base64-perl \ libproc-process-perl \ liblocale-gettext-perl \ libgd-perl \ libproc-process-perl
Update von einer älteren Version (< 0.20)
Wir gehen davon aus das du schon ein xxv bei dir installiert hattest und zeigen dir wie du auf eine neue Version updaten kannst. Als erstes müssen wir den Dienst stoppen:
vdr:~# /etc/init.d/xxvd stop
Dann benutzt am besten subversion um eine neue Version von xxv zu ziehen:
vdr:~# cd $SOURCEDIR vdr:~# svn co http://bandt.dyndns.org/repos/XXV
Damit die vorhandene Datenbank in die neue Struktur konvertiert wird, muss das update skript gestartet werden. Dieses sichert deine wichtigsten Daten und baut die Database neu auf:
cd contrib ./update-xxv -u [db user name] -p [db password]
update-xxv ---------- Info: Checking Server Info: Checking Database Info: Retrieving current version Info: current database version: 0 Info: new database version: 1 Info: Starting update... Info: Saving Data Info: Updating Database Info: Restoring Data Info: Updateing Version Info: Update successful
Eventuell /etc/init.d/xxvd kopieren und an das neue Installationsverzeichnis anpassen und anschliessend neustarten:
vdr:~# cp etc/xxvd /etc/init.d/xxvd vdr:~# /etc/init.d/xxvd restart
Logfile kontrollieren:
vdr:~# tail -f /var/log/xxvd.log
Sollten im Logfile irgendwelche Fehlermeldungen wg. fehlender Module auftauchen,
so solltet ihr diese installieren. Wer nicht mehr weiss wie das geht,
das wiki wird Dir helfen:
http://www.vdr-wiki.de/wiki/index.php/Xxv#Perl_Module
XXV aktuell halten
... mit Subversion
Um xxv aktuell zu halten, braucht ihr einfach nur ein Update mit Subversion machen, das update Skript aufrufen und danach xxv neu starten:
cd $SOURCEDIR /etc/init.d/xxvd stop
svn update ...
... als Download
Natürlich wird es auch weiterhin die Möglichkeit geben, von dem vorhandenen DownloadServer http://xpix.dieserver.de/downloads/xxv/?M=D sich aktuelle Pakete zu holen und diese dann zu entpacken. Aber(!), diese Pakete werden nur in unregelmässigen Abständen zur Verfügung gestellt. Sind also nicht immer aktuell:
cd $SOURCEDIR wget http://xpix.dieserver.de/downloads/xxv/xxv-<VERSION>.tgz tar xvzf xxv-<VERSION>.tar.gz
Datenbankstruktur anpassen
Es kann von Zeit zu Zeit passieren das Eure alte Datenbank aktualisiert werden soll, deswegen solltet ihr immer das contrib/update-xxv skript nach einem Update starten. Dieses müsst ihr mit Euren Usernamen und Passwort des DB Accounts aufrufen.
cd $SOURCEDIR/contrib ./update-xxv -u [db user name] -p [db password]
update-xxv ---------- Info: Checking Server Info: Checking Database Info: Retrieving current version Info: current database version: 0 Info: new database version: 1 Info: Starting update... Info: Saving Data Info: Updating Database Info: Restoring Data Info: Updateing Version Info: Update successful
/etc/init.d/xxvd restart
Konfiguration
Starten des MySQL Servers mit:
mysqld_safe --user=mysql &
Anlegen der Datenbank xxv:
mysql -u root -e "create database xxv;"
Danach sind die Rechte zu setzen:
mysql -u root -e "grant all privileges on xxv.* to xpix@localhost;"
Die $SOURCEDIR/xxv-<VERSION>/xxvd.cfg ist wie folgt anzupassen:
[General] DSN=DBI:mysql:database=xxv;host=localhost;port=3306 PWD= USR=xpix
Xxv starten
Damit xxv bei jedem Systemstart als Dienst gestartet werden kann, haben wir ein Startskript unter etc/xxvd gespeichert, das man in seinem System installieren sollte. Vorher sollte man aber noch den Pfad eingeben, wo sich Euer xxv befindet:
cd $SOURCEDIR/xxv-<VERSION> nano etc/xxvd
In den ersten Zeilen einfach das $SOURCEDIR eintragen und mit ctrl-o abgespeichert.
# ------------------------------------------- # In welchem Ordner befindet sich bin/xxvd # Where is bin/xxvd FOLDER="/root/XXV" # -------------------------------------------
Damit ihr wisst, in welchem Runlevel ihr gerade lauft, solltet ihr runlevel aufrufen:
runlevel
Den Level merkt ihr Euch und erstellt im dem Verzeichnis /etc/rc[runlevelnummer].d einen symbolischen Link auf xxvd. Bei meinem Beispiel in Level 2:
cd $SOURCEDIR/xxv-<VERSION> cp etc/xxvd /etc/init.d/. chmod 775 /etc/init.d/xxvd ln -s /etc/init.d/xxvd /etc/rc2.d/S90xxvd
Starten von xxv:
cd $SOURCEDIR/xxv-<VERSION> ./bin/xxvd --configfile=./xxvd.cfg && tail -f /var/log/xxvd.log
oder als Dienst:
/etc/init.d/xxvd restart
Dann einen Browser aufrufen mit folgender URL:
http://ip_deines_vdrs:8080
oder per Telnet
telnet [ip deines vdrs oder localhost] 8001
User: xxv Password: xxv
Plugins
General
General ist eigentlich kein Plugin. Da es aus Sicht von xxv so aussieht, sollte es der Vollständigkeit halber hier aufgelistet werden. Hier werden globale Einstellungen wie Logfilepfad, Datenbankserver usw. aufgelistet.
Manual: http://www.xpix.de/downloads/xxv/doc/General.html
- Fast alle Module können in Ihrer Funktion deaktiviert werden (Einstellungen -> ModName -> Active = 'no').
- Die Templates sind jetzt ebenfalls lokalisiert und übersetzbar, das heisst der Skinprogrammierer kann über die gettext Routine auf die Übersetzungsdatenbank zugreifen.
Autotimer
Hier werden die EPG Daten nach Sendungen mit einem bestimmten Text in title, subtitle und text durchsucht und diese als Timer programmiert.
Manual: http://www.xpix.de/downloads/xxv/doc/AUTOTIMER.html
- Autotimer können bestimmen ob Timer mit VPS und eigenem Vor- und Nachlauf angelegt werden.
- Bei einem Update werden jetzt zusätzlich auch die Channelnamen der gefundenen Events angezeigt.
- Autotimer - Einstellung - exclude: Exclude-Kanalliste um für bestimme Kanäle die Suche nach Events generell auszuschliessen.
Timers
Dieses Modul erlaubt das Löschen, Erstellen und Editieren der neuen Timer, sowie deren Darstellung.
Manual: http://www.xpix.de/downloads/xxv/doc/TIMERS.html
- Timer referenzieren jetzt auf Ihren EPG Eintrag, falls dieser vorhanden ist.
- Inactive Timer werden jetzt gelöscht falls diese mehr als einen Monat in der Zukunft liegen. Es kam öfters vor, das ein Timer per Autotimer programmiert wurde, dieser wurde wegen Desinteresse deaktiviert. Wenn der Timer abgelaufen war, tauchte er automatisch genau einen Monat später wieder in der Liste auf. Diese "Timerleichen" mussten dann immer mühsam von Hand gelöscht werden. Das passiert jetzt automatisch wenn TIMERS -> Einstellungen -> Deactive auf 'yes' gesetzt ist.
EPG
Hier wird die epg.data eingelesen und deren Einträge in einer Datenbank abgespeichert.
Manual: http://www.xpix.de/downloads/xxv/doc/EPG.html
- Events werden gesondert gekennzeichnet, wenn diese als Timer aufgezeichnet werden.
Channels
Hier wird die channels.conf eingelesen und deren Einträge in einer Datenbank abgespeichert.
Manual: http://www.xpix.de/downloads/xxv/doc/CHANNELS.html
HTTPD
Dieses Modul stellt einen HTTP Server sowie ein Webinterface zur Verfügung, um xxv per Browser bedienen zu können.
Manual: http://www.xpix.de/downloads/xxv/doc/HTTPD.html
- Eine Processbar wird angezeigt wenn Prozesse gestartet werden die etwas länger dauern (Musik neu einlesen, getCovers)
- Es kann jetzt eine Startseite unter Preferences -> HTTPD -> StartPage individuell festgelegt werden, (Jetzt läuft, Programm, Autotimer, ...)
Telnet
Dieses Modul stellt einen Telnet Server zur Verfügung, um xxv per "telnet localhost portnummer" bedienen zu können.
Manual: http://www.xpix.de/downloads/xxv/doc/TELNET.html
Interface
Dieses Modul stellt einen Telnet Server zur Verfügung, um xxv mit anderen GUIs bedienen zu können.
Manual: http://www.xpix.de/downloads/xxv/doc/INTERFACE.html
Wapd
Dieses Modul stellt einen WapD Server zur Verfügung, um xxv mittels Wap Browser (Mobiltelefon) bedienen zu können.
Zur Zeit noch ohne Funktion.
Manual: http://www.xpix.de/downloads/xxv/doc/WAPD.html
Music
Das MusicPlugin stellt eine Medienbibliothek sowie einen Icecast Streamserver zur Verfügung.
Manual: http://www.xpix.de/downloads/xxv/doc/MUSIC.html
- WebInterface: Viele User hatten ja mehr als 1000 MP3 Titel auf ihrem vdr rumlungern, so das damit das Javascript Konzept absolut nicht damit klar kam. Das neue Interface ist nun reines html und zum Glück auch wesentlich schneller im Seitenaufbau.
- GetCovers: Diese Funktion ist ein echter Leckerbissen, xxv mittels dem neuen Modul Robot einmal am Tag die Covers als ImageFiles aus dem Internet zu saugen. Wir nutzen dafür ein Perl Modul WWW::Mechanize, das auch natürlich zusätzlich installiert werden muss. Dieses Modul emuliert einen Webuser, der ganz normal seinen Suchbegriff(Albumnamen, Erscheinungsjahr) auf der Suchseite des allseits berühmen Musikportals www.allofmp3.com eingibt und dann das Ergebniss nach den entsprechenden Albumcover durchsucht und dieses letztendlich auf den vdr lädt. Diese Cover werden dann im Musicinterface mit angezeigt.
Records
Dieses Plugin stellt alle Aufnahmen übersichtlich dar und erlaubt verschiedene Aktionen auf den einzelnen Records.
Manual: http://www.xpix.de/downloads/xxv/doc/RECORDS.html
- Es werden jetzt die Schnittmarken grafisch in der Recordübersicht dargestellt.
- Viele Eigenschaften des Records sind jetzt editierbar. (Marks, Lifetime, Priorität,...)
- Hulk (Andreas) hat sich dem leidigen und wesentlich unperformanten Weg der Previewbilderstellung angenommen und ein sehr schlankes C Programm nahmens 'vdr2jpeg' geschrieben. Dieses Programm tut im Grunde nichts anderes als Previewbilder bei bestimmten Marken zu erstellen. Dieses wir natürlich auch von xxv unterstützt und kann per "svn co http://bandt.dyndns.org/repos/vdr2jpeg" geholt werden. Nähere Angaben zur Installation könnt ihr in der README Datei des Programmpaketes nachlesen.
- Serien, oder Aufnahmen die in einen Gruppenordner zusammengefasst sind, werden in rlist als Ordner angezeigt.
Config
Das Konfigurations Plugin erlaubt es, während der Laufzeit verschiedene Parameter der Interfaces (HTTP, Telnet, ..) zu verändern und abzuspeichern.
Manual: http://www.xpix.de/downloads/xxv/doc/CONFIG.html
Grab
Grab stellt das Livebild des VDR als JPEG Bilddatei zur Verfügung.
Manual: http://www.xpix.de/downloads/xxv/doc/GRAB.html
- grab ist jetzt in der Lage, zusätzliche Informationen (wie z.B. den Kanal) in das gegrabbte Livebild einzublenden.
Remote
Dieses Plugin stellt eine Fernbedienung und in Verbindung mit Grab auch ein Livebild dar. Somit lässt sich der VDR per Interface rudimentär bedienen.
Manual: http://www.xpix.de/downloads/xxv/doc/REMOTE.html
Status
Status stellt alle Systeminformationen in den Interfaces als übersichtliche Darstellung dar.
Manual: http://www.xpix.de/downloads/xxv/doc/STATUS.html
SVDRP
Dieses Plugin stellt alle telnet Befehle der svdrp Schnittstelle des VDR zur Verfügung.
Manual: http://www.xpix.de/downloads/xxv/doc/SVDRP.html
User
Eine Userauthentifikation, die in allen Interfaces Kennung und Passwort des Users abfragt und eine Levelverwaltung zur Verfügung stellt.
Effektiv kommen bei xxvd drei verschiedene Accountebenen zu tragen :
- Die normale Ebene des Betriebsystems (Linux)
In diesem Account wird xxvd ausgeführt. Der Account wird in der Variable RUNAS in /etc/init.d/xxvd definiert. Damit xxvd innerhalb eines unpriviligierter Accounts ausgeführt werden kann, benötigt dieser Account Leserechte in xxv-Verzeichnis, und Schreibrechte auf die cfg-Datei, pid-Datei, log-Dateien und Schreibrechte im Preview-Verzeichnis des Skins.
- Den Mysql Account
Dieser Zugang wir nur benötigt um die Daten in der mySQL Datenbank anzusprechen, deshalb benötigt er Lese- und Schreibrechte innerhalb der aktiven XXV-Datenbank (mySQL:DATABASE) (GARANT SELECT, INSERT, UPDATE, CREATE, DROP, usw.)
- Und dann gibt es den XXV-Account innerhalb der XXV Benutzerverwaltung.
Er dient nur dazu einzelen xxv-Kommandos freizuschalten oder zu sperren. Momentan ist dies nur in den drei Gruppen gast,user,admin möglich.
- gast, darf Daten wie EPG-Daten oder Aufnahmen betrachten
- user, darf Daten wie Autotimer, Timer verändern
- admin, darf User verwalten
Der Standardzugang nach Neuinstallation hat folgendes Login und sollte über die XXV-Benutzerverwaltung bei Freischaltung in Internet gelöscht oder verändert werden.
Login:xxv Passwort: xxv
Wenn XXV nur im lokalen Netz verwendet wird, kann die XXV-Benutzerverwaltung auch komplett in den Präferenzen abgeschalt werden.
[USER] Active=n
Manual: http://www.xpix.de/downloads/xxv/doc/USER.html
Vtx
Diese Modul zeigt Videotextseiten an.
Manual: http://www.xpix.de/downloads/xxv/doc/VTX.html
Skins installieren
Es ist möglich das Webinterface in einem völlig anderem Aussehen sich darstellen zu lassen. Dafür muss man sich nur den gewünschten Skin herunterladen und das Paket im $SOURCEDIR entpacken:
cd $SOURCEDIR wget http://www.deltab.de/vdr/xxv-stone-0.20.tgz tar zxvf xxv-stone-0.20.tgz
Durch das Entpacken sollte ein neues Verzeichnis mit dem Namen stone mit den Daten des Skin entstanden sein. Anschliessend ruft man das Webinterface auf (http://ip_deines_vdrs:8080) und stellt den neuen Namen des Skin unter Preferences -> HTTPD -> HtmlRoot ein. Nur noch mit SendData den geänderten Skin aktivieren. Und mit eine vollständigen Neuladen der xxv-Webseite im Browser (IE - Taste F5), die Darstellung und den Cache des Browser aktualiseren.
Natürlich kann man auch die Konfigurationsdatei direkt editieren und xxv danach neu starten:
cd $SOURCEDIR nano etc/xxvd.cfg
[HTTPD] Clients=5 HtmlRoot=stone Port=8080
/etc/init.d/xxvd restart
Probleme
- Hab das Passwort für den user xxv geändert. Und komm jetzt nicht mehr an Admin-Rechte.
Die schnelle Lösung für dein Problem, in mysql einloggen und die Usertabelle löschen:
vdr:~# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 to server version: 3.23.49-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use xxv; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> drop table USER; Query OK, 0 rows affected (0.12 sec) mysql> quit
Dann xxv neu restarten:
vdr:~# /etc/init.d/xxvd restart Stop bin/xxvd: xxvd with pid 744 killed Start bin/xxvd: xxvd started with pid 3563.
Danach solltest du dich mit xxv:xxv normal einloggen koennen.
- Es werden keine Previewimages erstellt:
Folgende Checkliste sollte dir helfen:
* stimmt der Pfad zum mplayer in der RECORDS Config * ist der mplayer eingeschaltet unter Records->config->mplayercommand? * richtige Version unter Records->config->mplayercommand? * stimmt der Pfad zum Videoverzeichniss? * ist das Previewverzeichniss schreibbar für xxvd?
Bedenke auch, die PreviewBilder werden im Hintergrund generieret. Das heisst erst nach einer kleinen Weile sind die ersten Previews zu sehen (ca. 2min).
- Es werden keine Previewimages erstellt und in der xxvd_mplayer.log steht:
Unknown option on the command line: jpeg
Ab mplayer-1.0pre6 muss die aufrufende Kommandozeile angepasst werden, (Konfigurieren -> RECORDS -> mplayercommand). Stell einfach den entsprechenden Player ein, der auf deinem System installiert ist. MPlayer1.0pre5 und älter sowie MPlayer1.0pre6 und neuer. Du bekommst die Versionsnummer deines mplayers mit mplayer -v zu sehen:
vdr:~/XXV# mplayer -v MPlayer 1.0pre5-2.95.4 (C) 2000-2004 MPlayer Team CPU: IDT/Centaur/VIA C3 Samuel 2 (WinChip C5B core)/C3 Ezra 600.9 MHz (Family: 6, Stepping: 3) Detected cache-line size is 32 bytes 3DNow supported but disabled CPUflags: MMX: 1 MMX2: 0 3DNow: 0 3DNow2: 0 SSE: 0 SSE2: 0 Compiled for x86 CPU with extensions: MMX ...
- im Logfile taucht folgende Warnung auf:
11 (10305) [03:27:27 03.02.2005] [Fatal] Cannot build telnet initial socket.
Du musst eine andere Portnummer fuer den Telnetserver in der xxvd.cfg festlegen. Den Port den du benutzten willst, ist wahrscheinlich schon belegt.
- im Logfile tauchen ab und zu folgende Warnungen auf:
37 (805) [12:01:34 02/02/05] Can't locate object method "timers" via package "XXV::MODULES::EPG" (perhaps you forgot to load "XXV::MODULES::EPG"?) at /root/XXV/bin/../lib/Template/Stash.pm line 650.
Diese Meldungen können ignoriert werden. Perl versucht per eval eine Methode aufzurufen.
- Beim Starten erscheint folgende Warnung:
Start bin/xxvd: perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "de_DE@euro" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").
Ursache ist, das xxvd zwar entsprechende lokalisierten Texte mitbringt, aber auf dem Rechner keine gleichnamige Systemlokalisierung vorhanden ist. Eine Unterdrücken dieser Meldung geht mit "export PERL_BADLANG=1", aber sinnvoller ist es die Systemlokalisierung in der gewählten Sprache ebenfalls zu installieren.
Links
[1] | www.mysql.org | mySQL |
[2] | xpix.dieserver.de/content | Homepage |
[3] | xpix.dieserver.de/downloads/xxv | Downloads |
[4] | xpix.dieserver.de/content/vdr/xxv/tutorials | Tutorial zum Schreiben eines Plugins für xxv |
[5] | www.deltab.de/vdr/xxv.html | Skins für xxv |
[6] | screenshots | Etwas ältere Screenshoots |
[7] | xxv für ct-vdr | Thread aus vdr-portal |