Autostart-plugin
Zeile 39: | Zeile 39: | ||
Die Konfiguration des Plugins wird in der Datei $VDRCONFIG/conf/plugins/autostart/autostart.conf vorgenommen. Hier werden die Zuordnungen zwischen Medien und aufzurufenden Plugins konfiguriert. | Die Konfiguration des Plugins wird in der Datei $VDRCONFIG/conf/plugins/autostart/autostart.conf vorgenommen. Hier werden die Zuordnungen zwischen Medien und aufzurufenden Plugins konfiguriert. | ||
− | + | Die '''autostart.conf''' ist ähnlich einer Windows ini Datei aufgebaut. Ein Abschnitt wird mit ''[Name]'' eingeleitet, darunter kommen Schlüssel/Werte Paare, getrennt durch ein =. | |
− | + | Der so genannte Media-Tester ist eine Instanz, die es ermöglicht nach bestimmten Medien zu suchen. Innerhalb eines Abschnittes muss der Media-Tester mittels einer "'''TYPE''' = ''tester''" Zeile | |
− | + | spezifiziert werden. Mittels des Schlüsselwortes '''KEY''' werden dann die Aktionen spezifiziert, die ausgeführt werden sollen sollen, wenn der Media-Tester ein entsprechendes Medium detektiert hat. | |
− | + | ||
− | + | === Schlüsselwörter für alle Media Tester. === | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
Die folgenden zwei Schlüsselwörter müssen in jedem Abschnitt enthalten sein: | Die folgenden zwei Schlüsselwörter müssen in jedem Abschnitt enthalten sein: | ||
{| class ="wikitable" | {| class ="wikitable" | ||
Zeile 89: | Zeile 70: | ||
Die Zeile "''keys = @externalplayer OK''" bedeutet, starte Plugin externalplayer und sende die OK Taste. | Die Zeile "''keys = @externalplayer OK''" bedeutet, starte Plugin externalplayer und sende die OK Taste. | ||
− | + | === Schlüsselwörter für den FILE-Media Tester === | |
{| class ="wikitable" | {| class ="wikitable" | ||
Zeile 102: | Zeile 83: | ||
|Generiert einen symbolischen Link vom automatisch gemounteten Medium zu einem fixen Verzeichnis. In der Sektion [MP3] zum Beispiel wird für einen USB-Stick, der z.B. automatisch nach /media/USB-Stick gemountet wird ein Link nach /video/mount/mp3 angelegt. | |Generiert einen symbolischen Link vom automatisch gemounteten Medium zu einem fixen Verzeichnis. In der Sektion [MP3] zum Beispiel wird für einen USB-Stick, der z.B. automatisch nach /media/USB-Stick gemountet wird ein Link nach /video/mount/mp3 angelegt. | ||
|} | |} | ||
+ | |||
+ | === GLOBAL Abschnitt === | ||
+ | |||
+ | Hier gibt es das Schlüsselwort '''FILTERDEV'''. Hier sollte das root devices und alle devices eingetragen werden, die nicht automatisch geprüft werden. | ||
+ | |||
+ | ===Beispiel für eine autostart.conf=== | ||
+ | |||
+ | Eine Audio-CD soll mit dem CD-Player Plugin abgespielt werden, eine Video-DVD via externalplayer-Plugin, ein USB-Stick oder Wechselplatte mit MP3-Files sollte mit dem Music Plugin abgespielt werden und bei Grafik-Dateien soll das Image Plugin verwendet werden. | ||
+ | <pre>; The global section contains definitions global to all detectors | ||
+ | [GLOBAL] | ||
+ | ; exclude the given devices from media detection, e.g. the root hard drives | ||
+ | filterdev = sda sdb hda hdb | ||
+ | [DVD] | ||
+ | type = dvd ; DVD Media tester | ||
+ | keys = @externalplayer OK | ||
+ | [CD] | ||
+ | type = cd ; CD Media tester | ||
+ | keys = @cdplayer ; Start CD-Player plugin | ||
+ | [MP3] | ||
+ | type = file ; File Media tester | ||
+ | files = mp3 ; Suffix to match | ||
+ | keys = @music YELLOW ; If a file ending with .mp3 is found, start music plugin | ||
+ | linkpath = /video/mount/mp3 | ||
+ | [IMG] | ||
+ | type = file ; File Media tester | ||
+ | files = jpg gif bmp ; If a file ends with .jpg .gif or .bmp, start image plugin | ||
+ | keys = @image YELLOW DOWN RED RED | ||
+ | linkpath = /video/mount/image</pre> | ||
==== Beispielkonfiguration für das externalplayer-Plugin ==== | ==== Beispielkonfiguration für das externalplayer-Plugin ==== |
Version vom 23. Januar 2011, 13:27 Uhr
Inhaltsverzeichnis |
Beschreibung
Autor: Ulrich Eckhardt
Ermöglicht das automatische Starten von Plugins beim einlegen von Wechselmedien. Im Gegensatz zum mediad-Plugin ist man nicht auf vorkompilierte Plugins angewiesen, es lassen sich beliebige Plugins starten und ggf. Tastendrücke automatisch erzeugen.
Softwareanforderungen
- vdr >= 1.6
- libcdio >= 0.8.0
- libdvdread >= 4.1.0
- Dbus
- Devicekit-Disks oder besser UDisk
Installation
Das Plugin wird wie üblich installiert.
Konfiguration
Die Konfiguration des Plugins wird in der Datei $VDRCONFIG/conf/plugins/autostart/autostart.conf vorgenommen. Hier werden die Zuordnungen zwischen Medien und aufzurufenden Plugins konfiguriert.
Die autostart.conf ist ähnlich einer Windows ini Datei aufgebaut. Ein Abschnitt wird mit [Name] eingeleitet, darunter kommen Schlüssel/Werte Paare, getrennt durch ein =.
Der so genannte Media-Tester ist eine Instanz, die es ermöglicht nach bestimmten Medien zu suchen. Innerhalb eines Abschnittes muss der Media-Tester mittels einer "TYPE = tester" Zeile spezifiziert werden. Mittels des Schlüsselwortes KEY werden dann die Aktionen spezifiziert, die ausgeführt werden sollen sollen, wenn der Media-Tester ein entsprechendes Medium detektiert hat.
Schlüsselwörter für alle Media Tester.
Die folgenden zwei Schlüsselwörter müssen in jedem Abschnitt enthalten sein:
Schlüsselwort | Beschreibung | ||||||
---|---|---|---|---|---|---|---|
TYPE | Definiert die Instanz eines Media-Testers. Derzeit stehen folgende Media-Tester zur Verfügung:
| ||||||
KEY | Definiert das zu startende Plugin und die auszuführenden Tasten, wenn ein Medium eingelegt und erkannt wurde. Ein @ am Anfang des Namens kennzeichnet das zu startende Plugin. |
Die Zeile "keys = @externalplayer OK" bedeutet, starte Plugin externalplayer und sende die OK Taste.
Schlüsselwörter für den FILE-Media Tester
Keyword | Beschreibung |
---|---|
FILES | Datei-Endungen die der Media-Tester prüfen soll. |
LINKPATH | Generiert einen symbolischen Link vom automatisch gemounteten Medium zu einem fixen Verzeichnis. In der Sektion [MP3] zum Beispiel wird für einen USB-Stick, der z.B. automatisch nach /media/USB-Stick gemountet wird ein Link nach /video/mount/mp3 angelegt. |
GLOBAL Abschnitt
Hier gibt es das Schlüsselwort FILTERDEV. Hier sollte das root devices und alle devices eingetragen werden, die nicht automatisch geprüft werden.
Beispiel für eine autostart.conf
Eine Audio-CD soll mit dem CD-Player Plugin abgespielt werden, eine Video-DVD via externalplayer-Plugin, ein USB-Stick oder Wechselplatte mit MP3-Files sollte mit dem Music Plugin abgespielt werden und bei Grafik-Dateien soll das Image Plugin verwendet werden.
; The global section contains definitions global to all detectors [GLOBAL] ; exclude the given devices from media detection, e.g. the root hard drives filterdev = sda sdb hda hdb [DVD] type = dvd ; DVD Media tester keys = @externalplayer OK [CD] type = cd ; CD Media tester keys = @cdplayer ; Start CD-Player plugin [MP3] type = file ; File Media tester files = mp3 ; Suffix to match keys = @music YELLOW ; If a file ending with .mp3 is found, start music plugin linkpath = /video/mount/mp3 [IMG] type = file ; File Media tester files = jpg gif bmp ; If a file ends with .jpg .gif or .bmp, start image plugin keys = @image YELLOW DOWN RED RED linkpath = /video/mount/image
Beispielkonfiguration für das externalplayer-Plugin
Bei dieser Konfiguration gibt es nur einen Menüpunkt, entsprechend ist es ausreichend nur einen OK-Tastendruck zu simulieren.
# Externalplayer-plugin example configuration. { Command = "xine -L --stdctl -c /video/etc/xine.conf dvd://"; MenuEntry = "Xine DVD"; OutputMode = extern; InputMode = slave; BlockMenu = true; # This makes sense, beause an invisible main menu would block all the keys. vdrKeyUp = specialKeyPageUp; # See below for a full list of "special keys." vdrKeyDown = specialKeyPageDown; vdrKeyLeft = specialKeyLeft; vdrKeyRight = specialKeyRight; vdrKeyOk = specialKeyReturn; vdrKeyBack = noKey; vdrKeyRed = noKey; vdrKeyGreen = "<"; vdrkeyyellow=">">">"; .... }
Beispielkonfiguration für das music-Plugin
Die musicsources.conf sollte für obiges Beispiel in der ersten Zeile folgenden Eintrag haben:
/video/mount/mp3;USB-Stick;0;*.mp3/*.ogg/*.wav/*.MP3/*.OGG/*.WAV/*.m3u/*.M3U/*.pls/*.PLS
Beispielkonfiguration für das image-Plugin
Ein etwas komplexeres Beispiel für das Image-Plugin:
/video/images; Bilder;0; *.jpg *.jpeg *.png *.tif* *.bmp /video/mount/image; USB; 0; *.jpg *.jpeg *.png *.tif* *.bmp
Parameter
Parameter (kurz) | Parameter (lang) | Beschreibung |
---|---|---|
-c <directory> | --configdir=<directory> | Konfigurationsverzeichnis (derzeit nur für Standbild) |
Probleme
Um Probleme und Bugs zu Melden ist es hilfreich möglichst viele Ansatzpunkte zu haben. Entsprechend sollte dann der vdr mittels der Kommandozeilenoption -l 3 möglichst viele Debugging-Infos ins syslog loggen.
Bei Abstürzen ist ein Backtrace äußerst hilfreich. Dazu muß zumindest das Plugin mit Debugging-Informationen compiliert werden. Der Compiler muß mit der -g Option aufgerufen werden. In der Datei Make.config sollte dann folgendes stehen (noch besser ist es, das -O2 noch durch ein -O0 zu ersetzten):
### The C compiler and options: CC = gcc CFLAGS = -g -O2 -Wall CXX = g++ CXXFLAGS = -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses
Dann in einer Shell mittels
ulimit -c unlimited
das schreiben eines Core-Files erlauben und aus der Shell den VDR starten. Nach dem Absturz gibt es dann eine Datei "core", die man mit folgendem Shell-Script auswerten kann:
#!/bin/sh gdb $1 --core $2 --quiet --batch -ex "thread apply all bt full" -ex "where" -ex "quit"
Das erste Argument ist das VDR-Executable, das zweite Argument das Core-File. Diese Ausgabe kann man dann dem Bugreport noch anhängen.
Aktuelle Version(en)
Mercurial Repository
hg clone http://hg.uli-eckhardt.de/autostart