PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Noch ein Gtk+ basierter MPD-Client



Keeper
05.10.06, 22:32
Hallo!
Ich habe mich mal daran gemacht, einen MPD-Client zu programmieren. Nach circa einer Woche Arbeit (natürlich nicht voll) wollte ich euch eine Alpha präsentieren.

Screenshots:
http://www.sourcekeeper.de/emo-live.png
http://www.sourcekeeper.de/emo-2.png

Es ist halt nur ne Alpa, deswegen zwei Einschränkungen:
+ Es ist nur möglich, sich mit localhost:6600 zu verbinden
+ Ich habe leider noch gar keine Fehlerverarbeitung eingebaut... wenn also MPD gestoppt oder die Playlist leer ist, isset vorbei... :(

Aber das wird dann bald natürlich alles gemacht.
Ansonsten frohes Testen, den Source gibts hier:

http://www.sourcekeeper.de/releases/emo-0.1a.tar.bz2

Hoffe, damit könnt ihr was anfangen.

Gruß, Keeper

rettichschnidi
09.10.06, 15:34
mmhhh...

bei mir compiliert es nicht. :( Falls dich die Fehlermeldung interessiert, poste ich die heute Abend hier. Bin grad auf der Arbeit.

pippi
09.10.06, 18:56
Hallo Keeper,

funktioniert, ich konnte es eben auf meinem Ubuntu Dapper kompilieren und starten.

Das Programm läuft und lässt sich gut bedienen. Ich habe allerdings folgendes Problem:

Ich habe sämtliche meiner OGG- und MP3-Dateien mit Absicht ihrer Tags beraubt. Dein "emo" zeigt mir nun bei allen meinen Dateien "Unkown - Unknown" an, hier würde der Dateiname gut passen.

Ich freue mich auf die nächste(n) Version(en)!

Viele Grüsse aus Schweden!
Pippi

Keeper
09.10.06, 20:02
mmhhh...

bei mir compiliert es nicht. :( Falls dich die Fehlermeldung interessiert, poste ich die heute Abend hier. Bin grad auf der Arbeit.

Hallo!
Mich würde die Fehlermeldung sehr interessieren. Ich habe mich extra noch darum gekümmert, dass der Kompilationsvorgang gut läuft. Gibt's aber anscheinend noch was zu verbessern ;)

@pippi:
Dankeschön! :)
Das liegt an GTK und meiner Faulheit. Ich habe eine Funktion gemacht, der in jede Zeichenkette, wenn sie nichts enthält (wie das ja bei den Tags ist die nicht vorhanden sind), "Unknown" reinschreibt, damit GTK keine Probleme bei der Darstellung macht. Aber du hast recht, für die Playlist sollte ich besser den Dateinamen verwenden. Kommt sofort :)

Freue mich weiterhin auf Feedback!

Gruß, Keeper

rettichschnidi
09.10.06, 23:32
als erstes kam dies: "../include/player.h:1:27: Fehler: libmpd/libmpd.h: No such file or directory"

also ein "apt-get install libmpd-dev"

danach hatte ich:

ls /usr/include/libmpd-0.01/libmpd/*
/usr/include/libmpd-0.01/libmpd/debug_printf.h
/usr/include/libmpd-0.01/libmpd/libmpdclient.h
/usr/include/libmpd-0.01/libmpd/libmpd.h

Leider hat er es damit immernoch nicht gefunden.

Also noch ein "sudo ln -s /usr/include/libmpd-0.01/libmpd/ /usr/include/libmpd"


player.c: In Funktion »button_prev_clicked«:
player.c:24: Warnung: implizite Deklaration der Funktion »mpd_player_prev«
player.c: In Funktion »button_stop_clicked«:
player.c:30: Warnung: implizite Deklaration der Funktion »mpd_player_stop«
player.c: In Funktion »button_pause_clicked«:
player.c:36: Warnung: implizite Deklaration der Funktion »mpd_player_get_state«
player.c:36: Fehler: »MPD_PLAYER_STOP« nicht deklariert (erste Benutzung in dieser Funktion)
player.c:36: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt
player.c:36: Fehler: für jede Funktion in der er auftritt.)
player.c:37: Warnung: implizite Deklaration der Funktion »mpd_player_play«
player.c:39: Warnung: implizite Deklaration der Funktion »mpd_player_pause«
player.c: In Funktion »button_next_clicked«:
player.c:46: Warnung: implizite Deklaration der Funktion »mpd_player_next«
player.c: In Funktion »scale_volume_change«:
player.c:74: Warnung: implizite Deklaration der Funktion »mpd_status_set_volume«
player.c: In Funktion »button_repeat_clicked«:
player.c:80: Warnung: implizite Deklaration der Funktion »mpd_player_set_repeat«
player.c:80: Warnung: implizite Deklaration der Funktion »mpd_player_get_repeat«
player.c: In Funktion »button_random_clicked«:
player.c:86: Warnung: implizite Deklaration der Funktion »mpd_player_set_random«
player.c:86: Warnung: implizite Deklaration der Funktion »mpd_player_get_random«
player.c: In Funktion »connect_to_mpd«:
player.c:95: Warnung: implizite Deklaration der Funktion »mpd_new_default«
player.c:95: Warnung: Zuweisung erzeugt Zeiger von Ganzzahl ohne Typkonvertierung
player.c:97: Warnung: implizite Deklaration der Funktion »mpd_connect«
player.c: In Funktion »update_func«:
player.c:122: Warnung: implizite Deklaration der Funktion »mpd_status_update«
player.c:124: Warnung: implizite Deklaration der Funktion »mpd_playlist_get_current_song«
player.c:124: Warnung: Zuweisung erzeugt Zeiger von Ganzzahl ohne Typkonvertierung
player.c:125: Warnung: implizite Deklaration der Funktion »mpd_status_get_total_song_time«
player.c:126: Warnung: implizite Deklaration der Funktion »mpd_status_get_elapsed_song_time«
player.c:164: Warnung: implizite Deklaration der Funktion »mpd_playlist_get_playlist_id«
player.c:189: Fehler: »MPD_PLAYER_PLAY« nicht deklariert (erste Benutzung in dieser Funktion)
player.c:199: Warnung: implizite Deklaration der Funktion »mpd_status_get_volume«
player.c:202: Warnung: implizite Deklaration der Funktion »mpd_status_get_crossfade«
make[2]: *** [player.o] Fehler 1
make[1]: *** [all-recursive] Fehler 1
make: *** [all] Fehler 2


Weiter hab ich nicht gesucht (warscheinlich sitzt das Problem vor dem Bildschirm...), vielleicht kannst du mir ja helfen.

@pipi: verwende ebenfalls dapper, wie hast du es gemacht?

Edit:

grep -R MPD_PLAY /usr/include/libmpd/*
/usr/include/libmpd/libmpdclient.h:#define MPD_PLAY_AT_BEGINNING -1

Darf das schon alles sein?

edit2: Scheine eine falsche/veraltete Version installiert zu haben. Werde morgen weitersuchen.

pippi
10.10.06, 03:43
Hallo rettichschnidi,

ich habe vermutlich eine andere Version von libmpd als Du. Um gmpc 0.13 zu kompilieren hatte ich mir die "libmpd-0.12.0" runtergeladen und selber kompiliert. Ich verwende auch nicht den Dapper-mpd, sondern baute den ebenfalls aus den INternetquellen.

Viele Grüsse
pippi

Keeper
10.10.06, 14:50
Dein Problem scheint wirklich eine extrem veraltete Version von libmpd zu sein. Die neueste ist 0.12, die kriegst du hier:

http://cms.qballcow.nl/index.php?page=Install

Ich hoffe damit klappt es.

Gruß, Keeper

oster
10.10.06, 15:52
Sorry für meine Unwissenheit: Was ist MPD? Hat das was mit Streaming von Musik zu tun?

oster
10.10.06, 15:55
Ok, Wikipedia weiß doch eine Antwort, wenn ich nicht "MDP" sondern "MPD" eingebe ;) http://de.wikipedia.org/wiki/Music_Player_Daemon

Keeper
10.10.06, 16:02
Unwissenheit ist doch kein Verbrechen.
MPD ist kein Streamer für Musik, sondern ein Daemon, der über due Clients (fern)gesteuert werden kann. Aber das steht ja alles auf der Seite ;)
Es gibt viele hier im Forum, die ihn benutzen (kriegt man alles im Screenshot-Thread mit), daher habe ich gedacht, es wäre ein guter Ort, um meinen Client mal zu präsentieren. Scheint bisher nicht viel Anklang zu finden, aber das macht mir nichts, ich bin ja noch fleißig am programmieren :)
Wenn's soweit ist, stell ich ihn im MPD-Wiki rein, dann wird der schon seine Leute finden.

Gruß Keeper

winni_puh
10.10.06, 22:41
Sieht gut aus und erfüllt seinen Zweck! Aber wie schon *pippi* sagte währen Dateinamen in der Playlist und im Hauptfenster (rechts neben Play, Pause, usw.) nicht schlecht!

Gruß