In EPG-Vorschau Timersymbole einblenden

Wünsche, Anträge, Fehlermeldungen
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

In EPG-Vorschau Timersymbole einblenden

Beitrag von Günther »

Wie wäre es in der EPG-Vorschau ein Symbol einzublenden, wenn für die betreffende Sendung bereits ein Aufnahmetimer existiert , bzw. wenn es bereits eine andere Aufnahme zu der Zeit gibt?

Habe mal auf die Schnelle einen Patch gemacht, welcher die Symbole rot (=Sendung ist zur Aufnahme vorgemerkt) und gelb (=eine andere Sendung wird zu dieser Zeit aufgenommen) verwendet. Bei rot erscheint in der Hinweisleiste anstatt dem 'rot Aufnehmen' ein 'rot Löschen'. Damit kann der betreffende Timer gelöscht werden.

Das ganze wird nur angezeigt, wenn Aufnahme aktiviert ist UND in der Tastaturbelegung 'Aufnahme-Timer hinzufügen' definiert ist.

Wenn jemand Lust hat kann er ja mal testen ob es irgendwelche Probleme gibt (auch die Geschwindkeit bei vielen Timern mal testen).

Als Symbole könnte man ev. noch aussagekräftigerere designen (Designer vor!). Auch andere Verbesserungsvorschläge sind (wie immer ;) )herzlich willkommen.

Wenn es keine Probleme gibt, würde ich das ganze noch ein wenig code-technisch aufarbeiten und einstellen.

Günther

PS: Keine Sorge, um die Altlasten kümmere ich mich die Tage auch noch ;)

Code: Alles auswählen

### Eclipse Workspace Patch 1.0
#P work
Index: apps/tuxbox/neutrino/src/gui/eventlist.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/gui/eventlist.cpp,v
retrieving revision 1.107
diff -u -r1.107 eventlist.cpp
--- apps/tuxbox/neutrino/src/gui/eventlist.cpp	6 Jul 2007 21:07:23 -0000	1.107
+++ apps/tuxbox/neutrino/src/gui/eventlist.cpp	4 Sep 2007 16:42:07 -0000
@@ -114,6 +114,8 @@
 	y=(((g_settings.screen_EndY- g_settings.screen_StartY)-height) / 2) + g_settings.screen_StartY;
 	liststart = 0;
 	sort_mode = 0;
+	
+	UpdateTimerList();
 }
 
 
@@ -121,6 +123,37 @@
 {
 }
 
+void EventList::UpdateTimerList(void)
+{
+	if ((g_settings.recording_type != CNeutrinoApp::RECORDING_OFF) &&
+		(g_settings.key_channelList_addrecord != (int)CRCInput::RC_nokey))
+	{
+		//CTimerdClient timerdclient;
+		//if(timerdclient.isTimerdAvailable())
+		timerlist.clear();
+		Timer.getTimerList (timerlist);
+	}
+}
+
+// return event if exact timer found
+// return -1 if no timer found
+// return -2 if any timer was found
+int EventList::isTimer(time_t starttime,time_t endtime,event_id_t epgid)
+{
+	if ((g_settings.recording_type != CNeutrinoApp::RECORDING_OFF) &&
+		(g_settings.key_channelList_addrecord != (int)CRCInput::RC_nokey))
+	{
+		for(unsigned int i= 0; i < timerlist.size(); i++)
+		{
+			if(timerlist[i].epgID == epgid)
+				return timerlist[i].eventID;
+			if(timerlist[i].stopTime  > starttime &&
+			   timerlist[i].alarmTime < endtime)
+				return -2;
+		}
+	}
+	return -1;
+}
 
 void EventList::readEvents(const t_channel_id channel_id)
 {
@@ -276,6 +309,12 @@
 				paint();
 			else
 				paintItem(selected - liststart);
+			
+			if ((g_settings.recording_type != CNeutrinoApp::RECORDING_OFF) &&
+				(g_settings.key_channelList_addrecord != (int)CRCInput::RC_nokey))
+			{
+				showFunctionBar(true);
+			}
 		}
 		else if ((msg==CRCInput::RC_down || msg==(neutrino_msg_t)g_settings.key_channelList_pagedown))
 		{
@@ -295,6 +334,12 @@
 				paint();
 			else
 				paintItem(selected - liststart);
+			
+			if ((g_settings.recording_type != CNeutrinoApp::RECORDING_OFF) &&
+				(g_settings.key_channelList_addrecord != (int)CRCInput::RC_nokey))
+			{
+				showFunctionBar(true);
+			}
 		}
 		else if (msg == (neutrino_msg_t)g_settings.key_channelList_sort)
 		{
@@ -341,7 +386,8 @@
 			if (g_settings.recording_type != CNeutrinoApp::RECORDING_OFF)
 			{
 				CTimerdClient timerdclient;
-				if(timerdclient.isTimerdAvailable())
+				int timerID = isTimer(evtlist[selected].startTime,evtlist[selected].startTime + evtlist[selected].duration,evtlist[selected].eventID);
+				if(timerdclient.isTimerdAvailable() && timerID < 0)
 				{
 					std::string recDir = g_settings.recording_dir[0];
 					if (g_settings.recording_choose_direct_rec_dir)
@@ -378,9 +424,17 @@
 						} else {
 							ShowLocalizedMessage(LOCALE_TIMER_EVENTRECORD_TITLE, LOCALE_TIMER_EVENTRECORD_MSG, CMessageBox::mbrBack, CMessageBox::mbBack, "info.raw");
 						}
+						UpdateTimerList();
+						paintItem(selected - liststart);
 					}
-
-
+				}
+				else if (timerdclient.isTimerdAvailable() )
+				{
+					// Timer already available in Timerlist, remove now
+					printf("remove timer\n");
+					timerdclient.removeTimerEvent(timerID);
+					UpdateTimerList();
+					paintItem(selected - liststart);
 				}
 				else
 					printf("timerd not available\n");
