Jump to content

WindowID wird falsch übergeben


Recommended Posts

Hi

ich hab nun nedlich verstanden, wie das mit der WindowID und dem Girderplugin funktioniert. Leider musste ich feststellen, dass die Variable des ersten Registers teilweise die falsch ID bekommt.

Die ID wird über folgendes Script aus der DVBViewer.vbs im Girder Pluginverzeichnis übergeben:

sub WindowChange(Window)

  aid = Window

  if not OSD.isVisible then

    aid = "-1"

  else if WindowManager.IsOverlay then

      aid = "-" & WindowManager.OverlayWindowID

    end if

  end if

  if aid = 2901 then 'Duration.xml ist kein OSD ;-) 

  aid = -1

  end if

  Setvar "reg1", aid

  sendevent "WindowChange"

end sub

 

Ich hab die Beispieldatei, die beim PLugin dabei war übernommen.

 

Wenn ich nun im normalen Betrieb kein OSD offen habe, ist der Wert bei -1, korrekt so weit. Wenn ich jetzt das Menu aufrufe, ist es bei 0, das stimmt auch noch. Wenn ich jetzt aber HTPC auswähle, steht das register wieder auf -1. Wenn ich allerdings in ein untermenu (z.b. musik) gehe und dann wieder ins htpc-home-fenster zurückgehe, steht der wert auf 1000, wo er auch vorher schon stehen sollte.

Ähnliches geschieht, wenn ich über eine direkte Taste (Farbe oder Hotkey) ein Menu wie Sender oder Musik aufrufe Dann ändert sich das Register auch nicht, es bleibt bei -1. Navigiere ich dann über das Menu dort hin, steht das Register auf dem richtigen wert.

 

Ich bin für jede Hilfe dankbar.

 

Außerdem würden mich weitere Ereignisse/Variablen vom DVBViewer interessieren, die ich in die DVBViewer.vbs für das girderplugin reinmachen kann. Gibt es da irgendwie eine Liste oder jemanden, der eine gut bestückte Datei hat und diese zur verfügung stellen will?

 

Danke!

 

Rag3

Edited by Rag3
Link to comment
Guest Lars_MQ

Ich weiss jetzt nicht warum es nicht hinhaut, aber du kannst mit

 

WindowManager.ActiveWindowID

 

die aktive windowID ja abfragen. damit bekommst du mit dem event den wechsel und mit der abfrage die ID, damit du erstmal weiterkommst.

 

Ich untersuche in der zwischenzeit mal, warum er die WindowID nicht mehr richtig sendet...

Link to comment

Vielen Dank, habs hinbekommen und kann jetzt alles so machen, wie ich es will.

Falls jemand das gleiche Problem hat, hier mal das angepasste Script:

 

sub WindowChange(Window)

  aid = Window

  if not OSD.isVisible then

    aid = "-1"

  else aid = DVBViewer.WindowManager.ActiveWindowID

  end if

  if aid = 2901 then 'Duration.xml ist kein OSD ;-) 

  aid = -1

  end if

  Setvar "reg1", aid

  sendevent "WindowChange"

end sub

Edited by Rag3
Link to comment

Hallo,

 

hatte einen ähnlichen Fehler unter: http://www.DVBViewer.com/forum/index.php?showtopic=12790 bereits gemeldet.

Wenn ich direkt die OSD-Untermenüs (z.B. meineMusik usw.) per Taste aufrufe, kommt nach der WindowsID sofort wieder ein Event mit -1, also kein OSD, obwohl es ja noch auf dem Screen sichtbar ist. Habe in Girder eine Abrage eingebaut, d.h. wenn eine Fenster-ID gemeldetet wird und dann innerhalb von 200 ms wieder eine -1 (kein OSD) kommt, dann verwerfe ich das zweite Event.

Ich werde mal das geänderte Script ausprobieren.

Gruß

 

rriem

Link to comment
Guest Lars_MQ

Ich habe das Problem gefunden und beseitigt. Liegt im DVBViewer, die internen events für die osdwindows konnten sich untereinander nicht über ihre reihenfolge einigen ;)

Link to comment

Und da war die -1 wohl immer am stärksten ;)

 

Ich hab da noch was:

sub Playbackend

  SetVar "reg2", 1

  sendevent "Playbackend"

end sub

 

sub PlaybackStart

  SetVar "reg2", 2

  sendevent "PlaybackStart"

end sub

 

Bei mir steht im Register immer die 2, unabhängig davon, ob ich eine Datei abspiele, auf Pause gedrückt hab, oder im TV bin. (Wenn ich stop drücke, beginnt er ja wieder mit tv...) Liegt das an mir, oder ist das auch eine kleine unstimmigkeit zwischen diversen ereignissen?

Edited by Rag3
Link to comment
Guest Lars_MQ
Bei mir steht im Register immer die 2, unabhängig davon, ob ich eine Datei abspiele, auf Pause gedrückt hab, oder im TV bin. (Wenn ich stop drücke, beginnt er ja wieder mit tv...) Liegt das an mir, oder ist das auch eine kleine unstimmigkeit zwischen diversen ereignissen?

Nein sicher nicht.

 

Playbackend wird aufgerufen wenn ein Mediaplayback beendet wird.

Playbackstart wird aufgerufen beim öffnen einer media datei.

Link to comment

Merkwürdig, jetzt geht es auch bei mir!?

Ich schwöre, dass gestern immer 2 da stand, unabhängig davon, was ich gerade gemacht hab...Naja girder hat gestern eh n bissel rumgespackt, evtl lags ja daran...

 

 

Edit: Zu früh gefreut! Ich hatte grad wieder TV am Laufen und Im register 2 den Wert 2.

Hab mal nen Screenshot angehängt. Das Videofenster ist wphl wegen Overlay schwarz, ich hatte beim schauen bild...

Edited by Rag3
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...