Info bei EPG Änderung

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

Info bei EPG Änderung

Beitrag von Gaucho316 »

Am 30.06.2007 wurde "Info bei EPG Änderung" eingecheckt. Irgendwie ist das, was da eingecheckt wurde, fehlerhaft und für mich nicht ganz schlüssig. Deshalb habe ich folgende Änderungsvorschläge.

remotecontrol.cpp
CVS:

Code: Alles auswählen

// infobar indicate on epg change 
if(g_settings.infobar_show == 1)
{
}
if(g_settings.infobar_show == 2)
{
	g_RCInput->postMsg( NeutrinoMessages::SHOW_INFOBAR , 0 );
}
Vorschlag:

Code: Alles auswählen

// infobar indicate on epg change 
if(g_settings.infobar_show)
{
	g_RCInput->postMsg( NeutrinoMessages::SHOW_INFOBAR , 0 );
}
neutrino.cpp
CVS:

Code: Alles auswählen

#define INFOBAR_SHOW_OPTIONS_COUNT 3
const CMenuOptionChooser::keyval  INFOBAR_SHOW_OPTIONS[INFOBAR_SHOW_OPTIONS_COUNT]=
{
	{ 0 , LOCALE_OPTIONS_OFF },
	{ 1 , LOCALE_PICTUREVIEWER_RESIZE_SIMPLE },
	{ 2 , LOCALE_PICTUREVIEWER_RESIZE_COLOR_AVERAGE }
};
Vorschlag: Diesen Code löschen.

neutrino.cpp
CVS:

Code: Alles auswählen

miscSettings.addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SHOW, &g_settings.infobar_show, INFOBAR_SHOW_OPTIONS, INFOBAR_SHOW_OPTIONS_COUNT, true));
Vorschlag:

Code: Alles auswählen

miscSettings.addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SHOW, &g_settings.infobar_show, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true));
pr0xyzer
Neugieriger
Neugieriger
Beiträge: 10
Registriert: Freitag 22. Dezember 2006, 20:19

Beitrag von pr0xyzer »

Das würde mir auch besser gefallen, werde das mal bei mir patchen :)

--EDIT--

Habe eben mal ein Image gebaut und getestet, klasse nun klappt das sogar :D Wäre wohl nicht schlecht wenn man das im CVS austauschen würde....
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ihr habt nicht begriffen, was da noch rein soll :)
schaut euch den code mal genau an !
einmal simpel und einmal komplexe einblendung.
simpel soll nur den nächsten titel kurz auf den tv zeigen (option1)
komplex soll die komplette infobar einblenden(option2, die jetzt schon geht)

ich hab auch die option1 fertig, nur wird das so nie ins cvs gehen.
pr0xyzer
Neugieriger
Neugieriger
Beiträge: 10
Registriert: Freitag 22. Dezember 2006, 20:19

Beitrag von pr0xyzer »

Das Problem ist das nur "erweitert" funktioniert, und dann auch nicht gespeichert wird. Nach dem Neustart ist es wieder auf "einfach" und eine EPG Info kommt nicht mehr...
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Beitrag von Gaucho316 »

Wenn es wirklich so bleiben soll, wie es ist, dann muss aber trotzdem etwas geändert werden, damit die Einstellung richtig in der neutrino.conf gespeichert wird.

neutrino.cpp
CVS:

Code: Alles auswählen

g_settings.infobar_show             = configfile.getBool("infobar_show"              , false);
...
configfile.setBool("infobar_show"              , g_settings.infobar_show);
Änderung:

Code: Alles auswählen

g_settings.infobar_show             = configfile.getInt32("infobar_show"              , 0);
...
configfile.setInt32("infobar_show"              , g_settings.infobar_show);
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ja die änderungen hab ich alle schon mal per mail verschickt.
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Beitrag von Gaucho316 »

mb405 hat geschrieben:ich hab auch die option1 fertig, nur wird das so nie ins cvs gehen.
Weil?
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

in settings.h

Code: Alles auswählen

int infobar_show;
in neutrino.cpp

Code: Alles auswählen