@@ -543,6 +597,15 @@
 		g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMSMALL]->RenderString(x+width-fwidth2-5- 20, ypos+ fheight1+3, fwidth2, duration_str, color, 0, true); // UTF-8
 		// 2nd line
 		g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMLARGE]->RenderString(x+ 20, ypos+ fheight, width- 25- 20, evtlist[liststart+pos].description, color);
+		int timerID = isTimer(evtlist[liststart+pos].startTime,evtlist[liststart+pos].startTime + evtlist[liststart+pos].duration,evtlist[liststart+pos].eventID);
+		if(timerID == -2)
+		{
+			frameBuffer->paintIcon(NEUTRINO_ICON_BUTTON_YELLOW, x+1, ypos+ fheight1+2);
+		}
+		else if(timerID >= 0)
+		{
+			frameBuffer->paintIcon(NEUTRINO_ICON_BUTTON_RED, x+1, ypos+ fheight1+2);
+		}
 	}
 }
 
@@ -621,7 +684,11 @@
 	{
 		keyhelper.get(&key, &icon, g_settings.key_channelList_addrecord);
 		frameBuffer->paintIcon(icon, bx+8+cellwidth*pos, by+h_offset);
-		g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]->RenderString(bx+bdx+cellwidth*pos, by+bh-h_offset, bw-30, g_Locale->getText(LOCALE_EVENTLISTBAR_RECORDEVENT), COL_INFOBAR, 0, true); // UTF-8
+		int timerID = isTimer(evtlist[selected].startTime,evtlist[selected].startTime + evtlist[selected].duration,evtlist[selected].eventID);
+		if(timerID >= 0)
+			g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]->RenderString(bx+bdx+cellwidth*pos, by+bh-h_offset, bw-30, g_Locale->getText(LOCALE_TIMERLIST_DELETE), COL_INFOBAR, 0, true); // UTF-8
+		else
+			g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]->RenderString(bx+bdx+cellwidth*pos, by+bh-h_offset, bw-30, g_Locale->getText(LOCALE_EVENTLISTBAR_RECORDEVENT), COL_INFOBAR, 0, true); // UTF-8
 		pos++;
 	}
 
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

@Guenther ;-)

Super !

Mein Sky+ zeigt das in der Infobar mit einem roten R vor dem EPG Eintrag an wenn man blaettert.

EDIT:

Bild

Bild

Bild


K steht uebrigens fuer Keep und damit kann man sendungen vor dem Loeschen schuetzen.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Speedy aus England war mal so frei

http://www.pt-1.net/speedy/red_r.zip

Bild
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Beitrag von Günther »

Danke, werde ich mal ausprobieren (eben läuft aber auf meiner Kiste noch ne aufnahme ;) )
Das gleich mit grauem Hintergrund als Indikator für eine andere Aufnahme zur gleichen Zeit??? Oder hat jemand eine bessere Idee?
dwilx

