Wartezeit bei Zifferneingabe zur direkten Kanalanwahl

Alles rund um das grafische Benutzerinterface Enigma
mrvica
Einsteiger
Einsteiger
Beiträge: 342
Registriert: Freitag 24. September 2004, 12:48

Wartezeit bei Zifferneingabe zur direkten Kanalanwahl

Beitrag von mrvica »

Anfrage aus einem anderen Board
wenn man einen Kanal direkt über die Ziffern anwählt, wartet die Box ca. 3 Sekunden, ob noch weitere Ziffern kommen (ich weiß, mit "OK" kann man das beenden). Gibt es eine Möglichkeit, diese geschätzten 3 Sekunden über irgendeine Einstellung zu verkürzen?
mich störts auch, dies behebt die unnötige Wartezeit, default Einstellungen sind eh was für Opa, Oma, 4 stellige Sendernummern (max. 9999) in der grossen Senderliste kann man sich kaum merken, nicht mal die in den eigenen Bouquets (bis 999 und drüber), direkte Kanalwahl ist meistens ein oder zweistellig, geht jetzt damit ziemlich flott und macht wirklich Spass, ebenso Volume Bar nervt, bleibt ewig lang eingeblendet, die Einblendzeit um die Hälfte verkürtzt

Code: Alles auswählen

--- enigma_main.cpp.cvs	Sat Nov 05 13:54:36 2011
+++ enigma_main.cpp	Wed Feb 15 17:48:08 2012
@@ -1276,7 +1276,7 @@
 	CONNECT(number->numberChanged, eServiceNumberWidget::numberChanged );
 
 	timer=new eTimer(eApp);
-	timer->start(2000,true);
+	timer->start(1000,true);
 	CONNECT(timer->timeout, eServiceNumberWidget::timeout);
 }
 
@@ -1288,7 +1288,7 @@
 
 void eServiceNumberWidget::numberChanged()
 {
-	timer->start(2000,true);
+	timer->start(500,true);
 }
 
 eZapMain *eZapMain::instance;
@@ -3008,7 +3008,7 @@
 	if ((!currentFocus) || (currentFocus == this))
 	{
 		volume.show();
-		volumeTimer.start(2000, true);
+		volumeTimer.start(1000, true);
 	}
 }
 
@@ -3045,7 +3045,7 @@
 	if ((!currentFocus) || (currentFocus == this))
 	{
 		volume.show();
-		volumeTimer.start(2000, true);
+		volumeTimer.start(1000, true);
 	}
 }
mrvica
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: Wartezeit bei Zifferneingabe zur direkten Kanalanwahl

Beitrag von Gaucho316 »

In Neutrino ist dieser Wert konfigurierbar. Vielleicht sollte man das in Enigma auch so machen.
mrvica
Einsteiger
Einsteiger
Beiträge: 342
Registriert: Freitag 24. September 2004, 12:48

Re: Wartezeit bei Zifferneingabe zur direkten Kanalanwahl

Beitrag von mrvica »

wäre gut, zumindest dass man es in config eintragen kann, im Setup wäre natürlicher besser, wenn dbluelle mal Zeit hat oder wieder im Lande ist, ich kann hier nur als Beta-Tester fungieren, nur ganz simple Sachen kann ich machen, findet ihr nicht dass Enigma zu kurz kommt, jeder ist hier willkommen zur Weiterentwicklung-verbesserung beizutragen

mrvica
st-temp

Re: Wartezeit bei Zifferneingabe zur direkten Kanalanwahl

Beitrag von st-temp »

Wie würdest Du das machen?
In 1/2 Sekunden als Auswahl(rechts links) - oder Werteingabe in Millisekunden?

Anstelle des Wertes eine Variable hinschreiben und die woanders (ja wo eigentlich - RC-Setup vlt?) auswählbar zu machen ist jetzt keine soo große Hürde...
mrvica
Einsteiger
Einsteiger
Beiträge: 342
Registriert: Freitag 24. September 2004, 12:48

Re: Wartezeit bei Zifferneingabe zur direkten Kanalanwahl

Beitrag von mrvica »

es reichen die Änderungen in /var/tuxbox/config/enigma/config würde ich sagen, ist eh was für Experten

Code: Alles auswählen

--- enigma_main.cpp.cvs	Sat Nov 05 13:54:36 2011
+++ enigma_main.cpp	Mon Feb 20 21:07:08 2012
@@ -1259,6 +1259,20 @@
 }
 void eServiceNumberWidget::init_eServiceNumberWidget(int initial)
 {
+// get channelKeypressedInitDelay in ms
+	int channelKeypressedInitDelay;
+	if ((eConfig::getInstance()->getKey("/enigma/channelKeypressedInitDelay", channelKeypressedInitDelay)) != 0)
+	{
+		channelKeypressedInitDelay = 2000;
+		eConfig::getInstance()->setKey("/enigma/channelKeypressedInitDelay", channelKeypressedInitDelay);
+	}
+
+	if ((channelKeypressedInitDelay < 500) || (channelKeypressedInitDelay > 3000))
+	{
+		if (channelKeypressedInitDelay < 500) channelKeypressedInitDelay = 500;
+		if (channelKeypressedInitDelay > 3000) channelKeypressedInitDelay = 3000;
+		eConfig::getInstance()->setKey("/enigma/channelKeypressedInitDelay", channelKeypressedInitDelay);
+	}
 	setText(_("Channel"));
 	move(ePoint(200, 140));
 	resize(eSize(280, 120));
@@ -1276,7 +1290,7 @@
 	CONNECT(number->numberChanged, eServiceNumberWidget::numberChanged );
 
 	timer=new eTimer(eApp);
-	timer->start(2000,true);
+	timer->start(channelKeypressedInitDelay,true);
 	CONNECT(timer->timeout, eServiceNumberWidget::timeout);
 }
 
