EPG Titel im LCD

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: EPG Titel im LCD

Beitrag von Gaucho316 »

Kann bitte mal jemand meinen Fix aus dem letzten Post ins CVS einchecken? Ich bin der festen Überzeugung, dass der funktioniert.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: EPG Titel im LCD

Beitrag von rhabarber1848 »

rhabarber1848 hat geschrieben:
rhabarber1848 hat geschrieben:neutrino_lcd_nameshort.diff
Patch aktualisiert, wieder etwas dazugelernt, danke!
Patch nochmals aktualisiert, die Reihenfolge der Locale-Einträge dürfte nun endlich korrekt sein.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: EPG Titel im LCD

Beitrag von rhabarber1848 »

Gaucho316 hat geschrieben:Kann bitte mal jemand meinen Fix aus dem letzten Post ins CVS einchecken? Ich bin der festen Überzeugung, dass der funktioniert.
Konntest Du schon ein Image selbst kompilieren? Hast Du Deinen Code testen können?
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: EPG Titel im LCD

Beitrag von Gaucho316 »

Ich habe mir ja jetzt am Wochenende eine Kompilierumgebung zusammengebaut. Ein Image aus dem CVS-Code habe ich testweise auch schon erstellt. Mehr aber leider aus Zeitmangel noch nicht. Ich werde demnächst mal alle meine Patches zusammenfassen und bei mir ausprobieren. Ich melde mich dann im Commit-Wünsche-Thread wieder.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: EPG Titel im LCD

Beitrag von GetAway »

Gaucho316 hat geschrieben:
Gaucho316 hat geschrieben:Hat man beim Abspielstart eine Tonspur auszuwählen bzw. drückt die Tonwahltaste (grüne Taste) während des Abspielens, erscheint nach Auswahl einer Tonspur die falsche LCD-Anzeige, also Sendername und Sendungstitel des zuletzt gesehenen Senders statt dem Namen der Aufnahmedatei.
Ich glaube, dass ich die Lösung für dieses Problem gefunden habe. Dieser Patch ist aber wie immer ungetestet.
@rhabarber1848

Der Dir bekannte LCD Fix :wink: , bringt auch diesen Fehler ins reine.

Allerdings habe ich, patchunabhängig, bei der testerei festgestellt, das das Bild einfriert, wenn
man während der Film läuft, die Tonspur erneut auswählt. Ton läuft weiter. Natürlich nur im MP1 :wink:
Vielleicht hilft ein "softreset"?? seife kann bestimmt etwas dazu sagen.

Hier nochmal der Patch falls einer drüberblicken möchte.

Code: Alles auswählen

Index: apps/tuxbox/neutrino/src/gui/movieplayer.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/gui/movieplayer.cpp,v
retrieving revision 1.164
diff -U3 -r1.164 movieplayer.cpp
--- a/apps/tuxbox/neutrino/src/gui/movieplayer.cpp	16 Jan 2009 16:19:35 -0000	1.164
+++ b/apps/tuxbox/neutrino/src/gui/movieplayer.cpp	3 Feb 2009 20:18:03 -0000
@@ -348,6 +348,7 @@
 #endif /* MOVIEBROWSER */
 	if(bookmarkmanager)
 		delete bookmarkmanager;
+	CLCD::getInstance()->setMode(CLCD::MODE_TVRADIO);
 	g_Zapit->setStandby (false);
 	g_Sectionsd->setPauseScanning (false);
 
@@ -420,9 +421,7 @@
 	// tell neutrino we're in ts_mode
 	CNeutrinoApp::getInstance ()->handleMsg (NeutrinoMessages::CHANGEMODE, NeutrinoMessages::mode_ts);
 	// remember last mode
-	m_LastMode =
-	(CNeutrinoApp::getInstance ()->
-	 getLastMode () | NeutrinoMessages::norezap );
+	m_LastMode = (CNeutrinoApp::getInstance()->getLastMode() | NeutrinoMessages::norezap);
 
 	// Stop sectionsd
 	g_Sectionsd->setPauseScanning (true);
@@ -487,7 +486,7 @@
 			startfilename = theBookmark->getUrl();
 			sscanf (theBookmark->getTime(), "%lld", &g_startposition);
 			int vlcpos = startfilename.rfind("vlc://");
-			CLCD::getInstance()->setMode (CLCD::MODE_TVRADIO);
+			CLCD::getInstance()->setMode(CLCD::MODE_MOVIE);
 			if(vlcpos==0)
 			{
 				PlayStream (STREAMTYPE_FILE);
@@ -515,7 +514,7 @@
 	}
 
 	// Restore last mode
-	if (true == g_ZapitsetStandbyState)
+	if (g_ZapitsetStandbyState)
 	{
 		g_Zapit->setStandby (false);
 	}
@@ -530,13 +529,13 @@
 	// Restore last mode
 	CNeutrinoApp::getInstance ()->handleMsg (NeutrinoMessages::CHANGEMODE, m_LastMode);
 	g_RCInput->postMsg( NeutrinoMessages::SHOW_INFOBAR, 0 );
+	CLCD::getInstance()->setMode(CLCD::MODE_TVRADIO);
 
-	CLCD::getInstance()->showServicename(g_RemoteControl->getCurrentChannelName());
 	// always exit all
 	if(bookmarkmanager)
 	{
 		delete bookmarkmanager;
-		bookmarkmanager=0;
+		bookmarkmanager = NULL;
 	}
 	
 	if(moviebrowser != NULL && movieBrowserDelOnExit == true)
@@ -977,7 +976,7 @@
 	//-- lcd stuff --
 	int cPercent   = 0;
 	int lPercent   = -1;
-	g_lcdSetting = g_settings.lcd_setting[SNeutrinoSettings::LCD_SHOW_VOLUME]; 
+
 	CURLcode httpres;
 	struct dmx_pes_filter_params p;
 	ssize_t wr;
@@ -1203,10 +1202,8 @@
 							if (counter == 0 || counter == 120) {
     					  		cPercent = (VlcGetStreamTime() * 100) / length;
     					  		if (lPercent != cPercent)	{
-    						  		g_settings.lcd_setting[SNeutrinoSettings::LCD_SHOW_VOLUME] = g_lcdSetting;
     						  		lPercent = cPercent;
-    						  		CLCD::getInstance()->showPercentOver(cPercent);
-    						  		g_settings.lcd_setting[SNeutrinoSettings::LCD_SHOW_VOLUME] = 1;
+								CLCD::getInstance()->showPercentOver(lPercent, true, CLCD::MODE_MOVIE);
     						  	}
 						  	   counter = 119;
 							} else {
@@ -1260,7 +1257,6 @@
 
 		checkAspectRatio(vdec, false);
 	}
-	g_settings.lcd_setting[SNeutrinoSettings::LCD_SHOW_VOLUME]=g_lcdSetting;
 
 	ioctl (vdec, VIDEO_STOP);
 	ioctl (adec, AUDIO_STOP);
@@ -1328,7 +1324,7 @@
 			StrSearchReplace(lcd,"_", " ");
 			break;
 	}
-	CLCD::getInstance()->showMoviename(lcd);
+	CLCD::getInstance()->setMovieInfo("", lcd);
 }
 
 // GMO snip start ...
@@ -2358,7 +2354,6 @@
 			if(ctx->isStream)	break;
 			if(g_lcdSetting != -1)
 			{
-				g_settings.lcd_setting[SNeutrinoSettings::LCD_SHOW_VOLUME]=g_lcdSetting;
 				g_lcdUpdateTsMode=true;
 			}
 if(g_settings.streaming_use_buffer)
@@ -2899,7 +2894,6 @@
 		//-- lcd stuff --
 		int cPercent   = 0;
 		int lPercent   = -1;
-		g_lcdSetting = g_settings.lcd_setting[SNeutrinoSettings::LCD_SHOW_VOLUME]; 
 		
 		//== (II) player loop: consists of "writer" in this thread and   ==
 		//== "reader" in an extra thread encapsulated by a queue object, ==
@@ -2929,10 +2923,8 @@
 						{
 				  			if (lPercent != cPercent)
 				  			{
-					  			g_settings.lcd_setting[SNeutrinoSettings::LCD_SHOW_VOLUME]=g_lcdSetting;
 					  			lPercent = cPercent;
-					  			CLCD::getInstance()->showPercentOver(cPercent);
-					  			g_settings.lcd_setting[SNeutrinoSettings::LCD_SHOW_VOLUME]=1;
+								CLCD::getInstance()->showPercentOver(lPercent, true, CLCD::MODE_MOVIE);
 							}
 						}
 					}
@@ -2963,7 +2955,7 @@
 		//lcd
 		short last_prozent=1;
 		g_prozent = 0;