Beitrag von dwilx »

als Indikator für eine andere Aufnahme zur gleichen Zeit
Mehr sowas wie ein Symbol für Kollision, oder? Hab ich irgendwie schon mal gesehen, müsste man mal schauen... :gruebel:
Zuletzt geändert von dwilx am Dienstag 4. September 2007, 22:12, insgesamt 1-mal geändert.
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Beitrag von Günther »

dixidix hat geschrieben:Mehr sowas wie ein Symbol für Kollision, oder?
Ja, vereinfacht ausgedrückt :)
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Beitrag von Günther »

Nachtrag:

Code: Alles auswählen

### Eclipse Workspace Patch 1.0
#P work
Index: apps/tuxbox/neutrino/src/gui/eventlist.h
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/gui/eventlist.h,v
retrieving revision 1.29
diff -u -r1.29 eventlist.h
--- apps/tuxbox/neutrino/src/gui/eventlist.h	31 Jan 2007 21:42:03 -0000	1.29
+++ apps/tuxbox/neutrino/src/gui/eventlist.h	4 Sep 2007 20:23:25 -0000
@@ -34,6 +34,7 @@
 #define __EVENTLIST_HPP__
 
 #include <sectionsdclient/sectionsdclient.h>
+#include <timerdclient/timerdclient.h>
 
 #include <driver/framebuffer.h>
 #include <driver/fontrenderer.h>
@@ -112,6 +113,11 @@
 		void paintHead();
 		void hide();
 		void showFunctionBar(bool show);
+		
+		CTimerdClient Timer;
+		CTimerd::TimerList timerlist;             // List of timers		
+		void UpdateTimerList(void);
+		int isTimer(time_t starttime,time_t endtime,event_id_t epgid);
 
 	public:
 		EventList();
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Schöne Idee Günther... Du kommst aber auch immer auf Sachen... :D


Gruß
____Paule
Rebel1
Interessierter
Interessierter
Beiträge: 87
Registriert: Montag 14. August 2006, 09:10

Beitrag von Rebel1 »

Ja, wirklich tolle Idee. Ich habe mir gerade mal ein Image mit deinen Patchen gebaut und muss sagen das gefällt mir sehr gut und ist wirklich praktisch, wenn man recht häufig Timer setzt.

:D
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Rebel1 hat geschrieben:Ja, wirklich tolle Idee. Ich habe mir gerade mal ein Image mit deinen Patchen gebaut und muss sagen das gefällt mir sehr gut und ist wirklich praktisch, wenn man recht häufig Timer setzt.

:D
Kann einer von euch mal einen Screenshot posten ?
Rebel1
Interessierter
Interessierter
Beiträge: 87
Registriert: Montag 14. August 2006, 09:10

Beitrag von Rebel1 »

Hier die Screenshots:

Bild
Bild
Bild

Mir ist aber auch noch etwas aufgefallen, was noch nicht funktioniert. Rufe ich meine Bouquets über OK auf und lasse mir das EPG dann eines Senders über ROT anzeigen, erscheinen die Timermarker nicht. Ich muss mich also auf dem
jeweiligen Sender aufhalten und dann ROT ROT drücken damit die Marker erscheinen.

Gruss,
Rene
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Beitrag von Günther »

Rebel1 hat geschrieben:Mir ist aber auch noch etwas aufgefallen, was noch nicht funktioniert. Rufe ich meine Bouquets über OK auf und lasse mir das EPG dann eines Senders über ROT anzeigen, erscheinen die Timermarker nicht. Ich muss mich also auf dem
jeweiligen Sender aufhalten und dann ROT ROT drücken damit die Marker erscheinen.
Danke für die Screenshots! Das mit dem EPG kommt deshalb, weil es mehrere Instanzen der Eventliste gibt. Habe das Timerlistupdate bereits nach exec() gelegt, dann klappt es dann in jedem Fall. Die Anzeige 'Ein Timer wurde angelegt habe ich bei der Version auch rausgeworfen (sieht man ja jetzt durch den roten Punkt).

Das Icon von Speedy paßt leider nicht ganz rein, ich werde es mal etwas verkleinern. So mal in die Runde gefragt: welches Symbol gefällt Euch überhaupt besser? Wo sollte es am besten sein?

