Ich hoffe, ich habe mich jetzt nicht zu unbeliebt gemacht...
Also nicht bei mir. Als Hobby-Programmierer, der sich das in Self Made Manier angeeignet hat, ist man für jeden konstruktiven Hinweis dankbar.
Nur warum gibt es 2 Patches mit dem selben Titel? Zuerst den zweiten Teil vergessen? Dafuer gibt es 'git rebase -i' und "fixup"...
Das habe ich kommen sehen... Nicht vergessen, nur vor dem Upload vergessen, zusammenzuführen...
In Umbenennungen sehe ich keinen Wert, aber ich kenne auch die anderen Skins nicht
Das mag im Allgemeinen richtig sein. Bei Louis Plugins wiederholt sich allerdings Vieles, so habe ich es dann einfacher, Dinge zu vergleichen.
Wie ich es gelernt habe, gehoeren Whitespace-Cleanup und funktionale Aenderungen (long -> int in for-Schleifen) nicht in einen Patch.
Das habe ich nicht ganz verstanden.
- "Cleanup menuView declaration"
Das halte ich fuer einen Fehler. Globale Variablen sind immer eher schlecht. Hier wird auch noch eine Klasse DisplayMenuView, die nur in DisplayMenu benutzt wird, global abgelegt. Ergibt fuer mich wenig Sinn. Fuer mich gehoert die ganze Klasse DisplayMenuView komplett in die Klasse DisplayMenu integriert. Macht alles viel einfacher und erlaubt weitere Codeoptimierungen.
Das ist auch mein Ziel. Im Moment wollte ich damit nur die Zusammenhänge besser verstehen.
- "Eliminate detailView in cNopacityDisplayMenu"
Das verstehe ich nicht, da fehlt mir zumindest eine Erklaerung. Auch bläht es den Code extrem auf, erscheint mir nicht sinnvoll. Scheint auch neue Threads zu erzeugen, was ich fuer einen großen Fehler halte (langsam, fehleranfaellig, unuebersichtlich).
Neue Threads macht das nicht, es ist immer nur einer aktiv. Und dient erst einmal auch zum besseren Verständnis.
- "Faster display info"
Auch wieder ein zusaetzlicher Thread, wobei ich gar nicht sehe, wo der gestartet wird.
Auch kein neuer Thread.
Hier ist eigentlich nur die Änderung in displaymenu.c wichtig. Die eigentliche Ursache für das "Powerpoint" ähnliche Verhalten lag an diesem Flush.
In dem es jetzt bei laufenden Threads nicht mehr aufgerufen wird, wird dieser Effekt eliminiert.
Jetzt sehe ich auch, was Du mit den neuen Threads meinst. Das sind keine neuen Threads, das dient nur zur eindeutigen Identifikation in den Logs, diese Threads gab es vorher auch schon.
Nach der "reinen Lehre" soll ein Skin nur darstellen, was der VDR vorgibt. Dabei soll ein Skin keine zusaetzlichen Flush()-Operationen erfinden (was bei der S2-6400 extrem langsam ist), sondern nur dann einen osd->Flush() ausfuehren, wenn vom VDR ein Flush() angefordert wird. Das ist hier, was die Performance-Verbesserung bringt.
Wie schon vorher geschrieben, den 1.1.x-Branch mit den ganzen Threads halte ich fuer kaputt. Der 1.0.x-Branch funktioniert fuer mich ohne "Powerpoint-Effekt", nur diesen Branch finde ich als Ausgangspunkt fuer weitere Entwicklungen geeignet (ein paar Ideen haette ich da noch).
Ja, in einer idealen Welt... Leider wollen viele Anwender halt ein Bling-Bling.
Deshalb kann ich diese zusätzlichen Sachen auch nicht einfach wieder ausbauen, dann beschwert sich bestimmt jemand.
So werde ich das Ganze wohl konfigurierbar machen müssen...
Grüße
kamel5