-		g_lcdSetting=g_settings.lcd_setting[SNeutrinoSettings::LCD_SHOW_VOLUME];
+
 		while( (ctx->itChanged == false) &&
 				 (g_playstate >= CMoviePlayerGui::PLAY) )
 		{
@@ -2995,11 +2987,9 @@
 			g_prozent=(ctx->pos*100)/ctx->fileSize;
 			if((last_prozent !=g_prozent && g_lcdSetting!=1) || g_lcdUpdateTsMode)
 			{
-				g_settings.lcd_setting[SNeutrinoSettings::LCD_SHOW_VOLUME]=g_lcdSetting;
-				last_prozent=g_prozent;
-				g_lcdUpdateTsMode=false;
-				CLCD::getInstance()->showPercentOver(g_prozent);
-				g_settings.lcd_setting[SNeutrinoSettings::LCD_SHOW_VOLUME]=1;
+				last_prozent = g_prozent;
+				g_lcdUpdateTsMode = false;
+				CLCD::getInstance()->showPercentOver(last_prozent, true, CLCD::MODE_MOVIE);
 			}
 			//-- write stream data now --
 			write(ctx->dvr, ctx->tmpBuf, rd);
@@ -3007,7 +2997,6 @@
 }
 
 		//-- restore original lcd settings --			
-		g_settings.lcd_setting[SNeutrinoSettings::LCD_SHOW_VOLUME]=g_lcdSetting;
 		
 		//-- close input stream --
 		//------------------------
@@ -3430,7 +3419,7 @@
 				break;
 			}
 
-			CLCD::getInstance()->setMode (CLCD::MODE_TVRADIO);
+			CLCD::getInstance()->setMode(CLCD::MODE_MOVIE);
 			update_lcd = true;
 		}
 
@@ -4138,8 +4127,8 @@
 				if(g_playstate == CMoviePlayerGui::STOPPED)
 					break;
 			}
-
-			CLCD::getInstance ()->setMode (CLCD::MODE_TVRADIO);
+			CLCD::getInstance()->setMode(CLCD::MODE_MOVIE);
+			
 		}
 
 		if(update_info)
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: EPG Titel im LCD

Beitrag von Gaucho316 »

Ersetzt dieser Patch also die von mir "geworkaroundeten" Sachen aus diesem Posting?
http://tuxbox-forum.dreambox-fan.de/for ... 77#p364677
Das wäre ja wunderbar. :) Es richtig zu lösen ist natürlich besser. Dafür fehlt mir aber wohl noch etwas der Durchblick.

Eine Optimierung in movieplayer.cpp, die sich im Code unter obigem Link versteckt, kann aber trotzdem eingecheckt werden. Ich spreche von der Verschiebung von

Code: Alles auswählen

#endif /* MOVIEBROWSER */
Guckt euch das mal im verlinkten Code an. Falls unklar ist, was ich meine, kann ich ein Diff posten.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: EPG Titel im LCD

Beitrag von rhabarber1848 »

rhabarber1848 hat geschrieben:
rhabarber1848 hat geschrieben:
rhabarber1848 hat geschrieben:neutrino_lcd_nameshort.diff
Patch aktualisiert, wieder etwas dazugelernt, danke!
Patch nochmals aktualisiert, die Reihenfolge der Locale-Einträge dürfte nun endlich korrekt sein.
committed
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: EPG Titel im LCD

Beitrag von Gaucho316 »

*schieb*

Könnte die Kombination aus den folgenden zwei verlinkten Patches aus diesem Thread bitte endlich ins CVS wandern? Ich möchte nicht, dass die verloren gehen.

http://tuxbox-forum.dreambox-fan.de/for ... 36#p365036
http://tuxbox-forum.dreambox-fan.de/for ... 48#p365048
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: EPG Titel im LCD

Beitrag von rhabarber1848 »

So, ich habe mal die ganzen Patches zusammengepackt,
aber ohne white-space-Änderungen: EDIT: Patch ist im CVS

@ alle Beteiligten: Bitte schaut Euch nochmal den Patch an, ich habe ihn nicht getestet.
Zuletzt geändert von rhabarber1848 am Sonntag 1. März 2009, 15:04, insgesamt 2-mal geändert.
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: EPG Titel im LCD

Beitrag von Gaucho316 »

Die Zeile "break; // do not process the old stuff" kann auch noch "rausgedifft" werden. Das break nach dem "#endif /* MOVIEBROWSER */" wird ja in jedem Falle ausgeführt.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: EPG Titel im LCD

Beitrag von rhabarber1848 »

Gaucho316 hat geschrieben:Die Zeile "break; // do not process the old stuff" kann auch noch "rausgedifft" werden
Aktualisiert, aber immer noch von mir ungetestet: EDIT: Patch ist im CVS
Zuletzt geändert von rhabarber1848 am Sonntag 1. März 2009, 15:04, insgesamt 1-mal geändert.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: EPG Titel im LCD

