Aktueller sectionsd und weitere Ambitionen?

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Nico 77
Semiprofi
Semiprofi
Beiträge: 1383
Registriert: Freitag 18. April 2003, 15:12

Beitrag von Nico 77 »

Ja wird deutlich schneller! Hat aber auch seine Schattenseite.

Wenn man das Bouquet runter scrollt(z.b. eine Seite nach unten) um zu schauen was auf einem anderen Sender läuft und später wieder die Bouquetliste aufruft fehlt das komplette EPG in der Bouquetliste bis zu einem erneuten Aufruf der Bouquetliste.
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

ja, da fehlt irgendwo noch ein updateEvents()
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Wenn man das Bouquet runter scrollt(z.b. eine Seite nach unten) um zu schauen was auf einem anderen Sender läuft und später wieder die Bouquetliste aufruft fehlt das komplette EPG in der Bouquetliste bis zu einem erneuten Aufruf der Bouquetliste.
So, sollte jetzt auch gehen.

Code: Alles auswählen

RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/gui/channellist.cpp,v
retrieving revision 1.179
diff -u -r1.179 channellist.cpp
--- a/channellist.cpp	8 Jun 2006 20:19:43 -0000	1.179
+++ b/channellist.cpp	13 Jul 2006 20:25:12 -0000
@@ -125,12 +125,11 @@
 {
 	t_channel_id *p_requested_channels = NULL;
 	int size_requested_channels = 0;
-
-	if (chanlist.size()) {
-		size_requested_channels = chanlist.size()*sizeof(t_channel_id);
+	if (listmaxshow) {
+		size_requested_channels = listmaxshow*sizeof(t_channel_id);
 		p_requested_channels 	= (t_channel_id*)malloc(size_requested_channels);
-		for (uint count=0; count<chanlist.size(); count++){
-			p_requested_channels[count] = chanlist[count]->channel_id;
+		for (uint count=0; count<listmaxshow; count++){
+			if (liststart+count<chanlist.size()) p_requested_channels[count] = chanlist[liststart+count]->channel_id;
 		}
 	}
 
@@ -234,7 +233,7 @@
 	y=(((g_settings.screen_EndY- g_settings.screen_StartY)-( height+ info_height) ) / 2) + g_settings.screen_StartY;
 
 	paintHead();
-	updateEvents();
+//	updateEvents();
 	paint();
 
 	int oldselected = selected;
@@ -534,7 +533,7 @@
 
 	selected= pos;
 	CChannel* chan = chanlist[selected];
-  lastChList.store (selected, chan->channel_id, forceStoreToLastChannels);
+	lastChList.store (selected, chan->channel_id, forceStoreToLastChannels);
 
 	if ( pos!=(int)tuned )
 	{
@@ -1105,6 +1104,7 @@
 
 	liststart = (selected/listmaxshow)*listmaxshow;
 	int lastnum =  chanlist[liststart]->number + listmaxshow;
+	updateEvents();
 
 	if(lastnum<10)
 		numwidth = g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST_NUMBER]->getRenderWidth("0");
just_me
Einsteiger
Einsteiger
Beiträge: 123
Registriert: Montag 28. November 2005, 11:31

Beitrag von just_me »

Könnte der "body" eines if() statements immer in eine eigene Zeile kommen, so dass man z.B. eine Chance hätte, mit einem Debugger einen Breakpoint zu setzen?
Beim zeilenweisen "Steppen" sähe man bei separaten Zeilen ebenfalls gleich, ob der body ausgeführt wurde.

Also etwa:

Code: Alles auswählen

if (liststart+count<chanlist.size()) 
        p_requested_channels[count] = chanlist[liststart+count]->channel_id;
Statt:

Code: Alles auswählen

if (liststart+count<chanlist.size()) p_requested_channels[count] = chanlist[liststart+count]->channel_id;
Danke,
Frieder
Nico 77
Semiprofi
Semiprofi
Beiträge: 1383
Registriert: Freitag 18. April 2003, 15:12

Beitrag von Nico 77 »

@Houdini
Funktioniert nun wunderbar, danke!! :D