Now playing

Gestern bin ich endlich mal dazu gekommen mein 16×2 Zeichen LCD-Display zu verlöten und an den Rechner anzuschließen. Es hängt am Parallelport und wird über LCD4linux angesteuert. Nach einigem Rumgebastel und anfänglichen Startschwierigkeiten gibt es jetzt den Titel des momentan in Amarok gespielten Stücks, dessen Länge und die aktuell gespielte Zeit aus. Dazu habe ich mir zwei Widgets gebaut, die sich die jeweiligen Werte über DCOP holen. Hier die beiden dazu nötigen Widgets:

Widget AmarokTitle {
class  'Text'
expression exec('dcop amarok player nowPlaying', 1000)
width  16
align  'M'
speed 250
update tick
}

Widget AmarokTime {
class  'Text'
expression exec('dcop amarok player currentTime', 250).'/'.exec('dcop amarok player totalTime', 250)
width  16
align  'E'
}

Diese müssen einfach in die /etc/lcd4linux.conf aufgenommen und einem Layout hinzugefügt werden.

Kommentar schreiben

7 Kommentare.

  1. Schade,

    irgendwie gehts doch nicht so richtig.

    serdisplib und lcd4linux funktionieren.
    diese Widgets in die .conf eingetragen, aber ich krieg nur:

    exec error: could not read from pipe ‘dcop amarok player currentTime’: Success
    call failed

    exec error: could not read from pipe ‘dcop amarok player totalTime’: Success
    call failed

    Weiß da jemand eine Lösung?

  2. Was passiert, wenn du “dcop amarok player currentTime” in die Konsole eintippst? Amarok sollte dabei natürlich laufen.

  3. Wenn ich das direkt in der Console als User eingebe, dann wird mir die Positionszeit angegeben.

    Als root erhalte ich den Fehler:
    ERROR: Couldn’t attach to DCOP server!

    Das hab ich auf dem Laptop eben getestet.

    Werd das heute Abend nochmal in der console und mit angeschlossenem Display testen. Auch auf dem PC ders eigentlich machen soll.

  4. Bei genauerer Überlegung kann es sein, dass ich zu der Zeit, zu der ich das Widget zusammengebaut hab, lcd4linux unter meinem eigenen Benutzer ausgeführt habe. Du könntest evtl. mal versuchen als root per sudo den Befehl unter deinem Benutzer auszuführen. Spätestens dann sollte es eigentlich klappen.

  5. Ich hab verschiedene Sachen ausprobiert:

    LCD4Linux wird beim starten des Systems aus der /etc/init.d mit gestartet.
    Die config ist in /etc/lcd4linux.conf und muss chown -ug root chmod 600 Berechtigung haben, da LCD4Linux und ich auch es so wollen. Schließlich können da Systempasswörter enthalten sein, die keiner lesen sollen muss.

    Amarok wird von KDE aus als Benutzer “user” gestartet. Alle Daten befinden sich in einer MySql-Datenbank.

    Wie kann das Widget gebacken werden, das der dcop von der LCD4Linux-config als “root” den Output von Amarok des “user” auf dem Display anzeigen kann?

    Villeicht mit einer zusätzlichen Username-Angabe zum lesen des Outputs mit dcop?

    Ich hab wirklich keine Ahnung von Debian-Linux, nur ich liebe es wirklich (einfach ein solides Linux wie es sein soll) und will seit Jahren nix anderes. Aber ne Frau gibts auch noch in meinem Leben (an zweiter Stelle).

  6. Du kannst dcop den Parameter “–user” mitgeben. Dann sollte es eigentlich funktionieren. Mit “dcop -h” siehst du, was du noch alles angeben kannst. Im Widget dann einfach nur zwischen “dcop” und “amarok” “–user meinuser” reinquetschen und schon sollte es funktionieren.

Kommentar schreiben


*


Hinweis - Du kannst dies benutzenHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Trackbacks und Pingbacks: