Audioplayer Erweiterung für Bedienung nur über LCD (ohne TV)

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

Audioplayer Erweiterung für Bedienung nur über LCD (ohne TV)

Beitrag von Günther »

Ich habe mir gerade (mal wieder) eine Box als MP3-Player fürs Wohnzimmer zusammengeschraubt. Die notwendigen Optimierung für die LCD Bedienung (also ohne Fernseher) habe ich in den bestehenden Code einoperiert und kann unter den Audioplayer-Einstellungen unter 'Dateibrowser-Modus' aktiviert werden. Die bisherige Bedienung sollte bei AUS nicht beeinträchtigt sein.

Der Audioplayer started mit der Erweiterung direkt im Filebrowser. Im LCD ist der Filebrowser-Mode mit 3 Zeilen aktiv. Die Playliste wird nicht angezeigt. Der Fortschrittsbalken wird beim Einlesen der Verzeichnisse/Dateien nicht angezeigt, da dieser nur alles unnötig verlangsamt. Bei Stopp wird direkt die Playliste gelöscht und wieder in den Filebrowser gesprungen.
Viel mehr kann über das kleine LCD eh nicht sinnvoll bedient werden. Finde ich im Moment schon ganz brauchbar, ev. könnte man noch ein paar zusätzliche Meldungen im LCD ausgeben.

Hier ist der Fix audioplayer_filebrowser_mode.diff
Wenn keiner was dagegen hat, würde ich den so einpflegen und die Tage/Wochen/Monate weiter optimieren.
Zum ausprobieren am besten für den Filebrowser das 'Startverzeichnis absolut' auf JA einstellen, dann passt der Verzeichnispfad in die erste Zeile.
Zuletzt geändert von Günther am Sonntag 21. Oktober 2007, 23:03, insgesamt 1-mal geändert.
MiSeRy
Einsteiger
Einsteiger
Beiträge: 122
Registriert: Sonntag 12. Oktober 2003, 20:33

Beitrag von MiSeRy »

Kann man sowas als Laie auch selber einbinden?
dbox2 Nokia (2x) Kabel mit IDE-Interface | Schaltregler und 2,5'' 80 GB HDD | JtG-Image 21.12.2007
avia500v110 | ucode_0014 (built-in) | cam_01_02_105E
Premiere 5er + Bundesliga (bis Ende Januar 2008) | Premiere Sport (bis Ende Juni 2009)
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

Je nach dem - der Diff muß gepatched und anschließend ein image gebaut werden. Mit Newmake ist es eigentlich auch für Laien kein Problem (Voraussetzung Linuxumgebung)
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

