Seife -> neutrino-mp für pingulux

Fremd-Buildsysteme
bazi98
Interessierter
Interessierter
Beiträge: 68
Registriert: Dienstag 24. Juni 2008, 07:21

Seife -> neutrino-mp für pingulux

Beitrag von bazi98 »

@seife
Ich habe heute mal für den Pingulux(alt) ein Image gebaut aus deinen "neutrino-mp" dabei sind mir die folgenden Punkte aufgefallen
In den Video-Settings ist der beim pingulux nicht vorhandenen Scart-Anschluss genauer gesagt der Einstellpunkt ausgeblendet :) , dort ist noch die Überschrift (TV-Scart) übrig geblieben, die müsste in diesen Fall noch mit ausgeblendet werden.
Bild Bild

Dass LED/LCD-Menü fehlt bei mir komplett, dies wird auch nicht im Menü-Personalisieren angeboten,
Bild
es gibt zwar beim Pingulux nur ein "Mini_Display" aber auch das sollte zumindest eingeblendet und einstellbar sein.

Wäre schön wenn du die 2 Punkte auf deine Liste setzen würdest und bei Gelegenheit ins neutrino-mp übernehmen würdes.

Danke und Gruss
bazi
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Seife -> neutrino-mp für pingulux

Beitrag von seife »

Das mit dem SCART ist mir am Wochenende auch schon aufgefallen, aber die Dringlichkeit ist bisher jetzt eher "gering" :-)

Was willst du denn beim pingulux-display einstellen? Es gibt schon einen Grund, warum es dieses Menü nicht gibt :-)

Edit: das "TV-Scart" ist jetzt aus dem Menü raus.
bazi98
Interessierter
Interessierter
Beiträge: 68
Registriert: Dienstag 24. Juni 2008, 07:21

Re: Seife -> neutrino-mp für pingulux

Beitrag von bazi98 »

seife hat geschrieben:Was willst du denn beim pingulux-display einstellen? Es gibt schon einen Grund, warum es dieses Menü nicht gibt :-)
Ich wollte für mich das LED/LCD-Menü, analog zu martiis Build, um das Untermenü GraphLCD erweitern, aber wenn das LCD/LED-Menü komplett durch die Hardwarecaps ausgeblendet ist kann dort auch meine geplante Erweiterung nicht angezeigt werden.
Auch gibt es beim Pingu ja auch die 2 verschieden farbigen LEDs und deren Steuerung wie z:B. bei den CST-Receivern ist in meinen Augen dort auch gut aufgeboben.

Code: Alles auswählen

 void CVfdSetup::showLedSetup(CMenuWidget *mn_led_widget)
  { 
        CMenuOptionChooser * mc; 
        mn_led_widget->addIntroItems(LOCALE_LEDCONTROLER_MENU);

         mc = new CMenuOptionChooser(LOCALE_LEDCONTROLER_MODE_TV, &g_settings.led_tv_mode, LEDMENU_OPTIONS, LEDMENU_OPTION_COUNT, true, this);
         mc->setHint("", LOCALE_MENU_HINT_LEDS_TV); 
         mn_led_widget->addItem(mc);
         mc = new CMenuOptionChooser(LOCALE_LEDCONTROLER_MODE_STANDBY, &g_settings.led_standby_mode, LEDMENU_OPTIONS, LEDMENU_OPTION_COUNT, true); 201
         mc->setHint("", LOCALE_MENU_HINT_LEDS_STANDBY);
         mn_led_widget->addItem(mc);
         mc = new CMenuOptionChooser(LOCALE_LEDCONTROLER_MODE_DEEPSTANDBY, &g_settings.led_deep_mode, LEDMENU_OPTIONS, LEDMENU_OPTION_COUNT, true);
         mc->setHint("", LOCALE_MENU_HINT_LEDS_DEEPSTANDBY);
         mn_led_widget->addItem(mc); 
         mc = new CMenuOptionChooser(LOCALE_LEDCONTROLER_MODE_RECORD, &g_settings.led_rec_mode, LEDMENU_OPTIONS, LEDMENU_OPTION_COUNT, true); 
         mc->setHint("", LOCALE_MENU_HINT_LEDS_RECORD); 
         mn_led_widget->addItem(mc); 
         mc = new CMenuOptionChooser(LOCALE_LEDCONTROLER_BLINK, &g_settings.led_blink, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); 
         mc->setHint("", LOCALE_MENU_HINT_LEDS_BLINK);
         mn_led_widget->addItem(mc);
 }
 