Noch eine Sache. Wenn man hintereinanderliegene Sendungen aufnehmen will, kommt immer diese 'blöde' Konflikt-Meldung. Im Timerclient wird immer die Announce-Zeit (anstatt der Alarm-Zeit) verwendet. Ausserdem sollte doch keine Meldung erscheinen, wenn zwei Aufnahmetimer direkt hintereinander liegen, oder habe ich was übersehen? Ich würde vorschlagen das entsprechend zu ändern, weiß aber nicht ob das alles wie gehabt seinen Grund gehabt hatte. Vielleicht weiß da jemand bescheid.

Hier also die updates:


.

Code: Alles auswählen

### Eclipse Workspace Patch 1.0
#P work
Index: apps/tuxbox/neutrino/src/gui/eventlist.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/gui/eventlist.cpp,v
retrieving revision 1.107
diff -u -r1.107 eventlist.cpp
--- apps/tuxbox/neutrino/src/gui/eventlist.cpp	6 Jul 2007 21:07:23 -0000	1.107
+++ apps/tuxbox/neutrino/src/gui/eventlist.cpp	4 Sep 2007 22:48:36 -0000
@@ -121,6 +121,35 @@
 {
 }
 
+void EventList::UpdateTimerList(void)
+{
+	if ((g_settings.recording_type != CNeutrinoApp::RECORDING_OFF) &&
+		(g_settings.key_channelList_addrecord != (int)CRCInput::RC_nokey))
+	{
+		timerlist.clear();
+		Timer.getTimerList (timerlist);
+	}
+}
+
+// return event if exact timer found
+// return -1 if no timer found
+// return -2 if any timer was found
+int EventList::isTimer(time_t starttime,time_t endtime,event_id_t epgid)
+{
+	if ((g_settings.recording_type != CNeutrinoApp::RECORDING_OFF) &&
+		(g_settings.key_channelList_addrecord != (int)CRCInput::RC_nokey))
+	{
+		for(unsigned int i= 0; i < timerlist.size(); i++)
+		{
+			if(timerlist[i].epgID == epgid)
+				return timerlist[i].eventID;
+			if(timerlist[i].stopTime  > starttime &&
+			   timerlist[i].alarmTime < endtime)
+				return -2;
+		}
+	}
+	return -1;
+}
 
 void EventList::readEvents(const t_channel_id channel_id)
 {
@@ -243,6 +272,7 @@
 	sort_mode=0;
 	paintHead();
 	readEvents(channel_id);
+	UpdateTimerList();
 	paint();
 	showFunctionBar(true);
 
@@ -276,6 +306,12 @@
 				paint();
 			else
 				paintItem(selected - liststart);
+			
+			if ((g_settings.recording_type != CNeutrinoApp::RECORDING_OFF) &&
+				(g_settings.key_channelList_addrecord != (int)CRCInput::RC_nokey))
+			{
+				showFunctionBar(true);
+			}
 		}
 		else if ((msg==CRCInput::RC_down || msg==(neutrino_msg_t)g_settings.key_channelList_pagedown))
 		{
@@ -295,6 +331,12 @@
 				paint();
 			else
 				paintItem(selected - liststart);
+			
+			if ((g_settings.recording_type != CNeutrinoApp::RECORDING_OFF) &&
+				(g_settings.key_channelList_addrecord != (int)CRCInput::RC_nokey))
+			{
+				showFunctionBar(true);
+			}
 		}
 		else if (msg == (neutrino_msg_t)g_settings.key_channelList_sort)
 		{
@@ -341,7 +383,8 @@
 			if (g_settings.recording_type != CNeutrinoApp::RECORDING_OFF)
 			{
 				CTimerdClient timerdclient;
-				if(timerdclient.isTimerdAvailable())
+				int timerID = isTimer(evtlist[selected].startTime,evtlist[selected].startTime + evtlist[selected].duration,evtlist[selected].eventID);
+				if(timerdclient.isTimerdAvailable() && timerID < 0)
 				{
 					std::string recDir = g_settings.recording_dir[0];
 					if (g_settings.recording_choose_direct_rec_dir)
@@ -373,14 +416,24 @@
 									 evtlist[selected].eventID, evtlist[selected].startTime,
 									 evtlist[selected].startTime - (ANNOUNCETIME + 120),
 									 TIMERD_APIDS_CONF, true, recDir,true);
-								ShowLocalizedMessage(LOCALE_TIMER_EVENTRECORD_TITLE, LOCALE_TIMER_EVENTRECORD_MSG, CMessageBox::mbrBack, CMessageBox::mbBack, "info.raw");
+								//ShowLocalizedMessage(LOCALE_TIMER_EVENTRECORD_TITLE, LOCALE_TIMER_EVENTRECORD_MSG, CMessageBox::mbrBack, CMessageBox::mbBack, "info.raw");
 							}
 						} else {
-							ShowLocalizedMessage(LOCALE_TIMER_EVENTRECORD_TITLE, LOCALE_TIMER_EVENTRECORD_MSG, CMessageBox::mbrBack, CMessageBox::mbBack, "info.raw");
+							//ShowLocalizedMessage(LOCALE_TIMER_EVENTRECORD_TITLE, LOCALE_TIMER_EVENTRECORD_MSG, CMessageBox::mbrBack, CMessageBox::mbBack, "info.raw");
 						}
