Siduction Forum

Siduction Forum => Software - Support => Topic started by: michaa7 on 2012/08/10, 20:17:38

Title: (gelöst) kmetronome
Post by: michaa7 on 2012/08/10, 20:17:38
gibt es eine möglichkeit kmetronome so zu starten, dass ohne weitere interaktion das metronome loslegt ohne dass ich noch extra auf wiedergabe drücken muß?

Einen schalter dafür habe ich in den man pages nicht gefunden. "ALT-w" startet zwar das metronom, aber kann man das irgendwie in ein konsolenkommando (für das fluxbox startmenü) einbauen, so dass dies automatisch übergeben wird?
Title: kmetronome
Post by: spacepenguin on 2012/08/10, 23:17:55
dbus tuts vielleicht...

=> http://kde-apps.org/content/show.php?content=22485
=> "External transport control: play - stop - continue commands, can be controlled using DBUS"

... also als Aufruf des Programms dann "kmetronome &&  der entsprechende dbus Play-Befehl".

Mußt mal in qdbusviewer schauen -> qt4-dev-tools installieren.
Title: kmetronome
Post by: michaa7 on 2012/08/11, 13:14:18
hey spacepenguin, danke für den tipp.

Hast du qdbusviewer selber schon mal genutzt? "man qdbusviewer" ist recht übersichtlich.

Ich nehme an dass dein vorschlag daruf hinausläuft mit  qdbusviewer zu lauschen, welche kommands bei kmetronome so über dbus gehen und eben dabei herauszufinden, was "Alt-w" auf dem dbus tut um dies dann als zusatz an den startbefehl anzuhängen? Aber wo finde ich basisinfo zu qdbusviewer? Oder kannst du den lauschangriff kurz beschreiben?

EDIT://

ok, qdbusviewer ist ein graphisches interface. damit muß ich mich nun erstmal beschäftiogen um zu sehen ob es mir zeigt was ich wissen will.


EDIT2://

Das einzige was ich soweit herausfinden konnte, dass ich die wiedergabe mit dem qdbusviewer starten kann, wenn ich etwas tiefer in dessen eingeweiden "Method: play" anklicke.
Nur habe ich keine syntax ( "kmetronome && method: play", "kmetronome --play", "kmetronome method: play", "kmetronome -p", "kmetronome play" ) gefunden, die erfolgreich im fluxbox startmenü zu irgendetwas führt. Falsche syntax wird einfach mit nichtstarten beantwortet.

Jemand ne idee was mit diesem "method: play" ausserhalb des qdbusviewer anzufangen ist?
Title: kmetronome
Post by: spacepenguin on 2012/08/11, 14:13:20
So schwer ist das gar nicht. Öffne Kmetronome neben qdbusviewer. Dann suchst du in qdbusviewer über das Suchfeld nach kmetronome. Dann öffnest du den rechts angezeigten Baum und klickst auf den Pfad mit dem Programmnamen  (kmetronome/).

Und jetzt gehst du die Unterverzeichnisse durch. Du wirst recht schnell unter MainWindow_1/net.sourceforge.kmetronome "Method: play" finden. Klingt passend oder? Klickst du darauf, fängt kmetronome an zu arbeiten, funktioniert also, hast du ja auch schon gemerkt. Du mußt den Pfad, also den Programmnamen, nehmen, es gibt auch weiter oben ein "Method: Play" unter net.sourceforge.kmetronome, das funktioniert auch beim Draufklicken, hilft dir aber nicht weiter für den Befehl, da es kein Pfad ist.

(http://img5.fotos-hochladen.net/thumbnail/qdbusviewerkmewq58irbkdj_thumb.jpg) (http://www.fotos-hochladen.net/view/qdbusviewerkmewq58irbkdj.jpg)

Jetzt gilt es noch, das Gefundene in einen Befehl einzubauen. Die Syntax:

qdbus session-bus-Bezeichner-links /Pfad-Bezeichner-rechts Unterkategorie.Methode Parameter-so-nötig

Bastel es dir zusammen und teste es in einer Konsole bei gleichzeitig geöffnetem kmetronome-Fenster. Fängt kmetronome an zu arbeiten, ist dein Ergebnis richtig und du kannst das zusammen mit "kmetronome &&" als Starter verwenden.

Edit, weil nett ;)
qdbus net.sourceforge.kmetronome-24638 /kmetronome/MainWindow_1 net.sourceforge.kmetronome.play
Title: kmetronome
Post by: michaa7 on 2012/08/11, 14:30:43
hm, das ergäbe nach adam riese:
kmetronome && net.sourceforge.kmetronome-3436/kmetronome/MainWindow_1/net.sourceforge.kmetronome.Methode play
... klappt aber nicht, auch nicht ein paar varianten, methode, methode:, Methode:

Noch ein hinweis vielleicht?
Title: kmetronome
Post by: michaa7 on 2012/08/11, 14:32:55
Ah, danke für das edit. Was mich verwirrt, bleibt denn die nummer auch nache eine reboot gleich, bei mir statt 24638 die # 3436

EDIT://

das haut nicht hin, und die nummer ist ja iommer verschieden. Bei dir klappt das?
Title: kmetronome
Post by: spacepenguin on 2012/08/11, 14:35:04
Nein, so:

kmetronome && qdbus net.sourceforge.kmetronome-24638 /kmetronome/MainWindow_1 net.sourceforge.kmetronome.play

Wobei ich fürchte, da du eine andere Zahl da stehen hast, daß der Entwickler das session-abhängig gemacht hat, herzlichen Glückwunsch. Also ersetz mal meine durch deine Zahl und teste. Und dann teste das in einer neuen Session ob's noch funktioniert. Wenn ja gut, wenn nein, Entwickler auf kde-apps.org anschreiben.
Title: kmetronome
Post by: spacepenguin on 2012/08/11, 14:38:54
Nein, hab es nicht ausprobiert mit verschiedenen Sessions. Wie ich befürchtet habe, hat der Entwickler das nicht global gemacht... Mist...

Daher auch mein anfängliches "dbus tuts vielleicht..." - ich kenne das von yakuake her, da war das anfänglich auch so, bis der Entwickler das mal geändert hat.

Ich habs mal versucht auf kde-apps.org zu formulieren....
Title: kmetronome
Post by: michaa7 on 2012/08/11, 14:40:06
Neine, tut es nicht, weil nach jedem restatr von kmetronome sich die nummer ändert. Es hat noch nicht einmal geklappt. :-(
Title: kmetronome
Post by: michaa7 on 2012/08/11, 14:48:12
ok, typischer fall von mindestens wishlist bug report.

Danke für deine hilfe!
Title: kmetronome
Post by: spacepenguin on 2012/08/11, 14:51:13
Wahrscheinlich könnte man dem ganzen mit einem Script zu Leibe rücken, aber das ist nicht mein Metier. Das Script müßte im Grunde kmetronome starten, die PID auslesen, den qdbus-Befehl entsprechend anpassen und ihn dann ausführen.
Title: kmetronome
Post by: michaa7 on 2012/08/11, 14:54:09
jo, dabei wünsche ich mir nichts anderes als ein "kmetronome -p" ;-)
Title: kmetronome
Post by: spacepenguin on 2012/08/11, 14:54:42
Ja, manchmal ist das nicht so einfach mit den Wünschen ;)
Title: kmetronome
Post by: michaa7 on 2012/08/11, 14:55:53
da haste wohl recht
Title: (gelöst) kmetronome
Post by: ayla on 2012/08/11, 16:34:21
Ich bin nicht gerade der bashcrack, aber hier der Versuch eines Bashscripts von mir (macht hier was es soll):

#! /bin/bash

kmetronome & sleep 1 && qdbus net.sourceforge.kmetronome-$(pidof kmetronome) /kmetronome/MainWindow_1 net.sourceforge.kmetronome.play


Beachten:
Einzeiler und nur 1 "&" hinter kmetronome sonst wird auf das "beendet"-Signal von kmetronome gewartet, das aber nicht kommen kann, da kmetronome ja laufen soll, aber "&&" hinter sleep, denn das Ende der Wartezeit muß abgewartet werden.

Nachteil des Ganzen: Meldungen werden in der aufrufenden bash ausgegeben.

hth
ayla
Title: (gelöst) kmetronome
Post by: spacepenguin on 2012/08/11, 18:06:55
Als Befehl für einen Menü-Starter würde diese Zeile nicht funktionieren?
Title: (gelöst) kmetronome
Post by: spacepenguin on 2012/08/11, 18:57:09
Der Entwickler von Kmentronome hat folgendes vorgeschlagen:

Quotetry this Bash script:

$ cat kmetronome-autoplay.sh
#!/bin/bash
kmetronome &
sleep 1s
SERVICE="net.sourceforge.kmetronome-$(pidof kmetronome)"
qdbus $SERVICE / play
http://kde-apps.org/content/show.php?content=22485

Das sieht im Grunde wie deine Lösung aus, ayla - aber du warst schneller ;).
Title: (gelöst) kmetronome
Post by: ayla on 2012/08/11, 20:03:26
Quote from: "spacepenguin"Als Befehl für einen Menü-Starter würde diese Zeile nicht funktionieren?

Hier bei KDE funktionierts indem ich das script einfach aus dem Dolphin in die Kontrolleiste ziehe und dort per Klick starte.

Wie ich einen Menüeintrag hinzufüge hab ich schon wieder mal vergessen...  :)

Gruß
ayla
Title: (gelöst) kmetronome
Post by: michaa7 on 2012/08/11, 23:17:18
Ha, kaum geht man mal kurz weg, schon wird das problem von anderen gelöst ... das mach ich jetz öfters ;-), das könnt sogar ne regel werden.

Danke euch beiden. Wo legt man so ein script am geeignetsten hin, nach ~.kde/??, oder ~bin (ja, ist kein binary)?
Title: (gelöst) kmetronome
Post by: michaa7 on 2012/08/12, 00:23:21
Also, da sscript liegt bei mir jetz unter /home/<user>/bin/mnom-p.sh und im fluxbox menü habe ich einfach das script mit pfad angegebenden.
"spleep 1" funktioniert nicht, eine sekunde ist wohl zu kurz, da unter fluxbox kdeinit4, klaunch und kded4 erst noch gestartet werden müssen. Mit "sleep 3" klappt das jedoch.

Danke nochmals euch beiden!