Also bei "caps.display_type = HW_DISPLAY_LED_NUM;" wäre es sinnvoll zumindest den LED-Teil in diesen Menü anzubieten und es nicht generell bei diesen LCD-Typ abzuschalten, es per Standard im Personalize-Menü auszublenden könnte man immer noch :wink:
Frage:
Ist durch den Codeabschnitt nicht auch irrtümlich bei der CST ZEE die LED-Steuerung nicht verfügbar ?

Code: Alles auswählen

hw_caps_t *get_hwcaps(void) {
	static int initialized = 0;
	static hw_caps_t caps;
	if (initialized)
		return ∩︀
	caps.has_fan = (cs_get_revision() < 8);
	caps.has_HDMI = 1;
	caps.has_SCART = (cs_get_revision() != 10);
	caps.has_SCART_input = 0;
	caps.has_YUV_cinch = 1;
	caps.can_shutdown = (cs_get_revision() > 7);
	caps.can_cec = 1;
	caps.display_type = HW_DISPLAY_LINE_TEXT;
	caps.display_xres = 12;
	caps.display_yres = 0;
	caps.can_set_display_brightness = 1;
	strcpy(caps.boxvendor, "Coolstream");
	if (cs_get_revision() < 8)
		strcpy(caps.boxname, "HD1");
	else if (cs_get_revision() == 10)
		strcpy(caps.boxname, "ZEE");
	else
		strcpy(caps.boxname, "NEO");
	initialized = 1;
	return &caps;
}
oder habe ich dies jetzt falsch verstanden ?

ps: danke für den Fix beim Video-Menü
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Seife -> neutrino-mp für pingulux

Beitrag von seife »

Ich bin der Meinung, dass neutrino nicht zu wenig Einstellmöglichkeiten hat, sondern eher zu viele ;-)
Die LEDs jetzt noch einstellbar zu machen, halte ich für übertrieben.

Die korrekte Lösung für dein Problem ist, wenn ein Display vorhanden ist, das über die hw_caps zu signalisieren und dann das Menü entsprechend einzublenden.

Momentan ist das übrigens nicht über die hw_caps ausgeblendet, sondern über cs_get_revision() > 7, aber das müsste natürlich auch mal gefixt werden.

Und noch genauer: schon das Displaymenü ist momentan dadurch ausgeblendet, dass alle nicht-Coolstream displaytreiberklassen (inklusive Tripledragon) momentan "has_lcd = false" setzen, weil es einfach nichts zu konfigurieren gibt: die Tripledragon hat zwar ein gutes Display, aber man kann die Helligkeit nicht einstellen und die defaulteinstellung für den Kontrast hat noch keinerlei Beschwerden hervorgerufen, also warum das einstellbar machen? Bei der dbox war das wohl auch nur deswegen nötig, weil die Streuung der verschiedenen Modelle so gross war. Die anderen Displays haben auch nichts, was man einstellen könnte: bei SPARK, egal ob LED oder VFD habe ich es nicht geschafft, die Helligkeit einzustellen, obwohl zumindest das LED display das kann, und bei der AZbox gibt es auch nicht wirklich was, das man einstellen wollen würde.

Das nächste Problem wäre, dass dieses Menü, wenn man denn doch was einstellen wollen würde, doch sehr hardwarespezifisch wäre, was man über die hwcaps abbilden müsste. Ich habe eigentlich nicht vor, noch weitere #ifdefs in den Code aufzunehmen, wenn es sich irgendwie vermeiden lässt, mein Ziel ist, das alles dynamisch zur Laufzeit zu bestimmen, damit der Code einigermassen wartbar bleibt und den Code so zu halten, dass er auf möglichst vielen Plattformen mit minimalem Wartungsaufwand funktioniert.