+						UpdateTimerList();
+						paintItem(selected - liststart);
+						showFunctionBar(true);
 					}
-
-
+				}
+				else if (timerdclient.isTimerdAvailable() )
+				{
+					// Timer already available in Timerlist, remove now
+					printf("remove timer\n");
+					timerdclient.removeTimerEvent(timerID);
+					UpdateTimerList();
+					paintItem(selected - liststart);
+					showFunctionBar(true);
 				}
 				else
 					printf("timerd not available\n");
@@ -543,6 +596,16 @@
 		g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMSMALL]->RenderString(x+width-fwidth2-5- 20, ypos+ fheight1+3, fwidth2, duration_str, color, 0, true); // UTF-8
 		// 2nd line
 		g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMLARGE]->RenderString(x+ 20, ypos+ fheight, width- 25- 20, evtlist[liststart+pos].description, color);
+		int timerID = isTimer(evtlist[liststart+pos].startTime,evtlist[liststart+pos].startTime + evtlist[liststart+pos].duration,evtlist[liststart+pos].eventID);
+		if(timerID == -2)
+		{
+			frameBuffer->paintIcon(NEUTRINO_ICON_BUTTON_YELLOW, x+1, ypos+ fheight1+2);
+		}
+		else if(timerID >= 0)
+		{
+			frameBuffer->paintIcon(NEUTRINO_ICON_BUTTON_RED, x+1, ypos+ fheight1+2);
+			//frameBuffer->paintIcon("red_r.raw", x+1, ypos+ fheight1+2);
+		}
 	}
 }
 
@@ -621,7 +684,11 @@
 	{
 		keyhelper.get(&key, &icon, g_settings.key_channelList_addrecord);
 		frameBuffer->paintIcon(icon, bx+8+cellwidth*pos, by+h_offset);
-		g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]->RenderString(bx+bdx+cellwidth*pos, by+bh-h_offset, bw-30, g_Locale->getText(LOCALE_EVENTLISTBAR_RECORDEVENT), COL_INFOBAR, 0, true); // UTF-8
+		int timerID = isTimer(evtlist[selected].startTime,evtlist[selected].startTime + evtlist[selected].duration,evtlist[selected].eventID);
+		if(timerID >= 0)
+			g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]->RenderString(bx+bdx+cellwidth*pos, by+bh-h_offset, bw-30, g_Locale->getText(LOCALE_TIMERLIST_DELETE), COL_INFOBAR, 0, true); // UTF-8
+		else
+			g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]->RenderString(bx+bdx+cellwidth*pos, by+bh-h_offset, bw-30, g_Locale->getText(LOCALE_EVENTLISTBAR_RECORDEVENT), COL_INFOBAR, 0, true); // UTF-8
 		pos++;
 	}
 

Code: Alles auswählen

