Hallo
Ich habe mir das pipzap-Plugin dahingehend angepasst, dass mir direkt unter dem PiP-Fenster (beim Zappen im PiP) der aktuelle Sendername des PiP-Fensters angezeigt wird.
Das klappt soweit auch ganz gut, allerdings habe ich Probleme mit der Posiitonierung und Größenanpassung der TextBox passend zum PiP-Fenster.
Ich lese im Plugin die Position und Größe des PiP so aus:
x1 = config.av.pip.value[0]
y1 = config.av.pip.value[1]
x2 = config.av.pip.value[2]
y2 = config.av.pip.value[3]
Das Problem dabei ist, dass diese Werte in Bezug auf einen SD-Skin zurückgegeben werden (max. 720/576).
Soweit kein Problem, da ich diese SD-Werte dann prozentual in HD umrechne.
Komisch ist dabei allerdings, je größer das PiP-Fenster eingestellt wird, umso ungenauer (falsch) ist dann
die berechnete HD-Position meiner "Sendernamen"-TextBox.
Das heißt, dass eine immer größere Positionskorrektur erforderlich wird.
Gibt es da eine Systemfunktion, womit man die SD-Angaben zum PiP-Fenster in Werte für einen HD-Skin umrechnen kann?
nachfolgend noch mein Code zum Errechnen der oberen linken (x,y) Ecke des PiP-Fensters als HD-Position als Bezugspunkt für meine TextBox.
Dabei ist hier schon eine Korrektur von -13 und-8 eingearbeitet, wenn das PiP-Fenster eine mittlere Größe hat.
Wenn es kleiner oder größer gemacht wird, sind wieder ganz andere Korrekturwerte erforderlich.
Eigentlich sollte die SD-Position (linke obere Ecke) des PiP eine feste Bezugsgröße sein und somit bei Umrechnung in HD keine Schwankungen haben, schon gar nicht bei Änderung der PiP-Größe.
Vermutlich wird nicht immer 100%ig die obere Ecke zurückgeliefert.
Oder habe ich hier einen Denkfehler?
x1 = config.av.pip.value[0]
y1 = config.av.pip.value[1]
x2 = config.av.pip.value[2]
y2 = config.av.pip.value[3]
width = getDesktop(0).size().width()
height = getDesktop(0).size().height()
#meine neue position
xref = 720
yref = 576
x= int(x1 * (float(width)/xref)) - 13
y= int(y1 * (float(height)/yref)) - 8
Alles anzeigen
Danke schon mal.