Gleichzeitig will ich mich aber auch nicht unnötig weit vom Neutrino-HD code entfernen, eben wegen dem Wartungsaufwand. Es ist so schon aufwändig genug, bei jedem merge aufzupassen, dass möglichst nur die guten features gemerged werden, aber die Bugs draussen bleiben.
Natürlich ist "crossplattform" genau das, was im Neutrino-HD nicht gewünscht ist, aber deswegen habe ich ja mein eigenes Projekt.

Generell habe ich mir über externe Displays auch schon Gedanken gemacht, aber das würde halt wirklich einen grösseren Umbau im Neutrino bedeuten. Es gibt ja nicht nur dieses Pearl-Display (das es ja gar nicht mehr gibt...) sondern wenn, dann müsste das universell sein, mit beliebigen Auflösungen und Farbtiefen etc.
Meine Idee dazu war eher, das an einen externen daemon abzugeben, der dann über einen IPC-mechanismus (sei es nun D-Bus oder einfach ein Socket) vom neutrino Informationen darüber bekommt was er anzeigen soll, und das dann macht. Also der bekommt dann nur "Modus=TV, sendungsfortschritt=23/45, Lautstärke=55%, Kanalname=zdf_neo, kanal_id=0xabcdef01 epg_kurz='tolle sendung', epg_lang='Das ist eine ganz tolle Sendung, und man muss die unbedingt sehen'" und macht aus diesen Daten dann was. Wenn da ein 10Zoll Android-Tablett dranhängt, dann kann er von mir aus aus dem EPG-Titel in der IMDB den Filminhalt abfragen und anzeigen, wenn nur ein kleines dbox-Display dranhängt, dann macht er halt eine dbox-like anzeige draus.

Der Vorteil wäre, dass der ganze Displayabhängige Code in den display-Daemon kommt und neutrino relativ sauber bliebe, eigentlich wären das nur ein paar hooks und ein paar zusätzliche Methoden in der CVFD-Klasse, um halt an verschiedenen Stellen im Neutrino den aktuellen Status abzugreifen.
Der Nachteil ist: es muss jemand machen, und da ich bisher ziemlichg genau alleine am neutrino-mp arbeite, ist das halt in der Priorität nicht ganz so hoch :-)
Displayhardware habe ich schon, ein dbox-like display an einem Arduino als "displaycontroller", man könnte auch einfach dbox-Displays benutzen. Der Vorteil gegenüber Pearl & Co: das zeug ist zwar ein wenig teurer (ein Display inkl. Controller würde so auf ca 25€ kommen), aber dafür langfristig lieferbar. Für die dreamboxen gab es doch auch mal so ein Addon-display, was dann aber von den Pearl-Rahmen überrollt wurde wenn ich mich recht erinnere.
bazi98
Interessierter
Interessierter
Beiträge: 68
Registriert: Dienstag 24. Juni 2008, 07:21

Re: Seife -> neutrino-mp für pingulux

Beitrag von bazi98 »

@seife,
danke für deine Erklärungen, da werde ich für mich etwas herum basteln damit ich es wie bei martii hin bekomme :( .

Bei Gelegenheit kannst Du mal in der infoviewer_bb.cpp in den Zeilen 499 und 546 die Einträge "case 1088:" in "case 1080:" abändern dann klappt auch wieder die Res.-Anzeige in der Infobar bei den Services die z.B. eine Auflösung von 1920x1080 fahren wie zB. ARTE HD auf Hotbird.

edit: thx. für die rasche Änderung :D
Zuletzt geändert von bazi98 am Mittwoch 7. November 2012, 10:57, insgesamt 1-mal geändert.
schufti
Einsteiger
Einsteiger
Beiträge: 352
Registriert: Freitag 20. August 2004, 23:33

Re: Seife -> neutrino-mp für pingulux

Beitrag von schufti »

nö, hier heißt die Devise: beides muß sein. Leider gibt's (zumindest einen) Billigsender, die 1088 verwenden....
bazi98
Interessierter
Interessierter
Beiträge: 68
Registriert: Dienstag 24. Juni 2008, 07:21

Re: Seife -> neutrino-mp für pingulux

Beitrag von bazi98 »

@schufti,
keine Angst seife, hat es auch so gemacht

Code: Alles auswählen

--- a/src/gui/infoviewer_bb.cpp
+++ b/src/gui/infoviewer_bb.cpp
@@ -497,6 +497,7 @@
 				icon_name = NEUTRINO_ICON_RESOLUTION_1920;
 				break;
 			case 1088:
+			case 1080:
 				icon_name = NEUTRINO_ICON_RESOLUTION_1080;
 				break;
 			case 1440:



@@ -539,28 +540,12 @@
 		}
 		if (g_settings.infobar_show_res == 1) {//show simple resolution icon on infobar
 			videoDecoder->getPictureInfo(xres, yres, framerate);
-			switch (yres) {
-			case 1920:
-			case 1440:
-			case 1280:
-			case 1088:
-			case 720:
+			if (yres > 576)
 				icon_name = NEUTRINO_ICON_RESOLUTION_HD;
-				break;
-			case 704:
-			case 576:
-			case 544:
-			case 528:
-			case 480:
-			case 382:
-			case 352:
-			case 288:
+			else if (yres > 0)
 				icon_name = NEUTRINO_ICON_RESOLUTION_SD;
-				break;
-			default:
+			else
 				icon_name = NEUTRINO_ICON_RESOLUTION_000;
-				break;
-			}
 		}
 	}
 	showBBIcons(CInfoViewerBB::ICON_RES, icon_name);