### Eclipse Workspace Patch 1.0
#P work
Index: apps/tuxbox/neutrino/lib/timerdclient/timerdclient.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/lib/timerdclient/timerdclient.cpp,v
retrieving revision 1.54
diff -u -r1.54 timerdclient.cpp
--- apps/tuxbox/neutrino/lib/timerdclient/timerdclient.cpp	14 Feb 2006 22:38:28 -0000	1.54
+++ apps/tuxbox/neutrino/lib/timerdclient/timerdclient.cpp	4 Sep 2007 22:56:01 -0000
@@ -245,7 +245,7 @@
 	if (!forceadd)
 	{
 		//printf("[CTimerdClient] checking for overlapping timers\n");
-		CTimerd::TimerList overlappingTimer = getOverlappingTimers(announcetime, stoptime);
+		CTimerd::TimerList overlappingTimer = getOverlappingTimers(alarmtime, stoptime);
 		if (overlappingTimer.size() > 0)
 		{
 			// timerd starts eventID at 0 so we can return -1
@@ -353,9 +353,20 @@
 	for (CTimerd::TimerList::iterator it = timerlist.begin();
 	     it != timerlist.end();it++)
 	{
-		if (!((stopTime < it->announceTime) || (announcetime > it->stopTime)))
+		if(it->stopTime != 0 && stopTime != 0)
 		{
-			overlapping.push_back(*it);
+			// Check if both timers have start and end. In this case do not show conflict, if endtime is the same than the starttime of the following timer
+			if ((stopTime > it->announceTime) && (announcetime < it->stopTime))
+			{
+				overlapping.push_back(*it);
+			}
+		}
+		else
+		{
+			if (!((stopTime < it->announceTime) || (announcetime > it->stopTime)))
+			{
+				overlapping.push_back(*it);
+			}
 		}
 	}
 	return overlapping;
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Ausserdem sollte doch keine Meldung erscheinen, wenn zwei Aufnahmetimer direkt hintereinander liegen,
doch denn normal muss man ja immer eine Vorlaufzeit einprogrammieren da die aufnahme ja immer ca.30sek zu spät anläuft und damit vom Filmanfang etwas fehlen würde. Wenn Du dann zwei Sendungen hintereinander aufnehmen willst überschneiden sich die Timer. um mindestens 1min (je nach Vorlaufzeit).

Die Idee finde ich übrigens auch gut. Ob rechts oder Links das Hinweis symbol steht ist mir egal.
Für die Zeit wo die Aufnahme programmiert ist, könnte man da nicht einfach einen Balken neben den Event setzen der in etwa auch anzeigt wie weit die Aufname (eines anderes Senders) in den Event hineinragt?
Also angenommen von ZDF hast Du um 22:00 bis 23:00 uhr einen Timer gesetzt und Du schaltest auf ARD ins EPG dann sollte der Film der dort angenommen bis 22:15 geht einen kurzen "Sperr" Balken haben die Sendung danach die meintwegen bis 21:50 geht und dann noch die darauffolgende Sendung ein Stück des Balkens.
So würde man ganz grob sehen das die Sendungen gesperrt sind.
In der Farbe des Sperrbalkens könnte man dann unten einlbenden was dies zu bedeuteten hat (sofern der Balken eingeblendet wird) gleiches für den Record Platz für den jeweiligen Sender der vorprogrammiert ist auf ZDF.

Gruß Gorcon
ThulsaDoom
Interessierter
Interessierter
Beiträge: 86
Registriert: Montag 18. Dezember 2006, 10:28

Beitrag von ThulsaDoom »

Günther hat geschrieben:
Das Icon von Speedy paßt leider nicht ganz rein, ich werde es mal etwas verkleinern. So mal in die Runde gefragt: welches Symbol gefällt Euch überhaupt besser? Wo sollte es am besten sein?
Hallo Günther!

Ich finde die Position (aus den Screenshots) völlig ok und das R muss es imho auch nicht sein. Ich denke, der rote bzw. gelbe Punkt sagt doch genausoviel aus. Dazu noch ne Frage: Ich benutze die "3D Bälle", also die etwas räumlichen Punkte, welche mal kurz Standard im JTG-Image waren. Würden die dann nach auch als Record-Hinweis-Punkte erscheinen, oder nur die flachen, wie sie in den Screenshots zu sehen sind? Wenn es extra Icon-Dateien sind, müssten die dann allerdings auch leicht wieder gegen meine 3D-Bälle auszutauschen sein, denke ich!

Ansonsten: suuuper Idee, das hat wirklich noch gefehlt !!

Gruß
ThulsaDoom
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Gorcon hat geschrieben:
Ob rechts oder Links das Hinweis symbol steht ist mir egal
Rechts, dann bau ich mir einen "Sky+ Theme" ;-)

Wenn ihr doch schon beim Timer usw seit koennte man eventuell fest einen Timer wie hier schoneinmal von mir angefragt einbauen ?

Die funktionalitaet ist ja bereits im Neutrino Menu beinhaltet (Neustart) und wuerde mir beim Sectionsd helfen wenn ich Sky schaue weil die staendig die Services updaten .....
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Hallo Günther,

jetzt auch mal meinen Senf zu Deinen Änderungen.

1. Finde ich die normalen roten und gelben Punkte besser. Allerdings würde ich diesen Grafiken (auch wenn das Platzverschwendung ist) andere Namen geben und diese dann einfach noch einmal einfügen. So können diese
Grafiken explizit gegen andere getauscht werden.

2. Ich würde überlegen, ob man die Grafiken nicht hinter die
Datumsanzeige plazieren könnte. Da ist massig Raum und es sieht net so
gequetscht aus.

Beispiel:
Bild
Oder mit anderem Icon:
Bild

3. An der Timerlogik würde ich momentan nichts ändern. Ich denke
da haben sich alle dran gewöhnt und es war zumindestens für mich
auch kein Problem seither.
Da sehe ich andere Dinge, wie z.B. das man keine Möglichkeit hat
eine Sendung via Sofortaufnahme mit der EPG-Endtime oder
einer anderen einstellbaren Aufnahmezeit (30, 60, 90min usw)
aufzunehmen...


Gruß
____Paule
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Rebel1
Interessierter
Interessierter
Beiträge: 87
Registriert: Montag 14. August 2006, 09:10

Beitrag von Rebel1 »

Hallo Günther,
ich habe gerade mal deine letzten Updates verbaut, jetzt läuft das ganze richtig gut. Mal wieder ein Danke an dich für ein tolles Feature.

Gruss,
Rene
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Jo, kenne ich... :wink:
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

@ ALL

Wie findet ihr denn den Vorschlag die Icons hinter das Datum zu plazieren?

Für mich wirkt es so irgendwie übersichtlicher...



Gruß
____Paule
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Beitrag von DrStoned »

Den Vorschlag von Paule bezüglich der Patzierung der Icons finde ich nicht schlecht.
Allerdings würde ich jedoch für andere Icons plädieren., da sonst das gelbe Icon irrtümlicherweise mit dem Umschalttimer verwechselt werden kann, da das unten als Erklärung für Umschalttimer setzen, drin steht.

Greetz von DrStoned :lol: :lol: :lol:
Greetz von DrStoned :lol: :lol: :lol:
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

gelb ist doch ein umschalttimer. passt doch so.und rot ist recording.
ich bin auf dafür hinter das datum das zu platzieren.
wie die icons aussehen ist ne andere frage. man könnte auch kleine kästchen machen, mit rec und zap drin, aber da beschweren sich dann wieder die franzosen oder polen, die das nicht lesen können :) lol
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Beitrag von DrStoned »

