mpc current auslesen in c

  • Hallo,

    ich finde leider nirgends wie ich an die daten des mpc current komme. möchte die daten auf ein display ausgeben und progammiere in c.

    gibt es da auch so einen pfad wie bei der temperatur:
    // open cpu temp file
    FILE *fp = fopen("/sys/class/thermal/thermal_zone0/temp", "r" );

    // read file
    for (i=0;i<5;i++){
    fscanf(fp, "%d\n", &temperatur);
    }
    fclose(fp);

    hat jemand einen tip?
    vielen dank
    klaus

  • Moin,
    der MediaPlayerClassic gibt normalerweise aus, was er gerade spielt. Diese Ausgabe kann man in eine Datei umleuten.
    Und diese Datei kann man mit C auslesen.

    Hilft das weiter??

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Moin,
    ich habe es mit einer " named pipe" gelöst. Aber wenn mpc socket kann....

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hallo,
    dane für eure raschen antworten!

    ich komm eigentlich aus der controller programmierung... da hat man wenig mit den oben genannten vorschlägen zu tun :(
    das ist mei erstes projekt und ich würde es gerne in c realisieren.

    ich hab schon herausgefunden dass man die mpd/status.h einbinden kann, aber da motzt der gcc:
    lcd3.c:3:24: fatal error: mpd/status.h: No such file or directory

    ich will ja in weiterer folge die lautstärke auch noch steuern. bin für jeden tip dankbar

    Danke für eure hilfe

  • schade, ich ste im moment absolut an...

    kann mir keiner sagen warum sich die #include <mpd/status.h> nicht einbinden lässt?

    danke
    Klaus
    Automatisch zusammengefügt:
    ich hab auch keine client.h datei gefunden.

    root@raspberrypi:~# locate mpd/
    /run/mpd/pid
    /usr/share/doc/mpd/AUTHORS
    /usr/share/doc/mpd/changelog.Debian.gz
    /usr/share/doc/mpd/copyright
    /usr/share/doc/mpd/examples
    /usr/share/doc/mpd/examples/mpd.conf.gz
    /usr/share/doc/mpd/NEWS.Debian.gz
    /usr/share/doc/mpd/NEWS.gz
    /usr/share/doc/mpd/README
    /usr/share/doc/mpd/README.Debian
    /usr/share/doc/mpd/UPGRADING
    /var/lib/mpd/music
    /var/lib/mpd/playlists
    /var/lib/mpd/playlists/radiosender.m3u
    /var/lib/mpd/state
    /var/lib/mpd/sticker.sql
    /var/lib/mpd/tag_cache
    /var/log/mpd/mpd.log
    root@raspberrypi:~#

    MPD&MPC ist installiert und läuft einwandfrei.

    Danke
    Klaus

    Einmal editiert, zuletzt von Klaus_at (13. März 2016 um 20:43)

  • Unter Linux werden Pakete of geteilt in die Software, und dann gegebenenfalls dev-Pakete. Schau doch mal, ob du nicht ein mpd-dev oder aehnliches findest.


  • ich hab schon herausgefunden dass man die mpd/status.h einbinden kann, aber ...

    Evtl. aus:

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Danke rpi444!

    Ich hab noch das problem, dass der gcc compiler die include datei nicht kennt...

    lcd3.c:8:27: fatal error: libmpd/libmpd.h: No such file or directory
    compilation terminated.

    wo finde ich welche anweisung ich für den linker anhängen muss? Auf der hompage und in der dokumentation hab ich nichts gefunden..

    Vielen Dank

  • Das ist ganz bestimmt nicht der Name der include-Datei, den du da angibst. Lass dir doch mal die Dateien in dem Paket auflisten, mit "dpkg -L <paketname>" - da solltest du was unter /usr/include oder aehnlichem finden.
    Automatisch zusammengefügt:
    hier ist die liste: https://packages.debian.org/sid/amd64/libm…nt-dev/filelist.

    Du musst also - wie du schon selbst gesagt hast - #include <mpd/status.h> etc machen.

    Und linking ist etwas anderes, du wirst auch noch "-lmpdclient2" an den Compiler uebergeben muessen. Das steht aber *NICHT* im Source!

  • Moin,
    normalerweise erwartet der gcc seine include-Dateien in /usr/include/.

    Wenn deine "libmpd/libmpd.h" woanders liegt, dann musst du den kompletten Pfade in die #include schreiben.
    Oder halt die Headerdatei umkopieren.

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Moin,
    stimmt die Möglichkeit habe ich vergessen. :-((

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Moin,
    freut mich das dirweitergeholfen wurde.

    Dann bitte dein Thema als erledigt markieren.
    Danke
    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!