Beitrag von rhabarber1848 »

Patch ist im CVS
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: EPG Titel im LCD

Beitrag von Gaucho316 »

Danke. :)
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: EPG Titel im LCD

Beitrag von GetAway »

Dito. :)
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: EPG Titel im LCD

Beitrag von Gaucho316 »

Durch den heute veröffentlichten JtG-Snap konnte ich die Änderungen endlich auch mal sehen. Funktioniert gut. Allerdings ist die Anzeige des Audio-Typs im LCD im Movieplayer verloren gegangen. Ist das ein Bug oder Feature? Ich habe mir das mal in lcdd.cpp angesehen. Laut dortigem Code könnte es Absicht sein, muss aber nicht.

Außerdem ist die Funktion "showMoviename" in lcdd.cpp nun wohl überflüssig und kann entfernt werden.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: EPG Titel im LCD

Beitrag von GetAway »

Gaucho316 hat geschrieben:Außerdem ist die Funktion "showMoviename" in lcdd.cpp nun wohl überflüssig und kann entfernt werden.
Sieht wohl so aus.
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: EPG Titel im LCD

Beitrag von Gaucho316 »

@seife

Also nochmal die Frage: Ist es ein Bug oder Feature, dass die Anzeige des Audio-Typs im LCD im Movieplayer durch eine deiner Änderungen verloren gegangen ist? Konkret handelt es sich um einen Teil der folgenden Änderung: http://cvs.tuxbox.org/lists/tuxbox-cvs- ... 00175.html
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: EPG Titel im LCD

Beitrag von seife »

Finde mal raus, um welchen Teil es sich handelt. (ich vermute, um diesen:

Code: Alles auswählen

  -void CLCD::showPercentOver(const unsigned char perc, const bool perform_update)
  +void CLCD::showPercentOver(const unsigned char perc, const bool perform_update, const MODES m)
   {
  +     if (mode != m)
  +             return;
  +
Welches Feature ist das genau? Das dolby/stereo-Icon? Ich habe das nicht eingestellt, drum ist es mir nicht aufgefallen ;-)

Also anders ausgedrückt: nein, Absicht ist es nicht.
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: EPG Titel im LCD

Beitrag von Gaucho316 »

Ja genau, es geht um das Stereo-/DD-Icon. Schuld müsste folgende Änderung sein:

Code: Alles auswählen

-			if(g_RemoteControl != NULL)
+
+			if (g_RemoteControl != NULL && mode == MODE_TVRADIO)
Dadurch wird das Zeichnen des Audio-Symbols im Movieplayer nicht mehr ausgeführt.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: EPG Titel im LCD

Beitrag von seife »

ich schau's mir an.
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: EPG Titel im LCD

Beitrag von Gaucho316 »

In diesem Thread geht's weiter mit der Lösung des Problems der fehlenden Anzeige des Audio-Typs im LCD im Movieplayer.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: EPG Titel im LCD

Beitrag von rhabarber1848 »

SnowHead hat den EPG-LCD-Code etwas abgewandelt, was mir persönlich besser gefällt,
da in der Einstellung "Kanal kurz / Sendung" die Anzeige der Sendernamen länger ist.
Allerdings wird dafür ein kleinerer Zeichensatz verwendet.

Bevor ich etwas ins CVS committe, möchte ich hier einige lcshots zeigen:

Links immer die veränderte Version, rechts das CVS-Original:
Bild Bild

Bild Bild

Bild Bild

Bild Bild

Bild Bild

Bild Bild

Hier der Patch zum Thema: lcdd.diff
Striper
Erleuchteter
Erleuchteter
Beiträge: 625
Registriert: Samstag 8. September 2007, 16:17

Re: EPG Titel im LCD

Beitrag von Striper »

++
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: EPG Titel im LCD

Beitrag von GetAway »

Dito. :D
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: EPG Titel im LCD

Beitrag von seife »

Was - ausser dem Zeichensatz - ist da jetzt anders?

Ansonsten - Coding style:

Code: Alles auswählen

if(namelines==1 && eventlines==1)
muss

Code: Alles auswählen

if (namelines == 1 && eventlines == 1)
heissen,

Code: Alles auswählen

if(maxnamelines>1)
bitte

Code: Alles auswählen

if (maxnamelines > 1)
und

Code: Alles auswählen

lcentered=false;
als

Code: Alles auswählen

lcentered = false;
vermutlich noch ein paar mehr ;)