Ups, ich hatte da was von sich überschneidenden Timern gelesen, und habe da wohl was in den falschen Hals gekriegt. :oops: Wenn das so ist, kann es von mir aus so bleiben. ;)

Greetz von DrStoned :lol: :lol: :lol:
Greetz von DrStoned :lol: :lol: :lol:
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Einfach das Rote R und ein gelbes Z Icon das sollte multinational genug sein
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Beitrag von Günther »

@pauleFoule
1: ich hatte das eh schon als eigene icons geplant (record.raw und conflict.raw ;) )
2: Finde ich auch gut, ev . muß man aber noch mal alle Kombis bezüglich unterschiedlicher Textlänge der Zeit und des Datums überprüfen. Ausserdem muß auch der Programmname von der Suche passen. Meine ersten Tests sehen jedoch ganz gut aus.
3. Nichts gegen sinnvolle Gewohnheiten ;), nur finde ich die Konfliktüberprüfung (vor allem mit dem neuen Feature in der EPG-Vorschau) nicht wirklich überzeugend. Überprüft wird nämlich die Announce-Zeit und nicht die Startzeit (minus einer ev. Vorlaufzeit). Das führt dazu, daß es bei hintereinanderliegenden Sendungen IMMER zu einem Konflikt kommt, egal ob eine Vorlauf/Nachlaufzeit eingestellt ist. Ich muß da aber meinen Vorschlag auch noch mal überarbeiten, daß kann ich aber auch seperat (sprich
später) zu der Icon-Änderung machen.

@mb405
Stimmt, das gelb paßt eigentlich ganz gut, war aber nur aus der Not geboren, weil es einem grau am nächsten kam :oops: . Das grau würde mir aber nach wie vor besser gefallen,analog z.B. zum gelben/grauen Dolby-Digital Symbol, sprich es gibt einen anderen Timer im Hintergrund.