Autostart-plugin
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.
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
Keywords für alle Media Tester.
TYPE definiert eine Instanz eines Media-Testers. Derzeit stehen folgende Media-Tester zur Verfügung:
DVD | Erkennt Video DVDs mittels libdvdread. |
---|---|
CD | Erkennt Audio CDs mittels libcdio. |
FILE | Mountet Wechselmedien und versucht anhand der Endung den Dateityp zu erkennen. |
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