[patch] mute icon revisited.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
[patch] mute icon revisited.
Ich habe mal versucht, das mute-icon etwas zu verbessern: neutrino-mute-icon-rework-1.diff
die Framebuffer-Klasse bietet nun eine "paintMuteIcon()"-Funktion an, die das Mute-icon malt. Wenn irgendeine andere Funktion jetzt in den Bereich des Mute Icons malen würde, dann wird das Icon hinterher wieder drübergemalt.
Das heisst, wenn einmal "frameBuffer->paintMuteIcon(true)" aufgerufen ist, sollte das Icon so lange sichtbar bleiben, bis paintMuteIcon(false) aufgerufen wird.
Absichtlich nicht berücksichtigt sind die "paintLine()"-Funktionen, die könnten also über das Icon drübermalen, ebenso wie die fontrenderer (sichtbar wenn man im EPG-Plus erst muted und dann Menü drückt). Das halte ich aber für akzeptabel, wenn man bei jedem gemalten Pixel die Prüfung durchführen würde, dann wäre das der Performance sicher abträglich .
Ich habe die normalen TV-Einsatzszenarien getestet, aber wenn das noch jemand mit audiplayer etc. testen will, bin ich für Feedback dankbar.
die Framebuffer-Klasse bietet nun eine "paintMuteIcon()"-Funktion an, die das Mute-icon malt. Wenn irgendeine andere Funktion jetzt in den Bereich des Mute Icons malen würde, dann wird das Icon hinterher wieder drübergemalt.
Das heisst, wenn einmal "frameBuffer->paintMuteIcon(true)" aufgerufen ist, sollte das Icon so lange sichtbar bleiben, bis paintMuteIcon(false) aufgerufen wird.
Absichtlich nicht berücksichtigt sind die "paintLine()"-Funktionen, die könnten also über das Icon drübermalen, ebenso wie die fontrenderer (sichtbar wenn man im EPG-Plus erst muted und dann Menü drückt). Das halte ich aber für akzeptabel, wenn man bei jedem gemalten Pixel die Prüfung durchführen würde, dann wäre das der Performance sicher abträglich .
Ich habe die normalen TV-Einsatzszenarien getestet, aber wenn das noch jemand mit audiplayer etc. testen will, bin ich für Feedback dankbar.
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: [patch] mute icon revisited.
So, hab mal eben getestet. Gleich 3 Bugs gefunden.
1. Kein MuteIcon im Audioplayer
2. Wenn man mit aktiven MuteIcon vom Radio in den TV-Modus wechselt, gibt es
anschließende nen tollen Effekt, wenn man muted/unmuted. Der Hintergrund vom
Radio-Modus wird gemalt und der bleibt auch.
3. Einen ähnlichen Fehler gibt es bei Sender/EPG-Statistik, wenn man gemuted
das Fenster schließt und anschließend Mute benutzt.
Dann fehlt noch:
1. Kein MuteIcon im Audioplayer
2. Wenn man mit aktiven MuteIcon vom Radio in den TV-Modus wechselt, gibt es
anschließende nen tollen Effekt, wenn man muted/unmuted. Der Hintergrund vom
Radio-Modus wird gemalt und der bleibt auch.
3. Einen ähnlichen Fehler gibt es bei Sender/EPG-Statistik, wenn man gemuted
das Fenster schließt und anschließend Mute benutzt.
Dann fehlt noch:
Code: Alles auswählen
@@ -3394,15 +3398,15 @@
#ifdef ENABLE_LIRC
if((CControld::volume_type)g_settings.audio_avs_Control==CControld::TYPE_LIRC) // lirc
{ // bei LIRC wissen wir nicht wikrlich ob jetzt ge oder entmuted wird, deswegen nix zeigen---
- if( !isEvent )
+ if( !onlyIcon )
g_Controld->Mute((CControld::volume_type)g_settings.audio_avs_Control);
}
else
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [patch] mute icon revisited.
So. Nächste version. neutrino-mute-icon-rework-2.diff
* Audioplayer geht jetzt (juhu )
* Umschalten TV/Radio geht ziemlich. Siehe unten.
* EPG-Statistik ist noch kaputt, schau ich mir grad an
unten: Wenn man gemuted von TV nach Radio schaltet, wird zapit "ent-muted", aber neutrino weiss nichts davon. Deswegen bleibt das mute-icon an, obwohl Ton zu hören ist. Das ist zwar ein Bug, aber nicht in meinem Code.
* Audioplayer geht jetzt (juhu )
* Umschalten TV/Radio geht ziemlich. Siehe unten.
* EPG-Statistik ist noch kaputt, schau ich mir grad an
unten: Wenn man gemuted von TV nach Radio schaltet, wird zapit "ent-muted", aber neutrino weiss nichts davon. Deswegen bleibt das mute-icon an, obwohl Ton zu hören ist. Das ist zwar ein Bug, aber nicht in meinem Code.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [patch] mute icon revisited.
geht jetzt: neutrino-mute-icon-rework-3.diffseife hat geschrieben:* EPG-Statistik ist noch kaputt, schau ich mir grad an
Probiert insbesondere auch mal aus, ob das auf der dbox merkbar die Performance verschlechtert (sollte nicht zu bemerken sein, aber ich habe es nur auf der TripleDragon getestet).
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: [patch] mute icon revisited.
Eine spürbare Verschlechterung der Perfomance der Menü's konnte
ich jetzt nicht bemerken. Vielleicht solltest Du noch erwähnen wann
das passieren könnte.
Audioplayer funktioniert. Es gibt aber noch ein Problem, wenn man
gemuted einen Titel startet. Da könnte man noch einmal das MuteIcon
drübermalen. Ist zwar Korintenkakerei, aber wo Du da einmal dran bist.
ich jetzt nicht bemerken. Vielleicht solltest Du noch erwähnen wann
das passieren könnte.
Audioplayer funktioniert. Es gibt aber noch ein Problem, wenn man
gemuted einen Titel startet. Da könnte man noch einmal das MuteIcon
drübermalen. Ist zwar Korintenkakerei, aber wo Du da einmal dran bist.
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: [patch] mute icon revisited.
Wenn man mit RC_minus auf 0 regelt, dann Mute drückt und danach wieder RC_plus
bleibt das MuteIcon stehen, ist auch egal ob man dann weiter + oder - drückt.
Ton ist trotzdem da.
bleibt das MuteIcon stehen, ist auch egal ob man dann weiter + oder - drückt.
Ton ist trotzdem da.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [patch] mute icon revisited.
Das ist schon OK und keine Korinthenkackerei.. Das Ziel ist ja, dass man sich nicht drum kümmern muss, dass das Mute-Icon da bleibt.
Ich schau mir das noch an, aber heute nicht mehr, die Familie guckt grad TV, da ist audioplayer oder Lautstärke runterregeln zwischendurch keine Option.
...habe ich übrigens schonmal erwähnt, dass ich das "show mute icon when volume=0"-Feature doof finde?
Die Performance wird dann leiden, wenn ein Fenster im Bereich des Mute-Icons gemalt wird: sobald eine Mal-Operation (Rechteck, auch mit "runden Ecken") den Bereich des Mute-Icons berührt, wird erst das Mute-Icon entfernt, dann das Rechteck gemalt, dann das Mute-Icon wieder drübergemalt.
Ganz "schlimm" könnte es werden, wenn das Mute-Icon im Bereich einer Scrollbar ist.
In der Praxis kommt das aber nicht vor, und da das Mute-Icon nicht so gross ist, ist das Entfernen und wieder hinmalen auch kein übertriebener Aufwand.
Wenn ich also nichts falsch gemacht habe, sollte es nicht auffallen, aber da ich mir da nie sicher bin, frage ich vorsichtshalber nach
Ich schau mir das noch an, aber heute nicht mehr, die Familie guckt grad TV, da ist audioplayer oder Lautstärke runterregeln zwischendurch keine Option.
...habe ich übrigens schonmal erwähnt, dass ich das "show mute icon when volume=0"-Feature doof finde?
Die Performance wird dann leiden, wenn ein Fenster im Bereich des Mute-Icons gemalt wird: sobald eine Mal-Operation (Rechteck, auch mit "runden Ecken") den Bereich des Mute-Icons berührt, wird erst das Mute-Icon entfernt, dann das Rechteck gemalt, dann das Mute-Icon wieder drübergemalt.
Ganz "schlimm" könnte es werden, wenn das Mute-Icon im Bereich einer Scrollbar ist.
In der Praxis kommt das aber nicht vor, und da das Mute-Icon nicht so gross ist, ist das Entfernen und wieder hinmalen auch kein übertriebener Aufwand.
Wenn ich also nichts falsch gemacht habe, sollte es nicht auffallen, aber da ich mir da nie sicher bin, frage ich vorsichtshalber nach
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: [patch] mute icon revisited.
Welchen default schlägst Du vor?seife hat geschrieben:...habe ich übrigens schonmal erwähnt, dass ich das "show mute icon when volume=0"-Feature doof finde?
Ich habe mir dazu noch nie Gedanken gemacht.
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: [patch] mute icon revisited.
Ein default für mich wäre z.B., wenn die Volumenbar bei "0" sichtbar bliebe.
-
- Administrator
- Beiträge: 2675
- Registriert: Donnerstag 28. September 2006, 19:18
Re: [patch] mute icon revisited.
Schön dass du dich dem Relikt angenommen hast, war längst fällig. Danke schonmal.
Zum einen ist sowas bei vielen Geräten standard, und zum anderen jibbett Leute die nicht merken, dass sie mal die Box mit Lautstärke 0 (= mute) betreiben und sich wundern warum sie nichts hören. Kann das aus eigener Erfahrung nachvollziehen, da mir das im Lauf der Jahre schon öfter angetragen wurde und ich sogar deswegen Anrufe und Mails wegen solcher Banaltitäten bekommen habe. Sollte dieser Fall eintreten, sieht der Benutzer sofort was los ist, weil: Icon da-> aha, das Teil ist nur Stumm. Man könnte dagegen halten. " man sieht das doch im LCD", stimmt, aber nur wenn man nicht gerade auf Sendungsdauer gestellt hat oder wer weiß wie weit davon weg sitzt oder gar eine (nichtLCD) BOX benutzt, wo nix mit LCD ist, solls ja geben inzwischen Es gibt tatsächlich Leute, die nicht mit den Macken der Soft und Hardware so vertraut sind wie wir und für den Benutzer ist diese Funktion sicher nicht sooo doof, jedenfalls sind mir derartige Szenarien seit dem nicht mehr untergekommen?
Da muss ich mal dagegen halten auch wenns für dich evtl. nicht nachvollziebar ist, das wurde nicht ohne Grund dran gebaut und auch irgendwo angedeutet warum.seife hat geschrieben: ...habe ich übrigens schonmal erwähnt, dass ich das "show mute icon when volume=0"-Feature doof finde?
Zum einen ist sowas bei vielen Geräten standard, und zum anderen jibbett Leute die nicht merken, dass sie mal die Box mit Lautstärke 0 (= mute) betreiben und sich wundern warum sie nichts hören. Kann das aus eigener Erfahrung nachvollziehen, da mir das im Lauf der Jahre schon öfter angetragen wurde und ich sogar deswegen Anrufe und Mails wegen solcher Banaltitäten bekommen habe. Sollte dieser Fall eintreten, sieht der Benutzer sofort was los ist, weil: Icon da-> aha, das Teil ist nur Stumm. Man könnte dagegen halten. " man sieht das doch im LCD", stimmt, aber nur wenn man nicht gerade auf Sendungsdauer gestellt hat oder wer weiß wie weit davon weg sitzt oder gar eine (nichtLCD) BOX benutzt, wo nix mit LCD ist, solls ja geben inzwischen Es gibt tatsächlich Leute, die nicht mit den Macken der Soft und Hardware so vertraut sind wie wir und für den Benutzer ist diese Funktion sicher nicht sooo doof, jedenfalls sind mir derartige Szenarien seit dem nicht mehr untergekommen?
Zuletzt geändert von dbt am Sonntag 27. September 2009, 21:18, insgesamt 1-mal geändert.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [patch] mute icon revisited.
Ich hätte das feature am liebsten ganz weg, dann wäre der Mute-Code wieder schön einfach.
Aber ich werde es auch so hinbekommen
dbt: und wofür ist der g_settings.show_mute_icon == 2 Fall (nur, wenn kein dolby-digital) gut?
Aber ich werde es auch so hinbekommen
dbt: und wofür ist der g_settings.show_mute_icon == 2 Fall (nur, wenn kein dolby-digital) gut?
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: [patch] mute icon revisited.
Soll bei Lautstärke = 0 immer das Mute-Icon da sein oder gar keins?seife hat geschrieben:Ich hätte das feature am liebsten ganz weg
Ich halte es für sinnvoll, das Mute-Icon bei Lautstärke = 0 anzuzeigen,
warum jemand dagegen sein könnte, erschließt sich mir nicht.
-
- Administrator
- Beiträge: 2675
- Registriert: Donnerstag 28. September 2006, 19:18
Re: [patch] mute icon revisited.
Auf das könnte man evtl. verzichten, aber da müsste man mal den Thread suchen wo das angebracht wurde.seife hat geschrieben:und wofür ist der g_settings.show_mute_icon == 2 Fall (nur, wenn kein dolby-digital) gut?
Das wurde seinerzeit glaube ich auf die Anregung hin eingebaut, weil manche die Box im dd_ mode nur am Heimkinosystem benutzen oder so und die Lautstärke sowieso nie an der Box regeln.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [patch] mute icon revisited.
Aber es macht den Code unnötig hässlich und kompliziertrhabarber1848 hat geschrieben:warum jemand dagegen sein könnte, erschließt sich mir nicht.
Ok. Weil dann könnte man einfach "wenn volume == 0, dann muted = true" und wäre diesen Spezialfall (volume == 0, aber nicht muted == true) los.dbt hat geschrieben:Das wurde seinerzeit glaube ich auf die Anregung hin eingebaut, weil manche die Box im dd_ mode nur am Heimkinosystem benutzen oder so und die Lautstärke sowieso nie an der Box regeln. Auf das könnte man evtl. verzichten, aber da müsste man mal den Thread suchen wo das angebracht wurde.
Ich schau's mir an, aber heute nicht mehr.
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: [patch] mute icon revisited.
Je mehr ich darüber nachdenke, desto mehr gefällt mir die Idee:seife hat geschrieben:Aber es macht den Code unnötig hässlich und kompliziertrhabarber1848 hat geschrieben:warum jemand dagegen sein könnte, erschließt sich mir nicht.
Wenn die Laufstärke auf Null ist, erscheint das Mute-Icon.
Dabei sollte es egal sein, wie die Lautstärke auf Null gesetzt wurde,
das mag zwar code-technisch schwieriger sein, ist aber imho logischer.
-
- Administrator
- Beiträge: 2675
- Registriert: Donnerstag 28. September 2006, 19:18
Re: [patch] mute icon revisited.
Erfahrungsgemäß ist es so, je benutzerfreundlicher eine Software sein soll, um so schwieriger wirds im Code. Bei Neutrino ist in dem Fall zwar viel gut gemeint, aber leider nicht immer konsequent durchgezogen. Der Benutzer merkt das zwar in der Regel nicht, weil alles wunschgemäß läuft, aber wenn man genauer hinschaut, möchte man an manchen Stellen mangels wartungsfreundlichkeit garnicht hinsehen auch wenn man es erst recht anpacken sollte. Dann wird halt entweder nichts dran gemacht oder weiter so gearbeitet und irgendwas formfolgend drangesteckt und es wird davon leider nicht besser. Das Relikt: MuteIcon ist, auch wenn es (nur) auf den ersten Blick recht banal und übersichtlich anmutet, so ein typisches Beispiel aber hier merkt sogar der Benutzer, dass was faul ist. Man muss sich hier auch mal an die eigene Nase fassen, keine Frage, aber ich denke es wird sich in nächster Zeit etwas tun.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [patch] mute icon revisited.
GetAway: in neutrino.cpp folgendes:
if (!doShowMuteIcon()) ist die Änderung, die es fixt (sorry, kein neuer Patch heute, aber ihr schafft das auch so
Edit: es gäbe dann noch ein paar mikrooptimierungen (z.B. wird bei fb->paintMuteIcon jedes mal die Datei gelesen und konvertiert; man könnte das nur einmal in den Speicher lesen/konvertieren und dann immer von dort benutzen), aber die kann man immer noch machen. Performance scheint ja nicht das Problem zu sein.
Code: Alles auswählen
»·······»·······else if(msg == CRCInput::RC_spkr && !repeat)
»·······»·······{
»·······»·······»·······if( mode == mode_standby )
»·······»·······»·······{
»·······»·······»·······»·······//switch lcd off/on
»·······»·······»·······»·······CLCD::getInstance()->togglePower();
»·······»·······»·······}
»·······»·······»·······else
»·······»·······»·······{
»·······»·······»·······»·······//mute, but only if volume is not already == 0
»·······»·······»·······»·······if (! doShowMuteIcon())
»·······»·······»·······»·······»·······AudioMute(!current_muted);
»·······»·······»·······}
»·······»·······»·······return messages_return::handled;»·······
»·······»·······}
Edit: es gäbe dann noch ein paar mikrooptimierungen (z.B. wird bei fb->paintMuteIcon jedes mal die Datei gelesen und konvertiert; man könnte das nur einmal in den Speicher lesen/konvertieren und dann immer von dort benutzen), aber die kann man immer noch machen. Performance scheint ja nicht das Problem zu sein.
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: [patch] mute icon revisited.
Der Fix funktioniert. Hier der aktualisierte Patch.GetAway hat geschrieben:Wenn man mit RC_minus auf 0 regelt, dann Mute drückt und danach wieder RC_plus
bleibt das MuteIcon stehen, ist auch egal ob man dann weiter + oder - drückt.
Ton ist trotzdem da.
neutrino-mute-icon-rework-4.diff
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [patch] mute icon revisited.
Wäre gut, wenn das noch ein paar Leute in verschiedenen Szenarien ausprobieren. Wenn es in ein paar Tagen keine negativen Rückmeldungen gibt, mach ich noch ein paar kleine Kosmetik- und performance-fixes, und dann tu ich es ins CVS.
Ach so: zum Testen empfiehlt es sich, den OSD-Bereich so klein zu machen, dass das Mute-Icon auch wirklich möglichst viele Dinge überlagert (das EPG/Service-Fenster hat z.B. bei mir keine Probleme gehabt, weil das Icon ausserhalb war )
Ach so: zum Testen empfiehlt es sich, den OSD-Bereich so klein zu machen, dass das Mute-Icon auch wirklich möglichst viele Dinge überlagert (das EPG/Service-Fenster hat z.B. bei mir keine Probleme gehabt, weil das Icon ausserhalb war )
-
- Administrator
- Beiträge: 2675
- Registriert: Donnerstag 28. September 2006, 19:18
Re: [patch] mute icon revisited.
sieht gut aus.
edit:
http://forum.tuxbox-cvs.sourceforge.net ... 29#p370729
edit:
Ich habs mal wörtlich genommen und das ganze mit der WSS-Korrektur kombiniert. Da kommte alles mögliche zum tragen, und es sieht sehr gut aus. Wer's probieren will:seife hat geschrieben: Ach so: zum Testen empfiehlt es sich, den OSD-Bereich so klein zu machen, dass das Mute-Icon auch wirklich möglichst viele Dinge überlagert (das EPG/Service-Fenster hat z.B. bei mir keine Probleme gehabt, weil das Icon ausserhalb war )
http://forum.tuxbox-cvs.sourceforge.net ... 29#p370729
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [patch] mute icon revisited.
Nachdem keiner wegen der Performance gemeckert hat, habe ich das Mute-Handling eingecheckt.
Wenn jemand noch Fehler zum Mute-Icon findet, wäre eine möglichst genaue Beschreibung welche Aktionen dazu führen zum debuggen hilfreich
P.S. Man könnte die Volume-Bar ähnlich handhaben...
Wenn jemand noch Fehler zum Mute-Icon findet, wäre eine möglichst genaue Beschreibung welche Aktionen dazu führen zum debuggen hilfreich
P.S. Man könnte die Volume-Bar ähnlich handhaben...
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: [patch] mute icon revisited.
Müsste dieser Patch
http://cvs.tuxbox-cvs.sourceforge.net/t ... 76&r2=1.77
nicht auch in src/gui/upnpbrowser.cpp zweimal angewendet werden?
http://cvs.tuxbox-cvs.sourceforge.net/t ... 76&r2=1.77
nicht auch in src/gui/upnpbrowser.cpp zweimal angewendet werden?
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [patch] mute icon revisited.
Gut möglich. upnp habe ich nie drin, drum ist es mir dort nicht aufgefallen. Schau ich mir an...
Edit: ja, muss da rein. Habe ich gerade gemacht. Erfahrungsberichte willkommen
Edit: ja, muss da rein. Habe ich gerade gemacht. Erfahrungsberichte willkommen
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: [patch] mute icon revisited.
Ein erster Funktionstest mit TV-, Radio-Modus, Internetradio
und einigen Menüs zeigte bisher keine Auffälligkeiten.
und einigen Menüs zeigte bisher keine Auffälligkeiten.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [patch] mute icon revisited.
Super. Bei mir funktioniert das auch ohne Probleme, aber ich probier ja nicht alle Funktionen durch