Headhunter3000 Posted October 10, 2010 Share Posted October 10, 2010 Hi, folgender Optimierungsvorschlag für die optionale Timeshift-Warnung: Bisher kann man die Timeshift-Warnung bei Senderwechsel in den Optionen unter "Aufnahme-Optionen -> Timeshift -> Einstellungen -> Warnung bei Senderwechsel wenn Timeshift aktiv ist" ein- und ausschalten. Wenn man jetzt zeitgleich "Automatischer Timeshift-Start" aktiviert hat, führt die aktivierte Timeshift-Warnung dazu, dass bei jedem Zappen immer die Warnmeldung bestätigt werden muss. Das ist nicht gerade komfortabel beim Durchzappen. Viel besser wäre es doch, wenn diese Warnung nur kommen würde, wenn man tatsächlich bereits im Timeshiftbuffer zurückgespult hat und nicht das Live-Signal, sondern tatsächlich versetzt guckt - quasi nach dem Motto "Hey, es gibt noch 'Material', dass nach dem Umschalten verloren geht." - beim Umschalten eines Live-Signals besteht diese Gefahr ja nicht. So ein Verhalten kenne ich auch von meinem letzten DVB-S-Hardware-Receiver. Eine Option "nur bei Nicht-Live-Signal" o.ä. unterhalb der Timeshift-Warnungs-Checkbox könnte dieses neue Verhalten optional einstellbar machen. Gruß, Headhunter Quote Link to comment
Tüftler Posted October 10, 2010 Share Posted October 10, 2010 Es gibt ja aber auch die Möglichkeit im Nachhinein die getimeshifteten Daten in ein Recording umzuwandeln was sich ohne Warnung beim Umschalten dann erledigt hätte. Manchmal schalte ich auch Timeshift an, mache den TV aus (lasse einfach weiterlaufen) und springe später erst zurück nachdem der TV wieder angeschaltet wurde. In so einem Falle würde mir ein Umschalten die Timeshiftaufnahme dann versauen. Quote Link to comment
Headhunter3000 Posted October 10, 2010 Author Share Posted October 10, 2010 Hi, deshalb das Ganze ja als zusätzliche Option. So kann es sich jeder einstellen, wie er mag. Beim Szenario (TV aus und später einschalten) weiß man ja, dass man x Stunden davor aufgenommen hat - man spult ja sofort zurück (-> wie Videorecorder). Beim versetzten Fernsehen vergisst man manchmal, dass man nicht live ist. Ich hatte es schon ganz oft, dass ich z.B. 10 Minuten versetzt geguckt habe (weil z.B. zwischendurch Telefon klingelte -> PAUSE) und dann später in einer Werbepause dachte: "Mal gucken, was auf den anderen Sendern so läuft". Und schwupps waren die 10 Minuten weg (man denkt halt einfach nicht daran). Quote Link to comment
Tjod Posted October 11, 2010 Share Posted October 11, 2010 Wozu hast du "Automatischer Timeshift-Start" aktiviert wenn du Timeshift eigentlich nur nutzt wenn du vorher Pause gedrückt hast? Da wird Timeshift ja so oder so gestartet. Quote Link to comment
Headhunter3000 Posted October 11, 2010 Author Share Posted October 11, 2010 Aber zurückspulen geht halt nicht. Szenario: Man guckt Live-Bild, muss dann den Raum verlassen, hat keine Chance (oder auch keine Lust -> es geht hier um Komfort!), PAUSE zu drücken. Wenn man wieder zurückkommt, will man zurückspulen und weiter gucken. Wenn man Timeshift dann nicht vorher explizit angemacht hat, guckt man in die Röhre. Meiner Meinung nach sollte Timeshifting weitestgehend vom Benutzer "unbemerkt" funktionieren. Der Benutzer sollte nicht wissen/entscheiden müssen, ob er vorher Timeshift an- oder ausschalten muss, es muss einfach nur laufen und ihm Nutzen/Komfort bringen, wenn er es braucht. Dafür ist "automatischer Timeshift" ideal. Nur die Warnmeldung beim Zappen eines Live-Signals stört. Gruß, Headhunter Quote Link to comment
Freezer Posted October 11, 2010 Share Posted October 11, 2010 Ich kann mich da Headhunter3000 nur anschließen, diese Funktionalität wäre echt klasse Quote Link to comment
Griga Posted October 11, 2010 Share Posted October 11, 2010 Nur die Warnmeldung beim Zappen eines Live-Signals stört. Dann schalte sie doch in den Optionen aus. Ich sehe nicht, wo das Problem ist. Quote Link to comment
Freezer Posted October 11, 2010 Share Posted October 11, 2010 Wurde doch schon oben erklärt, dann ist die Warnung nämlich auch weg, wenn man sie eigentlich haben will um nicht versehentlich durch Umschalten den Inhalt zwischen aktuell angesehener und Live-Position zu verlieren. Quote Link to comment
Griga Posted October 11, 2010 Share Posted October 11, 2010 Woher soll das Programm wissen, ob jemand die Warnung "eigentlich" haben will? Dass der DVBViewer nicht speziell für deine Vorlieben programmiert wird, dürfte klar sein, und das Ausbleiben der Warnung, wenn noch nicht zurückgespult wurde, könnte für andere höchst ärgerlich sein. Seit es PCs gibt, wünsche ich mir einen Texteditor, der automatisch erkennt, ob ich einfügen oder überschreiben will. Ist auch bislang unerfüllt... Quote Link to comment
Freezer Posted October 11, 2010 Share Posted October 11, 2010 (edited) Klar, deshalb dürfte folgende Einstellmöglichkeiten wohl jeden zufriedenstellen: 1. Niemals warnen 2. Nur warnen, wenn aktuelle Position mindestens ### Sekunden von Live-Position abweicht 3. Immer warnen 1 und 3 gibts ja aktuell, fehlt also noch Punkt 2 um die Timeshift-Funktionalität zu perfektionieren. Edited October 11, 2010 by Freezer Quote Link to comment
Headhunter3000 Posted October 11, 2010 Author Share Posted October 11, 2010 Freezer hat die drei Optionen, mit denen jeder glücklich wäre, gut zusammengefasst. Punkt 2 beschreibt auch die Logik, die nötig ist, um herauszufinden, ob eine Warnung kommen soll oder nicht. Einfach aktuelle Position und Live-Position vergleichen. Wenn unterschiedlich, dann warnen, sonst nicht. Als Beispiel, dass diese Funktion nichts "Extravagantes" ist: Ich hatte vor DVBViewer ein Topfield TF5000PVR und darauf ein Tool (= TAP) namens Improbox installiert (evtl. bekannt). Dort gab es diese Funktion auch - sogar mit noch mehr Optionen). Im Handbuch (http://www.improbox.de/ImproBoxAnleitung.zip) ist die Funktion ("Timeshiftüberwachung") wie folgt beschrieben (Kapitel 5.14 / S. 18): Timeshiftüberwachung:Für den Fall dass man durch eine Aktion den Timeshiftpuffer löschen würde, wird eine Warnung ausgegeben, wenn: Timeshift man sich gerade im Timeshiftmodus befindet, also zeitversetzt, schaut. Timeshift und nach Zeit zusätzlich auch wenn der Timeshiftpuffer mindestens mit unter Punkt 15. festgelegten xx Sekunden gefüllt ist (auch wenn man gar nicht zeitversetzt schaut). Rec- / Timeshift und nach Zeit zusätzlich wenn man im Timeshift-Modus schaut und diese Sendung aufgenommen wird. Diese Funktion dient dazu, dass vor dem Umschalten daran erinnert wird, ein Lesezeichen (Bookmark) zu setzen, um die entsprechende Stelle später schneller wiederzufinden. Ich hatte auch schon überlegt, ob man die Funktion nicht über Skripte selbst erledigen kann (channelchange.vbs). Es gibt ja in den XMLs der OSD-Skins (z.B. myMiniEPG.xml) die Variablen #TV.Timeshift.position, #TV.Timeshift.duration, #TV.Timeshift.percentage usw. Vielleicht kommt man da ja von Skriptseite irgendwie ran und kann die Werte vergleichen. Ist nur die Frage, ob channelchange.vbs VOR oder NACH dem Kanalwechsel ausgeführt wird (ich hab's noch nicht ausprobiert). Für die gewünschte Funktionalität müsste man eine Methode haben, die VOR dem Kanalwechsel ausgeführt wird und bei Abbruch durch den Benutzer false zurückgibt und so das Umschalten verhindert. Gibt es sowas? Abschließend möchte ich noch sagen, dass es sicherlich unterschiedliche Arten gibt, wie man ein Programm benutzen kann. Deshalb ist der Weg des einen nicht "fälscher" als der Weg des anderen. Sonst wird es schon fast ideologisch. Aus diesem Grund bin ich ein Freund von Optionen. So kann sich jeder das Programm so einstellen, wie er es für richtig hält. Gruß, Headhunter Quote Link to comment
Tüftler Posted October 11, 2010 Share Posted October 11, 2010 Über die command.vbs könnte man das machen. Man muss dann halt die Kanal+/- Taste als Userdefined einbinden und in der command.vbs die Abfragen einbinden. Quote Link to comment
nuts Posted October 11, 2010 Share Posted October 11, 2010 Klingt nach einem Job für den vbs Profi Tüftler Quote Link to comment
Tüftler Posted October 11, 2010 Share Posted October 11, 2010 Headhunter3000 steht mir dahingehend offensichtlich in nichts nach. -> http://www.DVBViewer.tv/forum/topic/17584-imon-vfdlcd-plugin/page__view__findpost__p__314108 Quote Link to comment
Headhunter3000 Posted October 12, 2010 Author Share Posted October 12, 2010 (edited) @command.vbs: Habe ich auch schon daran gedacht. Wenn man jetzt noch die Kanaldirektwahl (über Zifferntasten) per command.vbs abfangen könnte, würde ich das echt mal versuchen. Geht das? Eine "beforechannelchange.vbs" oder "channelchanging.vbs" wäre natürlich der optimale Weg. :-) Gruß, Headhunter PS @Tüftler: Ich habe von Dir gelernt. Habe lange Zeit Deine iMON-/MCE-Konfiguration im Einsatz gehabt. Edited October 12, 2010 by Headhunter3000 Quote Link to comment
erwin Posted October 12, 2010 Share Posted October 12, 2010 (edited) Es gibt ja in den XMLs der OSD-Skins (z.B. myMiniEPG.xml) die Variablen #TV.Timeshift.position, #TV.Timeshift.duration, #TV.Timeshift.percentage usw. Vielleicht kommt man da ja von Skriptseite irgendwie ran und kann die Werte vergleichen. Man kommt schon ran. Allerdings ist mir in einer Plugin-Entwicklung aufgefallen, dass die Genauigkeit dieser Werte nicht zu einer genauen Bestimmung, ob LIVE geschaut wird, ausreichen. Mir scheint sie werden aus der Datenrate bestimmt und gerade bei Veränderungen dieser wachsen auch die Ungenauigkeiten. Siehe auch hier: http://www.DVBViewer.tv/forum/topic/39324-tvtimeshiftremain/page__view__findpost__p__286249 und hier http://www.DVBViewer.tv/forum/topic/42383-differenz-aus-currentplaytime-und-duration/page__view__findpost__p__311538 erwin Edited October 12, 2010 by erwin Quote Link to comment
Headhunter3000 Posted October 12, 2010 Author Share Posted October 12, 2010 Wenn die Werte einigermaßen genau sind (Toleranz ~10Sek.) wäre das für mich akzeptabel. Ich werde es in einer freien Minute mal ausprobieren (evtl. am Wochenende). Bleibt nur noch die Frage, wie man die Zifferntasten bei der Kanalwahl in der command.vbs abfängt. Wenn da noch einer einen Tipp hat, wäre ich dafür dankbar. Quote Link to comment
erwin Posted October 12, 2010 Share Posted October 12, 2010 (edited) Wenn die Werte einigermaßen genau sind (Toleranz ~10Sek.) wäre das für mich akzeptabel. Naja bei mir wurden 10 Sekunden Abweichung durchaus schon erreicht (N24, also nicht mal HD). Siehe auch den 2. Link oben. Bleibt nur noch die Frage, wie man die Zifferntasten bei der Kanalwahl in der command.vbs abfängt. Wenn da noch einer einen Tipp hat, wäre ich dafür dankbar. Lerne sie über eigene, neuvergebene ID's an. Hat auch sonst Vorteile. erwin Edited October 12, 2010 by erwin Quote Link to comment
Griga Posted October 12, 2010 Share Posted October 12, 2010 Naja bei mir wurden 10 Sekunden Abweichung durchaus schon erreicht (N24, also nicht mal HD). Das wundert mich. Der DVBViewer weiß intern ganz genau, ob es sich bei Timeshift-Betrieb um Live-Wiedergabe handelt, denn die relative Dateiposition (Floating Point im Bereich 0...1) ist dann immer gleich 1. Das lässt sich nicht abfragen? Quote Link to comment
erwin Posted October 12, 2010 Share Posted October 12, 2010 (edited) Also für die 4.5 hab ich das noch nicht probbiert. Das wundert mich. Der DVBViewer weiß intern ganz genau, ob es sich bei Timeshift-Betrieb um Live-Wiedergabe handelt Deshalb wäre es bestimmt kein großer Aufwand eine Datamanagervariable "isLive" zu setzen ;-) denn die relative Dateiposition (Floating Point im Bereich 0...1) ist dann immer gleich 1. Das lässt sich nicht abfragen? Lies hier nochmal: http://www.DVBViewer.tv/forum/topic/39324-tvtimeshiftremain Das Problem scheint zu sein dass die Datamanagervariablen (z.B. "remain") von Floating Point auf 2 Stellen gerundet werden. Z.B auch auf 0,00 abgerundet, obwohls kein exaktes ( +/- 10 Sekunden wie gesagt) LIVE ist. erwin Edited October 12, 2010 by erwin Quote Link to comment
Tüftler Posted October 12, 2010 Share Posted October 12, 2010 Wenn die Werte einigermaßen genau sind (Toleranz ~10Sek.) wäre das für mich akzeptabel. Ich werde es in einer freien Minute mal ausprobieren (evtl. am Wochenende). Bleibt nur noch die Frage, wie man die Zifferntasten bei der Kanalwahl in der command.vbs abfängt. Wenn da noch einer einen Tipp hat, wäre ich dafür dankbar. Wie erwin bereits sagte kann man einer eigenen ID-Funktion jede andere Funktion in der command.vbs laut ActionID neu zuweisen. In der Vorgängerversion der iMonPad-Konfig (im Thread ganz unten) habe ich über eine ähnliche Zeitvergleichsvariante die Pauseerkennung ermittelt, da es damals noch keine Variable für den Renderstate gab, siehe pause.vbs. Wenn du Hilfe brauchst oder Fragen hast eröffne einfach einen Thread im Scripting Lounge / COM-Bereich, ich habe aktuell keine Zeit für die Umsetzung/Austesterei. Quote Link to comment
Headhunter3000 Posted October 13, 2010 Author Share Posted October 13, 2010 (edited) Nach etwas Recherche scheint sich die Sache leider etwas schwieriger zu gestalten. Zu überprüfen, ob man gerade nicht live guckt und darauf hin den Benutzer zu warnen, ist wohl nicht das Problem, da man die entscheidenden Variablen zur Verfügung hat (z.B. #remain > 0). Was aber fehlt, ist das Ereignis, das diese Kontrolle auslöst. Idee: Action ID über command.vbs abfangen. Nur leider ist der Senderwechsel an sich keine abfangbare Action, sondern nur die Tasten, die einen Kanalwechsel ausführen. Allerdings kann ein Senderwechsel ja über mehrere Arten erfolgen: Zifferntasten, Channel +/-, über die diversen OSD-Menüs (Timeline, EPG usw.). Channel +/- wäre abfangbar, aber die anderen Wege sind problematisch (wie würde man z.B. eine Ziffernfolge abfangen - mit Schaltverzögerung und allem drum und dran? Was passiert bei Senderwechsel über die Timeline?). channelchange.vbs wird leider auch erst nach dem Senderwechsel gefeuert, dann ist der Timeshiftbuffer aber schon weg, kann also hier nicht verwendet werden. Was man bräuchte, wäre eine Ereignis vor dem Senderwechsel, bei dem man den Senderwechsel abbrechen kann (z.B. beforechannelchange.vbs mit boolschem Rückgabewert: true = Senderwechsel erlaubt, false = Senderwechsel abbrechen). Ich habe deshalb jetzt erst einmal keinen Thread im Skriptforum aufgemacht. Der ursprüngliche Vorschlag für eine direkte Warnungs-Option bleibt weiterhin bestehen. Wenn das nicht geht, wäre zumindest die oben beschriebende beforechannelchange.vbs eine große Hilfe (ist ggf. auch für andere Vorhaben hilfreich). Edited October 13, 2010 by Headhunter3000 Quote Link to comment
Tüftler Posted October 13, 2010 Share Posted October 13, 2010 Das es mehrere Möglichkeiten gibt einen Sender zu tunen war mir dabei schon klar aber ich dachte dir reicht eine bevorzugte (Kanal+/-). Ich mache mal ein wenig Brainstorming. Quote Link to comment
Tüftler Posted October 13, 2010 Share Posted October 13, 2010 (edited) Ok, ein Vorschlag: Dich stört ja die Meldung wenn noch kein Timeshiftmaterial angesammelt wurde. Wie wäre es denn dann wenn du über die windowload.vbs die Variable #currentwindow auf den Timeshiftwechseldialog prüfst und bei true anschließend schaust ob ein Timeshiftinhalt besteht. Wenn da keiner ist sendest du ein OSD Ok (ActionID 73) und der Senderwechsel erfolgt. Edited October 13, 2010 by Tüftler Quote Link to comment
Headhunter3000 Posted October 13, 2010 Author Share Posted October 13, 2010 Geniale Idee! :-) So hat man die Möglichkeit, unabhängig von der Tuningmethode auf einen Senderwechsel zu reagieren! Das werde ich direkt ausprobieren, aus Zeitmangel wohl aber erst am Wochenende. Ich werde hier und/oder im Skriptforum berichten... Vielen Dank für den Tipp! :-) Quote Link to comment
Freezer Posted October 14, 2010 Share Posted October 14, 2010 (edited) Aber "Timeshiftmaterial" ist doch bei aktiviertem Timeshift immer vorhanden, relevant wäre ja nur Material nach der aktuelle angeschauten Position, oder nicht? Edited October 14, 2010 by Freezer Quote Link to comment
Tüftler Posted October 14, 2010 Share Posted October 14, 2010 Headhunter3000 hat denke ich schon verstanden das es um einen Versatz der Wiedergabeposition geht. Quote Link to comment
Headhunter3000 Posted October 14, 2010 Author Share Posted October 14, 2010 Die Sache hat mir ja keine Ruhe gelassen. Deshalb habe ich mich doch schon an die Sache rangesetzt. :-) Vom Prinzip her funktioniert die Warnmeldung so wie ich mir das vorstelle. Der Code in der windowload.vbs sieht jetzt so aus (eigentlich recht übersichtlich): sub main(WindowID) [...] Dim currentWindowTitle currentWindowTitle = Datamanager.Value("#currentwindow") ' Timeshift Warning only if not live! (Activate Timeshift warning in settings!) If WindowID = 100 Then ' TODO: Localized window title??? If currentWindowTitle = "Aufnahme/Timeshift ist aktiv!" Then Dim strRemainTime strRemainTime = Datamanager.Value("#remain") If strRemainTime = "00:00:00" Then SendCommand(73) End If End If End If [...] end sub Soweit so gut. Man sieht beim Umschalten eines Live-Signals noch nicht einmal das Warnfenster aufflackern. Leider funktioniert das Ganze nur einmal. :-) Danach kommt das Warnfenster wieder bei jedem Umschalten. Das liegt daran, dass die windowload.vbs nur beim ersten Aufruf eines OSD-Fensters ausgeführt wird, hier beim ersten Aufruf einer Ja/Nein-Dialog-Box (Window-Id = 100). Hmmm, wat nu... Ich habe in der COM-Doku des DVBViewers gesehen, dass der DVBViewer ein Event "onOSDWindow" feuert, wenn ein OSD-Fenster aktiviert wird. Wenn dieses Event bei jedem Anzeigen des Fensters gefeuert werden würde und nicht nur beim ersten, dann wäre das Ereignis genau das, was man bräuchte. Mal sehen, evtl. wagt man sich doch mal an die PlugIn-Programmierung heran... Quote Link to comment
Freezer Posted October 14, 2010 Share Posted October 14, 2010 Hm, ich hab leider von VBS null Plan, aber könnte man das nicht evtl. über die Command.vbs lösen? Quote Link to comment
Tüftler Posted October 14, 2010 Share Posted October 14, 2010 Im Anhang eine geänderte windowload.vbs und die Timeshiftcontent.vbs. Beide in das Scriptverzeichniss entpacken. Die Variable #remain arbeitet leider erst mit steigender Timeshiftdauer zuverlässig, aber sonst geht es erstmal. Die Timeshiftcontent.vbs musst du noch gegen ein DVBViewer beenden absichern, sonst kommt es zu einer Fehlermeldung. Hab das nur mal auf die schnelle gescriptet. Viel Erfolg Timeshiftcontent.zip Quote Link to comment
Headhunter3000 Posted October 14, 2010 Author Share Posted October 14, 2010 In der command.vbs kann man ja nur auf Actions reagieren, also alles was man z.B. über Tastatur oder Fernbedienung abschicken kann. Ich muss aber auf das Aufpoppen des Timeshift-Warnung-Fensters reagieren. In der windowload.vbs geht das aber nur beim allerersten Laden des Fensters. Es bleibt spannend. Wer weiß, vielleicht lässt sich das Entwicklerteam ja doch noch erweichen und baut die Option direkt in die Settings ein. Quote Link to comment
Headhunter3000 Posted October 14, 2010 Author Share Posted October 14, 2010 Im Anhang eine geänderte windowload.vbs und die Timeshiftcontent.vbs. Beide in das Scriptverzeichniss entpacken. Die Variable #remain arbeitet leider erst mit steigender Timeshiftdauer zuverlässig, aber sonst geht es erstmal. Die Timeshiftcontent.vbs musst du noch gegen ein DVBViewer beenden absichern, sonst kommt es zu einer Fehlermeldung. Hab das nur mal auf die schnelle gescriptet. Viel Erfolg Timeshiftcontent.zip Wow, vielen Dank! Werde ich gleich mal ausprobieren. Bin gespannt, wie Du das gelöst hast. Quote Link to comment
Headhunter3000 Posted October 17, 2010 Author Share Posted October 17, 2010 N'Abend, dank Tüftlers Codebeispiel mit der "Überwachungsschleife" habe ich jetzt folgende Lösung zusammengeschustert: windowload.vbs: Sub Main(WindowID) [...] ' Basic stuff Dim objShell Set objShell = CreateObject("Wscript.Shell") ' Extended Timeshift warning Dim isExtendedTimeshiftWarningActive isExtendedTimeshiftWarningActive = DataManager.Value("#isExtendedTimeshiftWarningActive") If isExtendedTimeshiftWarningActive = "" Then Dim scriptPath scriptPath = """" & osd.AppDir & "Scripts\ExtendedTimeshiftWarning.vbs" & """" objShell.Run scriptPath, 0, False DataManager.Value("#isExtendedTimeshiftWarningActive") = "TRUE" End If [...] End Sub ExtendedTimeshiftWarning.vbs (-> im Scripts-Verzeichnis neu anlegen): Option Explicit ' Get DVBViewer object Dim DVBViewer Set DVBViewer = GetObject(, "DVBViewerServer.DVBViewer") ' Keep script alive until DVBViewer exit Dim isDVBViewerExitPending isDVBViewerExitPending = DVBViewer.DataManager.Value("#isDVBViewerExitPending") Do While isDVBViewerExitPending = "" CheckForTimeshiftDialog isDVBViewerExitPending = DVBViewer.DataManager.Value("#isDVBViewerExitPending") WScript.Sleep(50) Loop WScript.Quit Sub CheckForTimeshiftDialog() Dim currentWindowTitle currentWindowTitle = DVBViewer.DataManager.Value("#currentwindow") ' Timeshift Warning only if not live (Enable Timeshift warning in settings to activate) If currentWindowTitle = "Aufnahme/Timeshift ist aktiv!" Then ' TODO: Localized window title??? Dim strRemainTime strRemainTime = DVBViewer.DataManager.Value("#remain") If strRemainTime = "00:00:00" Then DVBViewer.SendCommand(73) End If End If End Sub command.vbs: Sub Main(Command) Select Case Command [...] 'Extended Exit: Case 41000 ' Signal all scripts to quit Datamanager.Value("#isDVBViewerExitPending") = "TRUE" [...] ' Anderer Code, der beim Beenden ausgeführt werden soll ' Quit DVBViewer SendCommand(12326) End Select End Sub Für das Beenden von DVBViewer muss man in den Eingabeoptionen eine neue Action mit der ID 41000 anlegen und diese auch zum Beenden des DVB Viewers benutzen, damit der Code in der command.vbs ausgeführt wird. Da ich so eine Action schon hatte, war das für mich jetzt die einfachste Möglichkeit, dem anderen Script zu signalisieren, dass der DVBViewer beendet wird. Vielleicht gibt es ja noch eine Möglichkeit, das ohne so eine Action hinzubekommen. Danach habe ich nicht weiter geforscht. Die Logik funktioniert ganz ok. Leider ist das Timeshift-Warnfenster doch noch recht lange (ca 0,5 sec) sichtbar, bevor es automatisch bestätigt wird. Das war auch nicht durch eine kürzere Wartezeit in der Schleife (ExtendedTimeshiftWarning.vbs) zu beheben. Gefällt mir noch nicht so... :-( Ich habe deshalb zeitgleich mal ausprobiert, ob man das onOSDWindow-Event abfangen kann. Per Script bekomme ich das Event nicht abgefangen. (WScript.Connect funktioniert anscheinend nicht - dazu gibt es auch einige Threads im Script/COM-Forum). Wenn man das mit C# macht funktioniert das aber. Das Event wird dann sogar bei jedem Öffnen des Fensters gefeuert - genau das was man bräuchte. Da versuche ich mich gerade dran, als eigenständige Konsolen-Applikation habe ich auch schon was. Ich werde noch prüfen, ob ich es als Plugin hinbekomme (obwohl ich dazu noch keine richtige Anleitung gefunden habe). Es bleibt spannend... Quote Link to comment
Headhunter3000 Posted October 23, 2010 Author Share Posted October 23, 2010 (edited) Moin, da mich bei der Script-Lösung das Flackern des Warnfensters doch etwas genervt hat, habe ich jetzt ein Plugin geschrieben, dass die gewünschte Funktionalität ohne Einschränkungen bietet: http://www.DVBViewer.tv/forum/topic/42962-extendedtimeshift-plugin/ Bei Plugins gibt es (anders als beim COM-Interface) tatsächlich die Möglichkeit, VOR einem Senderwechsel einzugreifen, und diesen Wechsel bei Bedarf abzubrechen, nämlich über die Methode bool Execute(TTuner ch, TPluginPids pid); Edited October 23, 2010 by Headhunter3000 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.