g_settings.infobar_show             = configfile.getInt32( "infobar_show"             , 0);
...
configfile.setInt32("infobar_show"             , g_settings.infobar_show);
...
#define INFOBAR_SHOW_OPTIONS_COUNT 3
const CMenuOptionChooser::keyval  INFOBAR_SHOW_OPTIONS[INFOBAR_SHOW_OPTIONS_COUNT]=
{
	{ 0 , LOCALE_OPTIONS_OFF },
	{ 1 , LOCALE_PICTUREVIEWER_RESIZE_SIMPLE },
	{ 2 , LOCALE_PICTUREVIEWER_RESIZE_COLOR_AVERAGE }
};
in remotecontrol.cpp

Code: Alles auswählen

//infobar anzeigen bei epg wechsel
					if(g_settings.infobar_show == 1)	//einfach
						{
						g_InfoViewer->show_Info(true);
						}
					if(g_settings.infobar_show == 2)	//aufwendig
						{
						g_RCInput->postMsg( NeutrinoMessages::SHOW_INFOBAR , 0 );
						}
in infoviewer.cpp

Code: Alles auswählen

void CInfoViewer::show_Info( bool calledFromRemote)	//einfache einblendung bei sendungswechsel
{
        int BoxTeilX  = (BoxEndX-BoxStartX)/10;
        char runningStart[10];
	char nextStart[10];
	
	struct tm *pStartZeit = localtime(&info_CurrentNext.current_zeit.startzeit);
		sprintf( (char*)&runningStart, "%02d:%02d", pStartZeit->tm_hour, pStartZeit->tm_min );
		
	struct tm *pnStartZeit = localtime(&info_CurrentNext.next_zeit.startzeit);
		sprintf( (char*)&nextStart, "%02d:%02d", pnStartZeit->tm_hour, pnStartZeit->tm_min);

	frameBuffer->paintBackgroundBoxRel(BoxStartX+ (BoxTeilX*1), BoxStartY - 185, (BoxTeilX*8), 130); // Killen einer vorhandenen Box
	
	frameBuffer->paintBoxRel(BoxStartX+ (BoxTeilX*1), BoxStartY -185, (BoxTeilX*8), 130, COL_INFOBAR_PLUS_0); //Box malen...
		g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_CHANNAME]->RenderString(BoxStartX+(BoxTeilX*3), BoxStartY - 130, (BoxTeilX*5), "Folgende Sendung:", COL_INFOBAR, 0, true); // UTF-8
		
	if (strcmp(runningStart, nextStart) == 0)
		{
		g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_INFO]->RenderString(BoxStartX+(BoxTeilX*1)+ 10,	BoxStartY - 100, (BoxTeilX*7), info_CurrentNext.current_name, COL_INFOBAR);
		g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_INFO]->RenderString(BoxStartX+(BoxTeilX*4)+ 20,	BoxStartY - 70, (BoxTeilX*4), runningStart, COL_INFOBAR);
		}
	else
		{
		g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_INFO]->RenderString(BoxStartX+(BoxTeilX*1)+ 10,	BoxStartY - 100, (BoxTeilX*7), info_CurrentNext.current_name, COL_INFOBAR);
		g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_INFO]->RenderString(BoxStartX+(BoxTeilX*3)+ 15,	BoxStartY - 70, (BoxTeilX*5), runningStart, COL_INFOBAR);
		g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_INFO]->RenderString(BoxStartX+(BoxTeilX*4)+ 25,	BoxStartY - 70, (BoxTeilX*4), "bis", COL_INFOBAR);
		g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_INFO]->RenderString(BoxStartX+(BoxTeilX*5)+ 15,	BoxStartY - 70, (BoxTeilX*3), nextStart, COL_INFOBAR);
		}
	
	sleep(3);
	frameBuffer->paintBackgroundBoxRel(BoxStartX+ (BoxTeilX*1), BoxStartY - 185, (BoxTeilX*8), 130); // Killen der Box
}
infoviewer.h

Code: Alles auswählen

void show_Info( bool calledFromRemote = false );
und schon sollte das gehen. es ist aber halt nicht eincheckungswürdig,da es sehr unsauber programmiert wurde :( aber es funktioniert. das ist für mich die hauptsache.
pr0xyzer
Neugieriger
Neugieriger
Beiträge: 10
Registriert: Freitag 22. Dezember 2006, 20:19

Beitrag von pr0xyzer »

Mir ist es auch egal wie es ausschaut Hauptsache es klappt ;)
Werde mir das mal einbauen und die tage ein neues Image bauen :)
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Bin ja jetzt wieder aus dem Urlaub da und werde dem Nitr8 das mal uebersetzen ;-)