[patch] mute icon revisited.

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

[patch] mute icon revisited.

Beitrag von seife »

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.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: [patch] mute icon revisited.

Beitrag von GetAway »

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:

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
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [patch] mute icon revisited.

Beitrag von seife »

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.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [patch] mute icon revisited.

Beitrag von seife »

seife hat geschrieben:* EPG-Statistik ist noch kaputt, schau ich mir grad an
geht jetzt: neutrino-mute-icon-rework-3.diff

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).
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: [patch] mute icon revisited.

Beitrag von GetAway »

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. :wink:
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: [patch] mute icon revisited.

Beitrag von GetAway »

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.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [patch] mute icon revisited.

Beitrag von seife »

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 ;)
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: [patch] mute icon revisited.

Beitrag von rhabarber1848 »

seife hat geschrieben:...habe ich übrigens schonmal erwähnt, dass ich das "show mute icon when volume=0"-Feature doof finde? ;)
Welchen default schlägst Du vor?
Ich habe mir dazu noch nie Gedanken gemacht.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: [patch] mute icon revisited.

Beitrag von GetAway »

Ein default für mich wäre z.B., wenn die Volumenbar bei "0" sichtbar bliebe.
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: [patch] mute icon revisited.

Beitrag von dbt »

Schön dass du dich dem Relikt angenommen hast, war längst fällig. Danke schonmal.
seife hat geschrieben: ...habe ich übrigens schonmal erwähnt, dass ich das "show mute icon when volume=0"-Feature doof finde? ;)
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.
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 :wink: 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.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [patch] mute icon revisited.

Beitrag von seife »

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?
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: [patch] mute icon revisited.

Beitrag von rhabarber1848 »

seife hat geschrieben:Ich hätte das feature am liebsten ganz weg
Soll bei Lautstärke = 0 immer das Mute-Icon da sein oder gar keins?
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.
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: [patch] mute icon revisited.

Beitrag von dbt »

seife hat geschrieben:und wofür ist der g_settings.show_mute_icon == 2 Fall (nur, wenn kein dolby-digital) gut?
Auf das könnte man evtl. verzichten, aber da müsste man mal den Thread suchen wo das angebracht wurde.
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.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [patch] mute icon revisited.

Beitrag von seife »

rhabarber1848 hat geschrieben:warum jemand dagegen sein könnte, erschließt sich mir nicht.
Aber es macht den Code unnötig hässlich und kompliziert ;)
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.
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.

Ich schau's mir an, aber heute nicht mehr.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: [patch] mute icon revisited.

Beitrag von rhabarber1848 »

seife hat geschrieben:
rhabarber1848 hat geschrieben:warum jemand dagegen sein könnte, erschließt sich mir nicht.
Aber es macht den Code unnötig hässlich und kompliziert ;)
Je mehr ich darüber nachdenke, desto mehr gefällt mir die Idee:

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.
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: [patch] mute icon revisited.

Beitrag von dbt »

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. :wink:
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [patch] mute icon revisited.

Beitrag von seife »

GetAway: in neutrino.cpp folgendes:

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;»·······
»·······»·······}
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.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: [patch] mute icon revisited.

Beitrag von GetAway »

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.
Der Fix funktioniert. Hier der aktualisierte Patch.
neutrino-mute-icon-rework-4.diff
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [patch] mute icon revisited.

Beitrag von seife »

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 ;))
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: [patch] mute icon revisited.

Beitrag von dbt »

:D sieht gut aus.
edit:
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 ;))
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:
http://forum.tuxbox-cvs.sourceforge.net ... 29#p370729
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [patch] mute icon revisited.

Beitrag von seife »

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...
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: [patch] mute icon revisited.

Beitrag von rhabarber1848 »

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?
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [patch] mute icon revisited.

Beitrag von seife »

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 ;)
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: [patch] mute icon revisited.

Beitrag von rhabarber1848 »

Ein erster Funktionstest mit TV-, Radio-Modus, Internetradio
und einigen Menüs zeigte bisher keine Auffälligkeiten.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [patch] mute icon revisited.

Beitrag von seife »

Super. Bei mir funktioniert das auch ohne Probleme, aber ich probier ja nicht alle Funktionen durch ;)