hat schon jemand eingebaut ?
ich komm erst samstag dazu das einzubauen.
ich hab grad versucht das einzubauen :( leider erfolfglos, da audioplayer.cpp im cvs die 1.47 ist. du hast auf 1.46 gedifft. ist das deine änderung im audioplayer ?

Code: Alles auswählen

--- audioplayer_147.cpp	2007-10-25 20:05:52.000000000 +0200
+++ audioplayer.cpp	2007-10-25 20:23:11.000000000 +0200
@@ -93,7 +93,8 @@
 #define AUDIOPLAYERGUI_SMSKEY_TIMEOUT 1000
 #define SHOW_FILE_LOAD_LIMIT 50
 
-//#define AUDIOPLAYER_TIME_DEBUG
+//TODO: remove for release
+#define AUDIOPLAYER_TIME_DEBUG 1
 
 // check if files to be added are already in the playlist
 #define AUDIOPLAYER_CHECK_FOR_DUPLICATES
@@ -133,10 +134,17 @@
 	m_visible = false;
 	m_selected = 0;
 	m_metainfo.clear();
+	if(g_settings.audioplayer_filebrowser_mode == false)
+		m_show_progress = true;
+	else
+		m_show_progress = false;
+		
 
 	m_select_title_by_name = g_settings.audioplayer_select_title_by_name==1;
 
-	if(strlen(g_settings.network_nfs_audioplayerdir)!=0)
+	if(g_settings.audioplayer_filebrowser_mode == true && !g_settings.audioplayer_lastdir.empty())
+		m_Path = g_settings.audioplayer_lastdir;
+	else if(strlen(g_settings.network_nfs_audioplayerdir)!=0)
 		m_Path = g_settings.network_nfs_audioplayerdir;
 	else
 		m_Path = "/";
@@ -318,6 +326,11 @@
 	bool update = true;
 	bool clear_before_update = false;
 	m_key_level = 0;
+	if(g_settings.audioplayer_filebrowser_mode == true )
+	{
+		m_show_playlist = false;
+		update = false;
+	}
 
 	while(loop)
 	{
@@ -349,7 +362,24 @@
 			update = false;
 			paint();
 		}
+		
+		// start filebrowser if playlist is hidden
+		if(g_settings.audioplayer_filebrowser_mode == true && m_state == CAudioPlayerGui::STOP)
+		{
+			m_playlist.clear();
+			m_current = -1;
+			m_selected = 0;
+			clear_before_update = true;
+			update = true;
+			m_title2Pos.clear();
+			if (showFilebrowser() == 0)
+				loop = false;   // we migth leave the loop with a break, but I like this more
+		}
+		
+		if(loop == true)
 		g_RCInput->getMsg(&msg, &data, 10); // 1 sec timeout to update play/stop state display
+		else
+			msg = 0;
 
 		if( msg == CRCInput::RC_timeout  || msg == NeutrinoMessages::EVT_TIMER)
 		{
@@ -515,7 +545,7 @@
 		{
 			if (m_key_level == 0)
 			{
-				openFilebrowser();
+				showFilebrowser();
 				update=true;
 			}
 			else if (m_key_level == 1)
@@ -827,7 +857,20 @@
 	filebrowser.Multi_Select    = true;
 	filebrowser.Dirs_Selectable = true;
 	filebrowser.Filter          = &audiofilefilter;
-
+	if(g_settings.audioplayer_filebrowser_mode == true )
+	{
+		filebrowser.Headline        = LOCALE_AUDIOPLAYER_NAME;
+		filebrowser.ExitOnTimeout   = false;
+		filebrowser.Showsize        = false;
+		filebrowser.ShowPrevDir     = false;
+		filebrowser.ShowProgress    = m_show_progress;
+		filebrowser.ShowDate        = false;
+		filebrowser.PaintBackground = false;
+		filebrowser.LCDFilebrowser  = true;
+		if(g_settings.filebrowser_denydirectoryleave)
+			filebrowser.PrintBaseDir    = false;
+	}
+	
 	hide();
 
 	if (filebrowser.exec(m_Path.c_str()))
@@ -839,7 +882,7 @@
 		CProgressWindow progress;
 		long maxProgress = filebrowser.getSelectedFiles().size()-1;
 		long currentProgress = -1;
-		if (maxProgress > SHOW_FILE_LOAD_LIMIT)
+		if (g_settings.audioplayer_filebrowser_mode == false && maxProgress > SHOW_FILE_LOAD_LIMIT)
 		{
 			progress.setTitle(LOCALE_AUDIOPLAYER_READING_FILES);
 			progress.exec(this,"");
@@ -849,7 +892,7 @@
 		CFileList::const_iterator files = filebrowser.getSelectedFiles().begin();
 		for(; files != filebrowser.getSelectedFiles().end();files++)
 		{
-			if (maxProgress > SHOW_FILE_LOAD_LIMIT)
+			if (g_settings.audioplayer_filebrowser_mode == false && maxProgress > SHOW_FILE_LOAD_LIMIT)
 			{
 				currentProgress++;
 				progress.showGlobalStatus(100*currentProgress/maxProgress);
@@ -975,7 +1018,13 @@
 
 void CAudioPlayerGui::hide()
 {
-	//	printf("hide(){\n");
+//	printf("hide(){\n");
+	if(g_settings.audioplayer_filebrowser_mode == true)
+	{
+		paintHead(false);
+		paintFoot(false);
+		paintInfo(false);
+	}
 	if(m_visible)
 	{
 		m_frameBuffer->paintBackgroundBoxRel(m_x - ConnectLineBox_Width-1, m_y + m_title_height - 1,
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Beitrag von Günther »

Hier noch mal ein update auf neustes cvs.
audioplayer_filebrowser_mode2.diff
Ist jetzt ein wenig OT, aber wenn jemand die Anzeige der Alben ausprobieren will:
Die Bilder nach .bmp mit 8bit Farbtiefe und mit 180 Farben auf 720x576 konvertieren (keine Seite sollte größer sein, sondern eher kleiner) und in das Albumverzeichnis mit dem Namen 'Interpret - Album - Front.bmp" (Beispiel:
"Genesis - A Trick of the Tail - Front.bmp") legen. Interpret und Album müssen dem MP3Tag entnommen werden, sonst wird es nicht gefunden.

Die Umwandlung geht sehr gut mit IrfanView (freeware). Da kann man die Farben entsprechend einstellen. Damit geht auch wunderbar eine batch-erstellung

Hier noch ein Bild:
audioplayer_filebrowser.bmp
audioplayer_filebrowse2.bmp
Zuletzt geändert von Günther am Montag 26. November 2007, 20:20, insgesamt 1-mal geändert.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

@Guenther

gehen auch JPG's ? Waere schoen wenn der Audiobrowser einfach die Front.JPG Struktur koennte wie auch das Microsoft MCE oder Windows Media Player (10,11) oder Xbox Media Center (XBMC)

PS: habe das Diff & Bilder auch noch hier:


->Diff<-

Bild

Bild
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

na dann bedankt man sich doch :)
wie ist das wenn kein cover da ist ?? wird dann das normale radiomode bild genommen ?
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

leider kompliert der nicht durch :(

Code: Alles auswählen

/home/mb405/image/tuxbox-cvs/driver/dvb/include -I/home/mb405/image/tuxbox-cvs/driver/include  -Wall -mcpu=823 -mmultiple -mstring -meabi -pipe -Os -MT filebrowser.o -MD -MP -MF ".deps/filebrowser.Tpo" -c -o filebrowser.o filebrowser.cpp; \
        then mv -f ".deps/filebrowser.Tpo" ".deps/filebrowser.Po"; else rm -f ".deps/filebrowser.Tpo"; exit 1; fi
filebrowser.cpp: In member function `void CFileBrowser::paintItem(unsigned int)':
filebrowser.cpp:1052: error: 'class CLCD' has no member named 'showFilelist'
filebrowser.cpp: In member function `void CFileBrowser::paint()':
filebrowser.cpp:1244: error: 'class CLCD' has no member named 'showFilelist'
filebrowser.cpp:1245: error: `MODE_FILEBROWSER' is not a member of `CLCD'
make[5]: *** [filebrowser.o] Fehler 1
meine lcdd.cpp und *.h sind irgendwie anders als die im cvs :( mhhh
ich hab die 3 zeilen mal deaktiviert, und es kompiliert durch.
muss ich mir nochmal die lcd sourchen zu gemüte führn.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

könnteste auch mal 1-2 probebilder anhängen, oder pt-1 senden ? damit wir testen können. ein bilderprofi bin ich net :(
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ahh mit irvan view geht das recht simpel :) sogar was für mich.
ich hab mal 256 farben genommen, und es geht juhu.
nur sollte man sich über die namensgebung der bilder unterhalten, oder haste da noch was im ärmel ? denn bei samplern wären das arg viel bilderchen :( kann man nicht nur eine date namens neutrino_audioplayer.bmp im verzeichnis ablegen. das sollte für die meisten doch reichen.

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

Beitrag von Günther »

mb405 hat geschrieben:ich hab mal 256 farben genommen, und es geht juhu.[/img]
Ja, schmiert nichts ab, aber alle Farben über 180 werden nicht von der.Bmp, sondern von der Neutrino Farbpalette genommen. Da kann es dann zu lustigen Farbverfälschungen kommen ;)

Das mit den Samplern stimmt, da habe ich gar nicht dran gedacht. Ev. kann man für jedes Verzeichnis noch eine Datei definieren.... Naja, solange wird halt das neutrino-Bild angezeigt..
Zuletzt geändert von Günther am Freitag 26. Oktober 2007, 17:00, insgesamt 1-mal geändert.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

oder du machst die bilder nur vom albumcover abhängig, die ja eh dann jder hat.
dann einfach eine datei mit nen festen namen in das verzeichnis und gut ist.
das mit den farben hast recht :)
ich hab in irfanview gesagt 180 farben, und was sagt neutrino beim audioplayer ?

Code: Alles auswählen

file 23 </mnt/audio/Future Trance/Vol.1/CD2/Future Trance Vol. 1 CD 2 - Front.bmp>
[loadBmp2Mem] Warning: to many colors in palette 256 (max 180) offset: 18
[paintBMP8] 720x576, 8bit,256 colors
[paintBMP8] Paint x: 0-720, y: 0-576
[paintBMP8] stride paint 0 bmp 0 bmp_data 1078
[paintBMP8] clear background 0
schon lustig. egal was ich irfanview sage. immer das selbe.
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Beitrag von Günther »

PT-1 hat geschrieben:@Guenther

gehen auch JPG's ? Waere schoen wenn der Audiobrowser einfach die Front.JPG Struktur koennte wie auch das Microsoft MCE oder Windows Media Player (10,11) oder Xbox Media Center (XBMC)
BMP ist halt schön einfach (fast so wie der interne Framebuffer der dbox). JPG müsste ich mir erst noch anschauen. Ist halt deutlich mehr Rechenarbeit. Mit Bmp bin ich zu den raw-Dateien bereits ein Kompromiss eingegangen. Raw ist deutlich schneller (v.a. weil der Farboffset der Palette angegeben werden kann) nur ist es ein Programm mehr zu bedienen und man hat am Ende auch noch zwei Files (.pal und .raw). Dafür wären jpgs kleiner (weniger Daten über IDE/Netzwerk). Keine Ahnung ob das mit dem Dekomprimierungsaufwand vergleichbar ist. Gibt es bei jpgs überhaupt Farbpaletten. Ohne dem geht es eh nicht, da dafür die dbox nicht schnell genug ist. Da kann man am Rechner einfach bessere Bilder erstellen (downsampeln). Das mit den Namen habe ich erstmal auch einfach gehalten, um kein Such/Pars-Aufwand zu haben. Die Namen habe ich einfach von einer Cover-Seite aus dem I-net übernommen (bin ja faul ;) )

Danke für die Bilder, beim Tuxbox-Upload klappt das wegen dem Link nicht, ev. kann Carsten da mal etwas verbessern ;)
Zuletzt geändert von Günther am Freitag 26. Oktober 2007, 17:02, insgesamt 1-mal geändert.
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Beitrag von Günther »

mb405 hat geschrieben:schon lustig. egal was ich irfanview sage. immer das selbe.
Ja, irfanview scheint die Anzahl der Farben nur auf 256 zu setzen (steht auch so im File-Header drin). Ev. mache ich die Meldung noch raus, verwirrt nur. Das Bild ist aber schon auf 180 Farben gesampelt, sonst würdest du Farbfehler sehen
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

danke für die infos. habs grad mal gegengetestet ein bild mit 180farben sieht echt besser aus als eins mit 256. krass.
naja 406kb(so groß sind die hier) sollte auf jedenfall vertretbar sein. paw und raw sind auch net viel kleiner. ehr größer (siehe radiomode bild).
bis jetzt gehts hier sehr gut.
der traffic sollte doch auch kein problem sein, da er eh nur am beginn einer mp3 benötigt wird.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Beitrag von seife »

man könnte auch mpeg2 (wie die bootlogos) nehmen...
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

@Guenther

Wie gesagt bei Windows ist jedenfalls folder.jpg standard..

Und XBMC benutzt das auch ;-)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

hab grad nochwas gefunden :(
wenn man in den audioplayer einstellungen die playlist aus stellt, und dann die einstellungen abspeichert, dann wird trotsdem kein bild geladen. erst nach neutrino-neustart gehts dann.
im dateibrowser modus werden auf dem tv zwar die titel angezeigt, nur ohne hintergrund, was shite aussieht :)
ansonsten keine fehler gefunden.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Mal ein LCD Shot

Bild
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

das lcd ist schon immer so.
aber bei shoutcast streams wird nur noch die hälfte infos aufn lcd ausgegeben ?
is das nur bei mir so ??
1.zeile Shoutast
2.zeile der name der url datei ohne .url hintendran

früher war da mal titel und interpret in der anzeige.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

so es hat mir keine ruhe gelassen, warum bei shoutcast keine info angezeigt wird :)

vorgehensweise:
1.)einstellungen->audioplayer/bildbetrachter->playlist anzeigen=aus->speichern->neutrino reboot

somit wird bei shoutcast keine info ausgegeben

2.)alles so gelassen, nur playlist auf ein stellen, und menü verlassen.

somit ist playliste da, und shoutcast zeigt alles 1a dar mit hintergrundbild wenn man will.
nur kommt dann irgendwann mal ein stück der playliste im bild.

kann das jemand nachstellen?
Günther ?
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Hallo

Wie kann man eigenlich eine Playliste für die Shoutcast Links erstellen so das man beim abspielen nicht immer erst den TV anschalten muss und Audioplayer -> hinzufügen -> gewünschte Sender aussuchen und starten drücken muss?
Ich hätte die Sender gerne gleich in dem Audioplayer.
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Beitrag von Günther »

Eigentlich hatte ich den November ja fürs dbox basteln reserviert, aber irgendwie wird's dieses Jahr nicht's draus :( .....

Besteht denn überhaupt allgemeines Interesse an der Albumanzeige, bzw. an der Bedienung ohne LCD? Ersteres ließe sich ja noch mit relativ wenig Aufwand und Komplikationen einpflegen, aber beim Zweiten sehe ich schon unendlich viel Zeit für das einfriemeln in bestehenden Code ohne Veränderung der bestehenden Funktionen ("Neutrino-Grundsatz") drauf gehen. Ich habe schon mehrfach angefangen und wieder alles verworfen, weil ich erst nach und nach die Feinheiten und Features (welche ich nicht verwende) bemerkt habe. Mit meinem bisschen Zeit komme ich da im Moment leider einfach nicht richtig weiter.
Selbst meine Box läuft noch mit dem halbgaren Patch von vor einem Monat :(
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Beitrag von Günther »

seife hat geschrieben:man könnte auch mpeg2 (wie die bootlogos) nehmen...
Stimmt, gute Idee, volle Farben bei geringen Speicherverbrauch. Nachteil: das Format ist für Ott-Normal-Verbraucher nicht so üblich und auch sonst nicht für andere Sachen wiederzuverwenden.

Wie sieht es denn mit einer (möglichen) Anzeige der Alben beim Scrollen aus? Würde das mit mpeg2 auch gehen (also z.b. als 1/4 Bild etwas unterhalb der Mitte)?

Bei der Namensgebung der Bilder bin ich absolut emotionslos. Von mir aus immer der gleiche Name in dem jeweiligen Verzeichnis (wie von Pt-1 vorgeschlagen). Gibt es da (außer Windows) sonst noch irgendwelche 'Standards'?
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Beitrag von Günther »

Gorcon hat geschrieben:Hallo

Wie kann man eigenlich eine Playliste für die Shoutcast Links erstellen so das man beim abspielen nicht immer erst den TV anschalten muss und Audioplayer -> hinzufügen -> gewünschte Sender aussuchen und starten drücken muss?
Ich hätte die Sender gerne gleich in dem Audioplayer.
Genau, deshalb der Fred hier ;). Hast Du den Patch oben schon ausprobieren können? Hierbei wird sofort der Filebrowser im letzten Verzeichnis gestartet. Damit kann dann sofort die entsprechende Datei angewählt werden.