Das es einen Service mit 1088 gibt ist mir noch gar nicht aufgefallen, welcher ist es denn?
schufti
Einsteiger
Einsteiger
Beiträge: 352
Registriert: Freitag 20. August 2004, 23:33

Re: Seife -> neutrino-mp für pingulux

Beitrag von schufti »

habe ich jetzt auch nicht mehr im Kopf, aber das selbe Thema wurde schonmal in martiis Ableger durchgekaut und dort fand dann die Doppellösung mit Verweis auf den Sender Eingang ins git ... ev. erinnert er sich ja noch. Habe noch nicht herausgefunden ob/wie man in commit notes suchen kann....

p.s.: ein quote des commits ist unnötig, da reicht ein link darauf...
martii
Einsteiger
Einsteiger
Beiträge: 217
Registriert: Donnerstag 14. Juni 2012, 09:39

Re: Seife -> neutrino-mp für pingulux

Beitrag von martii »

Die 1088 Zeilen haben ihren Ursprung in der blockweisen (16x16px) Kodierung bei MPEG2. Inwiefern das heute noch eine Rolle spielt, weiss ich nicht. Vielleicht liefern manche Decoder den Wert zurück ...
bazi98
Interessierter
Interessierter
Beiträge: 68
Registriert: Dienstag 24. Juni 2008, 07:21

Re: Seife -> neutrino-mp für pingulux

Beitrag von bazi98 »

@seife,
ich habe mit meinen Pingulux noch etwas weiter getestet,
Bild
telnet und ftp sind ja so wie so aktiv und werden trotzdem mit "aus" angezeigt und der Menüpunkt ist nicht per Gui einstellbar.
wenn ich manuell die Flagdateien in /var/etc/ anlege werden die entsprechenden Punkte (z.B. telnet) mit "ein" angezeigt aber ansonsten tut sich nichts :-?
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Seife -> neutrino-mp für pingulux

Beitrag von seife »

Ja, das Menü habe ich wohl vergessen auszublenden. Das wird vermutlich bei mir nie eine Funktion haben, zumindest nicht, vor ich da entsprechende Infrastruktur im Basissystem drin habe (irgendwas chkconfig-mässiges). So wie das im neutrino-Code implementiert ist, treibt es einem wirklich extremst das Wasser in die Augen... Flagdateien -- sowas geht ja garnicht... :-)
bazi98
Interessierter
Interessierter
Beiträge: 68
Registriert: Dienstag 24. Juni 2008, 07:21

Re: Seife -> neutrino-mp für pingulux

Beitrag von bazi98 »

@Seife,
soll ich aktuell also in der network_setup.cpp lokal das #include <gui/network_service.h> mit // auskommentieren oder willst du dies zentral bei dir im Git machen?
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Seife -> neutrino-mp für pingulux

Beitrag von seife »

Das kommt drauf an, wie dringend du das brauchst. Solche eher kosmetischen Sachen sind bei mir nicht ganz so hoch priorisiert. Ich muss erst noch rausfinden, was beim merge am Wochenende an Mist mit reingekommen ist, der wieder raus muss... :-)