web-dev-qa-db-ja.com

Rhythmboxで特定の信号を聞くにはどうすればよいですか?

のキープレスを聞きたい Ctrl+W Rhythmboxで、それが発生した場合は関数を呼び出します。 Pythonでそれを行うにはどうすればよいですか?

2
Bunny Rabbit

ある種のプラグインを作成していると思います。プラグインはCまたはPythonで記述できます。これを行う方法はわかりませんが、この情報をどこで見つけることができるかはわかっています。

  1. プラグインを作成するためのドキュメント
  2. APIドキュメント
  3. Rhythmbox-develメーリングリスト([email protected])で質問する
  4. IRCチャンネル(irc.gimp.netの#rhythmbox)で質問する
3
dv3500ea

開始するためのベースは次のとおりです。


import dbus
import gobject
from dbus.mainloop.glib import DBusGMainLoop
def on_visibility_changed(visible): if visible: print "Rhythmbox Shown" else: print "Rhythmbox Hidden"
DBusGMainLoop(set_as_default=True)
bus = dbus.SessionBus() rhythmbox = bus.get_object('org.gnome.Rhythmbox', '/org/gnome/Rhythmbox/Shell') rhythmbox = dbus.Interface(rhythmbox, 'org.gnome.Rhythmbox.Shell')
rhythmbox.connect_to_signal("visibilityChanged", on_visibility_changed)
loop = gobject.MainLoop() loop.run()

2つの重要なビットは、関数を定義することです。受け入れる必要のある引数についてはAPIドキュメントを参照し、シグナルを関数に接続します。繰り返しますが、APIはそれらのシグナルをリストします。

たとえば、RBPlayerで定義された信号をキャッチしたい場合は、シェルではなく、yoruセッションバスをPlayerに接続します。残念ながら、APIはかなり複雑であり、ここでは簡単に説明できません。 ドキュメント を介して適切な調査を行うと、おそらく必要なものが見つかります。

2
Stefano Palazzo