Hallo,
voller Stolz (auch wenn es nachher großer Misst ist ) präsentiere ich mein erstes Plugin: DVDSwitch in der Version 0.0.1.
Gleich vorne weg: Es ist überhaupt mein erstes größeres C basiertes Projekt. Sollte der Code also absoluter Müll sein, weil dort viele Fehler (trotz intensiver Tests) drin stecken, nehme ich das Projekt wieder runter. Aber erst mal will ich es Euch zum testen und spielen anbieten.
Das Plugin stellt im Grunde eine Parallelentwicklung zum genialen DVDSelect Plugin da. Nicht, dass das DVDSelect schlecht wäre oder so. Ganz im Gegenteil, es hat sich ja hier schon sehr bewährt und ich habe es quasi lieben gelernt. Da mir aber doch so einige Dinge fehlten, die ich gerne umgesetzt haben wollte, habe die Gelegenheit genutzt, das Thema komplett neu umzusetzen.
Was macht es also: DVD-ISO Images und Verzeichnisse mit video-ts Struktur zum Abspielen mit dem DVD-Plugin anbieten.
Hier Konkret die Möglichkeiten/Einstellungen:
- Es gibt 3 Anzeigemodi zum Darstellen der Images:
[list=1] - Modi 1 -> Alle Images ...
macht nichts anderes als das DVDSelect-Plugin auch ... alle Images aus einem im Setup angegeben Verzeichnis anzeigen inkl. Unterverzeichnisse - Modi 2 -> Alle mit Kategorien ...
Hier werden ebenfalls alle Images aufgelistet, aber sortiert nach Kategorien.
Kategorien gibt es da 2 Typen. Der eine ist eine Sortierung nach Image-Typ. ... also, je nach dem ob es ein "ISO" Image ist, oder ein Verzeichnis mit entsprechender video_ts Struktur.
Für den anderen Typ werden die Verzeichnisse selbst als Katergorie heranagezogen. Das ist besonders dann interessant, wenn die Images in Verzeichnisen sortiert sind, die bspw. Film-Genres entsprechen. Unterordner werden natürlich berücksichtigt. - Modi 3 -> Verzeichnis für Verzeichnis ...
ist in etwa das, was auch das Image-Plugin bzw. Mplayer-Plugin machen. Es werden also alle Verzeichnisse zum "hineinnavigieren" angeboten und immer nur die Images angezeigt, die im entsprechenden Ordner vorhanden sind.
[/list=1] - Alle Modi bieten unterschiediche Einstellungsmöglichkeiten:
[list=1] - Alle Modi ... alphabetische Sortierung
- Modi 2 + 3 ... ausblenden von leeren Verzeichnissen bzw. Kategorien
- Modi 2 ... Das springen via Links/Rechts-Taste von Kategorie zu Kategorie an Stelle seitenweisem Sprung
[/list=1] - Wer sich die Optik noch individueller Einstellen will findet (je nach Modi) unter "Detailierte Anzeige Einstellung" darüberhinaus:
[list=1] - Blende ISO Erweiterung aus ... sagt eigentlich was es macht: In der OSD Darstellung wird das ".iso" bei solchen Images diese Erweiterung nicht mir angezeigt
- Zeige Image-Typ Spalte ... Wer mag, kann sich hinter den Image-Namen noch den Typ als einzelne Spalte anzeigen lassen (also ISO oder Verzeichnis)
- Breite für Image-Spalte ... steht im Zusammenhang mit dem vorherigen Punkt. Wer sich die Typ-Spalte anzeigen lässt, kann mit dieser Breitenangabe bestimmen, ab welcher Stelle die Spalte beginnen soll.
- Sonderzeichen ändern ... hier können Buchstabenpaare (das ist wichtig, das es Paare sind) angegeben werden. Der angezeigte Name des Images im OSD wird dann so bearbeitet, das jeweils das erste Zeichen durch das zweite ersetzt wird ... macht sich gut, wenn bspw. Unterstriche im Namen enthalten sind
- Zeichen für Kategorie Trennlinie ... die Kategorien im Modi 2 werden ähnlich dargestellt wie die Kategorien in der Kanal-Liste ... wer mag kan den derzeit eingestellten Bindestrich durch jedes beliebige Zeichen ersetzen
- Anzahl Zeichen vor Kategorie Name ... hier kann beeinflusst werden, wie viele Zeichen vor dem eigentlichen Kategorie Name dargestellt werden sollen
- Leerzeichen vor/nach Katergorie Name ... ja, sagt eigentlich alles
- Trenntext für Subkategorien ... Sollten Verzeichnisse als Kategorientrenner hernagezogen werden und es gibt quasi Unterordner als Unterkategorie, so kann hier der Text eingestellt werden, der als optischer Trenner benutzt werden soll
[/list=1] - Wahl des Namens im Hauptmenü ...
Wer mag, kann den angezeigten Namen "DVDSwitch" hier ändern ... in was immer er auch will. - worauf ich ganz stolz bin, es aber noch als "Experimentel" bezeichnen will ist die Tatsache, das nun keinerlei Angabe über das DVD-Device oder org.DVD Device mehr gemacht werden muss. Wenn alles richtig läuft, sollte das Plugin dem DVD-Plugin ein eignes Device für die Dauer des Abspielens des Images mitteilen und nach beenden des Films sofort wieder das originale übergeben ... das heißt, der "Link" wird nach dem ansehen eines Filmes automatisch wieder zurückgesetzt (nicht erst nach manuellem anschieben bzw. nach Beenden des Plugins etc.). Bei mir hat das bisher supi geklappt, ich hoffe bei Euch auch
- Die Funktionen "lese DVD", "schreibe DVD" und "lösche DVD" sind auch enthalten ... und zwar in ähnlicher Funktionsweise wie bei dem DVDSelect Plugin. Fürs lesen und schreiben müssen also Shell-Scripte ran ... es können die bisherigen genutzt werden. Die Angabe, wo das Plugin diese Scripte findet, sind nun, wie im Wiki als Wunsch aufgeführt, als Parameter zu übergeben. Die Parameter werden dann unten aufgelistet
- Dem Writescript wird nach wie vor als erster Parameter das Image inkl. Pfad übergeben. Dazu in Folge noch: Name, wie er im OSD steht, Typ des Images (hier: IMAGE oder DIR als Text)
- Dem Readscript wird als erster Parameter der Imagepfad übergeben, gefolgt vom User angegeben Name, dem DVD-Device sowie, als was das Image eingelesen werden soll, sprich "IMAGE" oder "DIR" ... das kann man nebst Namen einstellen
Ich hoffe ich habe erst mal nichts vergessen, außer die Parameter (kommen gleich). Ich bezeiche das ganze mal noch doll als Beta. Habe mich ehrlich bemüht den Quellcode immer und immer wieder nach Fehler zu durchforsten. Ich hoffe auch alle gefunden zu haben.
Sollte das Dingen bei einem nicht ordentlich laufen, so kann via Parameter eine Debug-Logdatei angegeben werden, in der dann das Plugin allerhand Zeugs schreibt. Hier bitte ich auch eine sperate Datei zu nehmen (und kein Syslog o.ä.), da a) die Menge recht groß ist und b) es sich so leichter verschicken und lesen lässt.
So, nun die Parameter:
-D LOGFILE --debug=LOGFILE ... hier bitte mit Pfad das zu verwendende Logfile angeben
-r SCRIPT --readscript=SCRIPT ... hier bitte mit Pfad das zu verwendende DVD-Readscript angeben
-w SCRIPT --writescript=SCRIPT ... hier bitte mit Pfad das zu verwendende DVD-Writescript angeben
Jo, das war erst mal alles. Ich hoffe, das alles supi klappt und ich mit dem Teil hier nicht den Preis des schlechtesten Coders bekomme
Bye
Andreas
Hier der Downloadlink:
DVDSwitch 0.0.1
Und hier noch ein paar Screen's:
[Blockierte Grafik: http://vdr.schmidtie.de/OSD_Modi1.jpg]
Anzeige Modi 1
[Blockierte Grafik: http://vdr.schmidtie.de/OSD_Modi1_TypeCol.jpg]
Anzeige Modi 1 mit Typ-Spalte und ohne Manipulation des OSDNamen
[Blockierte Grafik: http://vdr.schmidtie.de/OSD_Modi2_Type.jpg]
Anzeige Modi 2 -> mit Typ als Kategorie
[Blockierte Grafik: http://vdr.schmidtie.de/OSD_Modi2_Dir.jpg]
Anzeige Modi 2 -> mit Verzeichnissen als Kategorie
[Blockierte Grafik: http://vdr.schmidtie.de/OSD_Modi2_Dir_withEmpty.jpg]
Anzeige Modi 2 -> mit Verzeichnissen als Kategorie und Anzeige aller leeren Kategorien/Verzeichnisse
[Blockierte Grafik: http://vdr.schmidtie.de/OSD_Modi3.jpg]
Anzeige Modi 3
[Blockierte Grafik: http://vdr.schmidtie.de/OSD_Modi3_TypeCol.jpg]
Anzeige Modi 3 mit Typ-Spalte