Tjod Posted October 26, 2008 Share Posted October 26, 2008 So nach dem ich lange genug behauptet habe das man die Belegung der Farbtasten nicht ändern kann hier die Erklärung wie es doch geht. Ganz direkte geht es nicht aber mit einem Umweg über Command.vbs. Da ich eigentlich keine Ahnung von VBS habe und es selber auch nicht brauche die Änderungen nur für den Fall das kein OSD Seite geöffnet ist. Zuerst braucht man einen Inputbefehle mit einer ActionID von 20480 oder größer. Durch die wird Command.vbs aufgerufen. Dazu erstmal die OSD-Tastaturbelegung-geändert.remote (aus dem Anhang) über Optionen > Eingabe > Import laden und die Farbtasten für die neuen Befehle (ganz unten) anlernen. Dann muss noch die Command.vbs aus dem Anhang nach ...\DVBViewer\Scripts\ kopieren. sub main(Command) Select Case Command 'OSD-Rot (geändert) Case 30500 if osd.isVisible Then SendCommand(74) Else 'OSD-Show Weather SendCommand(8206) End if 'OSD-Grün (geändert) Case 30501 if osd.isVisible Then SendCommand(75) Else 'OSD-Show Timeline SendCommand(8201) End if 'OSD-Gelb (geändert) Case 30502 if osd.isVisible Then SendCommand(76) Else 'OSD-Show Channels SendCommand(8199) End if 'OSD-Blau (geändert) Case 30503 if osd.isVisible Then SendCommand(77) Else 'nicht geändert SendCommand(77) End if Case Else osd.showInfoinTVpic "No action in th Command.vbs for this Action ID.",1000 End Select end sub Sollte euch die neue Belegung nicht gefallen könnt ihr einfach im Command.vbs nach Else einfach die ActionID SendCommand() ändern. Alle möglichen ActionIDs findet ihr in der actions.ini im DVBViewer Verzeichnis. OSD_Tastaturbelegung_ge_ndert.zip Quote Link to comment
Pino72 Posted October 27, 2008 Share Posted October 27, 2008 Hi Tjod, kenn mich leider mit vbs und generell programmierung null aus...bin schon froh dass ich etwas hinter die skin programmierung gekommen bin. Wenn ich das richtig verstanden habe kann ich ohne dass ein OSD eingeblendet ist die Farbtastenbelegung mit deinem script permanent ändern....werde das mal testen. Es gibt eine Funktion die mir beim DVBViewer sehr fehlt und zwar ist das mit einer Taste einfach die Kanalliste (und zwar die FAVORITENSENDERLISTE) einzublenden und dann einfach per hoch/runter einen Sender an zu fahren und dann mit enter aus zu wählen! Wieso gibt es diese Funkiton nicht ??? Mit wlechem Aufruf bekomme ich diese einfache Favoritenliste mit den genannten Möglichkeiten? Kann man eigentlich generell NEUE Seiten zu den vorhandenen ######.xml hinzufügen? Also z.b. eben eine einfache schnörkellose Liste der Sender? Danke schon mal. Quote Link to comment
Tjod Posted October 27, 2008 Author Share Posted October 27, 2008 Es gibt eine Funktion die mir beim DVBViewer sehr fehlt und zwar ist das mit einer Taste einfach die Kanalliste (und zwar die FAVORITENSENDERLISTE)Ich habe hier die OSD-Gelb auf die Senderliste umgelenkt. OSD-Gelb ruft im Normalfall die OSD-Favorietenliste auf. Dazu musst du also nichts ändern.Hier mal eine Erklärung was die Zeilen machen: 'OSD-Gelb (geändert) = nur ein Kommentar alles in einer Zeile nach den ' wird Ignoriert. Case 30502 = wenn die Taste mit der ActionID 30502 (siehe Inputbefehle) gedrückt wird werden die nachfolgenden Befehle abgearbeitet. if osd.isVisible Then = wenn das OSD sichtbar ist führe die nachfolgenden Befehle aus SendCommand(76) = sende Befehl OSD-Gelb an den DVBViewer Else = wenn das OSD nicht sichtbar ist führe die nachfolgenden Befehle aus 'OSD-Show Channels = Kommentar SendCommand(8199) = sende Befehl zeige OSD-Senderliste an den DVBViewer end if = ende der if Unterscheidung dann einfach per hoch/runter einen Sender an zu fahren und dann mit enter aus zu wählen! Wieso gibt es diese Funkiton nicht ???Das geht doch, sowohl in der Senderliste als auch in der Favoriten liste. Nur wenn in der Favoriten Liste Ordner Verwendet werden ist ein Klick mehr nötig. Ich bevorzuge eine Sortierte Senderliste und nutze keine Favoriten. Kann man eigentlich generell NEUE Seiten zu den vorhandenen ######.xml hinzufügen?Nur über Plugins. Bitte versucht in Zukunft in Themen Spezifischen Topic beim Thema zu Beinen und alle was nicht dazu gehört in einem anderen Topic zu schreiben. Quote Link to comment
nuts Posted October 31, 2008 Share Posted October 31, 2008 auf die gefahr hin ebenfalls am thema vorbeizuschiessen ... ich frage mich durch welche actionen bestimmte vb skripte gestartet werden können? hier ists der input befehl > 20480 soweit ists klar. können auch bestimmte "ereignisse" im DVBViewer scripte auslösen? ich denke da z.b. an das starten einer aufnahme oder so. Quote Link to comment
Moses Posted October 31, 2008 Share Posted October 31, 2008 Es gibt spezielle scripte, die zu start und ende einer Aufnahme ausgeführt werden. Da sollten dummy-Versionen von auch schon im Scripte Ordner liegen (der mittlerweile auch ins Konfigurationsverzeichniss gewandert ist). Quote Link to comment
nuts Posted October 31, 2008 Share Posted October 31, 2008 hm okay. die inputbefehle und die dummy skripte im skripte ordner sind dann die einzigen möglichkeiten ein skript über die interne skript engine einzusetzen? für alles andere müsste ich dem com server nach events abhören und dementsprechend über den com port antworten? vbs sprache ist ja gar nicht so schwer - nur den aufbau der internen skript engine verstehe ich kein bisschen Quote Link to comment
Moses Posted October 31, 2008 Share Posted October 31, 2008 COM Interface != Com Port... das COM Interface könntest du auch über ein "unabhängiges" vbs Script nutzen, also über ein Script, was du selber startest (oder halt z.B. durch den Autostart oder Taskplaner). Ein Beispiel für so ein Script wäre das epgupdate script, was hier im Forum noch irgendwo rumgeistern müsste... das hat auch nix mit der internen Scriptengine zu tun, sondern nutz rein das COM Interface. Im Prinzip holt man sich für die Benutzung des COM Interfaces nen Objekt ab, über das man dann in Verbindung mit dem DVBViewer steht. Wenn man schonmal Objektorientiert programmiert hat, ist das eigentlich recht simpel. Was die interne Engine genau kann, weiß ich leider auch nicht... aber soweit ich das bisher verstanden hab, ruft sie nur zu gegebenen Anlässen die scripte mit entsprechendem Namen auf. Quote Link to comment
Tjod Posted October 31, 2008 Author Share Posted October 31, 2008 command.vbs wird durch eine AktionID ≦20480 aufgerufen. sub main(command) osd.showInfoinTVpic "command.vbs "& command,1000 end sub startrec.vbs beim Aufnahme beginn http://www.DVBViewer.info/forum/index.php?...st&p=203217 stoprec.vbs beim Aufnahme ende channelchange.vbs bei jedem Senderwechsel Dim ChanLabel sub main(ChannelNr) ChanLabel = none ChanLabel = ChannelManager(ChannelNr).Name osd.showInfoinTVpic "channelchange.vbs" & ChanLabel & ChannelNr ,1000 End Select end sub playlist.vbs wird bei jedem neuen Titel der aus einer Playlist wiedergegeben wird aufgerufen. sub main(filename) osd.showInfoinTVpic "playlist.vbs " & filename,1000 end sub windowload.vbs wir bei jedem ersten Öffnen eines OSD Fensters angezeigt. Und dann gibt es noch starttune.vbs aber das ist alles auch in "DVBViewer COM Interface.chm" beschrieben. Das dazu von mir auch wenn jetzt die Diskusion schon etwas weiter ist Und epgupd.vbs gibtz es hier Quote Link to comment
nuts Posted October 31, 2008 Share Posted October 31, 2008 (edited) aha also der com server (port?) sendet um empfängt ja events (darauf basiert z.b. die fernsteuerung über eventghost). ich dachte, dass diese events vielleicht die skripte der internen engine starten können. die interne engine beschränkt sich also auf die in der "DVBViewer COM Interface.chm" beschriebenen vb skripte - bleibt also der umweg über die gesendeten events ein externes skript aufzurufen, welches dann wieder befehle an den DVBViewer sendet? edit \ hilft jetzt bei dem problem im "vorschläge und ideen forum" aber wie ich jetzt gelesen habe leider auch nicht, da der DVBViewer beim beenden der wiedergabe kein event sendet *grml* Edited October 31, 2008 by nuts Quote Link to comment
Devastation Posted November 23, 2008 Share Posted November 23, 2008 Hallo, danke an Tjod für diesen Super Tip. Ich würde aber gerne noch weiter gehen. Leider habe ich keine Ahnung von VB. Anhand dieses Skripts und anderer die ich hier gefunden habe und durch lesen in der Com-Anleitung habe ich einfach mal versucht meine Lösung zu erarbeiten. Leider habe ich da noch Probleme. Was ich brauche: die OSD-left/right Tasten nicht nur doppelt sondern mehrfach belegen. im TV-Modus Zoom up/down im OSD-Modus OSD-left/right beim Abspielen einer DVD/Videos Kapitel vor/zurück Ich hab das folgendermaßen im Skript eingegeben: 'OSD-Left (geändert) Case 30004 if osd.isVisible Then SendCommand(2000) else if IsPlaying=true Then SendCommand(112) 'Previous (Kapitel zurück) Else SendCommand(105) 'Zoom Down End if End if 'OSD-Right (geändert) Case 30005 if osd.isVisible Then SendCommand(2100) else if IsPlaying=true Then SendCommand(113) 'Next (Kapitel vor) Else SendCommand(104) 'Zoom Up End if End if Jetzt funktioniert der gewünschte OSD-Modus und das Zoom im TV-Modus. Beim Abspielen einer DVD Datei habe ich aber auch die Zoomfunktion anstatt Next/previous. Im der Com Hilfe finde ich zwar das isVisible das Tjod hier verwendet aber nicht wieso es hier osd.isVisible heissen muss. (Also die Logik erkenn ich schon, es geht ja ums OSD aber woher diese Info? Ich nehme mal an ich brauche für IsPlaying auch so einen vorderen Teil. Aber welchen? Oder bin ich hier komplett auf dem Holzweg? Und noch eine Frage: gibt es eine Möglichkeit für osd.isVisible damit dies nur für das gesamte OSD ohne Mini-Epg gilt? mit der Bitte um Hilfe Devastation Quote Link to comment
Devastation Posted November 23, 2008 Share Posted November 23, 2008 Hallo, habe im Forum noch Girder vbs durchgesehen und habe das gefunden: Du könntest in dem girder plugin script direkt isMediaplayback abfragen. Den Playstate kram muss ich mal genauer anschauen. Das ganze ist durch die vielen verschiedenen quellen (media, timeshift, dvd, dvb) recht komplex und manchmal etwas schwierig intern nachzuvollziehen. Ich vermute der Fehler liegt auf der DVBViewer seite. Wie gesagt, ich untersuche das mal. Habe ich auch versucht (isMediaplayback) und jetzt klappt das bei den DVD Dateien mit der Umschaltung. Das wo ich noch Hilfe bräuchte wäre eine Unterscheidung zwischen MiniEPG und den restlichen OSD. Danke Devastation Quote Link to comment
Tjod Posted November 30, 2008 Author Share Posted November 30, 2008 Habe mal einen Wiki Artikel dazu erstellt. http://wiki.DVBViewer.info/index.php/Comma...gung_von_Tasten Quote Link to comment
nuts Posted January 23, 2009 Share Posted January 23, 2009 noch ein nachtrag von mir bezüglich eventghost. dort können die angelegten inputbefehle auch eingebunden werden. unter C:\Program Files\EventGhost\plugins\DVBViewer (bez. dem entsprechenden pfad) findet ihr eine .py datei. diese mit dem editor öffnen und bis zu den schon angelegten befehlen scrollen (dürfte die ganze actions.ini sein). am ende einfach den im DVBViewer angelegten namen eures eigenen befehls und die entsprechende actionID in gleicher form wie die bisherigen anlegen. so sieht das dann aus z.b. aus (die letzten beiden sind von mir): ("DVDMenu", "DVD Menu", None, 8246), ("ShutdownCard", "Shutdown Card", None, 12327), ("ShutdownMonitor", "Shutdown Monitor", None, 12328), ("StopGraph", "Stop Graph", None, 16383), ("Exit", "Exit", None, 12294), ("Test", "Test", None, 30500), ("OSD-Gelb","OSD-Gelb", None, 30502), beim nächsten neustart von eventghost kann man dann den eigenen befehl dort als marko hinzufügen und eventghost sendet den entsprechenden com-befehl an den DVBViewer. Quote Link to comment
Devastation Posted August 27, 2009 Share Posted August 27, 2009 noch ein nachtrag von mir bezüglich eventghost. und noch ein Nachtrag zu Eventghost. Das mit dem editieren der py Datei ist nicht mehr nötig: http://de.DVBViewer.tv/wiki/EventGhost#Send_Action Quote Link to comment
anjoku Posted December 21, 2010 Share Posted December 21, 2010 Hallo, ich möchte gerne auch die OSD Tasten umbelegen. Wie hier beschrieben Wiki Command.vbs. Die command.vbs habe ich auch in scrips erstellt erstellt. Zur Steuerung benutze ich Eventghost. Was ich aber jetzt nicht verstehe ist der Absatz: Hier ein Beispiel, wo die OSD-Farbtasten in Abhängigkeit von OSD-Seiten und die Pfeiltasten in Abhängigkeit von Timeshift und Dateiwiedergabe angepasst werden. Dazu müssen die entsprechenden Tasten auf Inputbefehle mit folgenden ActionIDs anlernent werden:OSD-Rot = ActionID 30500 OSD-Grün = ActionID 30501 OSD-Gelb = ActionID 30502 OSD-Blau = ActionID 30503 OSD-Links = ActionID 30504 OSD-Rechts = ActionID 30505 OSD-aufwärts = ActionID 30506 OSD-abwärts = ActionID 30507 Müssen die ActionIDs, obwohl ich Eventghost benutze, trotzdem im DVBViewer angelernt werden? Oder Erstelle ich die ActionIDs alleine in Eventghost? In Eventghost gibt es ja bereits Aktionen für die OSD Tasten. Bleiben die unverändert? Kann jemand helfen? Viele grüße, Andre Quote Link to comment
nuts Posted December 21, 2010 Share Posted December 21, 2010 Müssen die ActionIDs, obwohl ich Eventghost benutze, trotzdem im DVBViewer angelernt werden? Nein. Oder Erstelle ich die ActionIDs alleine in Eventghost? Du erstellst in EG Befehle mit den ActionIDs, die auch im command.vbs Skript abgearbeitet werden sollen. In Eventghost gibt es ja bereits Aktionen für die OSD Tasten. Bleiben die unverändert? Die bleiben unverändert und werden eben einfach nicht zugeordnet. Bsp: => "custom_osd-red" Befehl mit der ActionID 30500 in EG erstellen und einem Event zuordnen (die rote Taste auf der Fernbedienung) => Der Orginalbefehl "OSD-Red" wird in EG nicht zugeordnet. => command.vbs erstellen um auf die ActionID 30500 zu reagieren. 'custom_osd-red Case 30500 if osd.isVisible Then ' dein Code else ' dein Code End if usw. Quote Link to comment
anjoku Posted December 22, 2010 Share Posted December 22, 2010 vielen Dank nuts. das ist mir gestern noch den ganzen abend durch den Kopf gegangen und so hatte ich es mir dann auch erklärt, und von dir kommt jetzt die Bestätigung so gut erklärt. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.