@@ -1751,6 +1765,20 @@
 		eConfig::getInstance()->setKey("/enigma/timeoutInfobar", timeoutInfobar);
 	}
 
+// get Volumebar timeout in ms
+	if ((eConfig::getInstance()->getKey("/enigma/timeoutVolumebar", timeoutVolumebar)) != 0)
+	{
+		timeoutVolumebar = 2000;
+		eConfig::getInstance()->setKey("/enigma/timeoutVolumebar", timeoutVolumebar);
+	}
+
+	if ((timeoutVolumebar < 500) || (timeoutVolumebar > 3000))
+	{
+		if (timeoutVolumebar < 500) timeoutVolumebar = 500;
+		if (timeoutVolumebar > 3000) timeoutVolumebar = 3000;
+		eConfig::getInstance()->setKey("/enigma/timeoutVolumebar", timeoutVolumebar);
+	}
+
 // Mute Symbol
 	gPixmap *pm = eSkin::getActive()->queryImage("mute_symbol");
 	int x = eSkin::getActive()->queryValue("mute.pos.x", 0),
@@ -3008,7 +3036,7 @@
 	if ((!currentFocus) || (currentFocus == this))
 	{
 		volume.show();
-		volumeTimer.start(2000, true);
+		volumeTimer.start(timeoutVolumebar, true);
 	}
 }
 
@@ -3045,7 +3073,7 @@
 	if ((!currentFocus) || (currentFocus == this))
 	{
 		volume.show();
-		volumeTimer.start(2000, true);
+		volumeTimer.start(timeoutVolumebar, true);
 	}
 }

Code: Alles auswählen

--- enigma_main.h.cvs	Sat May 14 14:34:50 2011
+++ enigma_main.h	Mon Feb 20 20:58:46 2012
@@ -363,6 +363,7 @@
 	int dvrfunctions;
 	int stateOSD;
 	int timeoutInfobar;
+	int timeoutVolumebar;
 	eEPGSearchDATA *cEPGSearchDATA;
 	// eRecordingStatus *recstatus;
nach dem auschecken die Box einmal herunterfahren damit die Einstellungen in config gespeichert werden, nach Neustart werdet ihr 2 neue Zeilen bekommen

Code: Alles auswählen

i:/enigma/timeoutVolumebar=000007d0
i:/enigma/channelKeypressedInitDelay=000007d0
die Werte sind in hex 7d0h=2000d Voreinstellung wie im CVS, für 1000ms würde das dann so aussehen

Code: Alles auswählen

i:/enigma/timeoutVolumebar=000003e8
i:/enigma/channelKeypressedInitDelay=000003e8
wichtig, die Werte in config ändern, abspeichern und dann Box resetten, sonst würden die letzten Werte aus dem Speicher wieder beim Herunterfahren überschrieben
würde man das noch im Setup machen wollen, müsste man dann src/setup_osd_extra.cpp anpassen, ähnlich wie das für timeoutInfobar gemacht wurde

mrvica
mrvica
Einsteiger
Einsteiger
Beiträge: 342
Registriert: Freitag 24. September 2004, 12:48

Re: Wartezeit bei Zifferneingabe zur direkten Kanalanwahl

Beitrag von mrvica »

das kann ins CVS, konnte nach 4 Wochen Testens nichts negatives feststellen

mrvica
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Wartezeit bei Zifferneingabe zur direkten Kanalanwahl

Beitrag von rhabarber1848 »

mrvica hat geschrieben:würde man das noch im Setup machen wollen, müsste man dann src/setup_osd_extra.cpp anpassen, ähnlich wie das für timeoutInfobar gemacht wurde
wenn schon, denn schon ;) Ungetesteter Patch: enigma_keydelays.diff
Zuletzt geändert von rhabarber1848 am Montag 19. März 2012, 19:33, insgesamt 1-mal geändert.
Grund: Patch aktualisiert, compile-getestet
mrvica
Einsteiger
Einsteiger
Beiträge: 342
Registriert: Freitag 24. September 2004, 12:48

Re: Wartezeit bei Zifferneingabe zur direkten Kanalanwahl

Beitrag von mrvica »

wollte ich auch machen, die Infobar Ausblendzeit benutzt ja sleep (nur volle Sekunden), Volumebar und Kanaleingabe usleep (in ms genau), hat mich ein bisschen davon abgehalten, dachte die Werte kommen dann durcheinander, will man da z.B. 1250ms dann müsste es 1.25x1000 heissen, 1.25 ist dann schon kein integer mehr, vielleicht geht auch 125x10, im Menü dann soll aber 1.25 angezeigt werden, da muss ich passen, im Prinzip gehen auch volle Sekunden da 1 Sek. oder 1000ms ziemlich guter Richtwert, 2000ms eindeutig zuviel

mrvica
dbluelle
Contributor
Beiträge: 319
Registriert: Samstag 29. Mai 2004, 18:49

Re: Wartezeit bei Zifferneingabe zur direkten Kanalanwahl

Beitrag von dbluelle »

Ich habe den Patch von rhabarber1848 noch ein bisschen überarbeitet und eingecheckt.
Jetzt sind die timeouts in 0,5-Sekunden-Schritten einstellbar (jeweils von 0,5 bis 6 Sekunden).

dbluelle