BMPx 0.11.4
We're progressing now well on the DBus interface, a full client like the core GUI is yet not quite possible (a few DBus things need to be sorted out) but something like a control widget is possible without problems. This client is written in PyGTK and uses DBus-Python, and is available in current SVN.
Also in current SVN is a small script for XChat that allows basic control over BMPx from XChat as well as the notorious 'announce to channel'. It requires DBus-Python as well.
Along these lines, 0.11.4 will be released soon, somewhen in the next 1-2 days. Cheers :D
現在我々開発チームのDBusインターフェイスに関する仕事ははかどっている。核となるGUIのような完全なクライアントはそれほど可能なわけではない(幾つかのDBusに関する問題が解決されなければならない。)が、コントロールウィジェットのような何かは問題なく可能だ。このクライアントはPyGTKで書かれ、DBus-Pythonを使用しており、現在SVNで入手可能である。
現在同様にSVNでXChatからBMPxへの基本的な操作を提供する小さなスクリプトが良く知られた「announce to channel」と同様に入手可能である。それは同様にDBus-Pythonを使用している。
ある時点、ここ一日二日の間に0.11.4はすぐにリリースされるだろう。
BMPx 0.11.4 is released. Changes are:
BMPx 0.11.4がリリースされた。変更点は以下の通りである。
GCC4でのコンパイルも通ったが、少し警告が表示されていたので結局gcc32でビルド。control widgetのようなものは結論から言うと起動すら出来なかった。bmp-remoteを起動すると、
$ bmp-remote Traceback (most recent call last): File "/usr/bin/bmp-remote", line 145, in ? m = BMPMonitor() File "/usr/bin/bmp-remote", line 57, in __init__ self.bus = dbus.SessionBus() File "/usr/lib/python2.4/site-packages/dbus/_dbus.py", line 206, in __init__ Bus.__init__(self, Bus.TYPE_SESSION) File "/usr/lib/python2.4/site-packages/dbus/_dbus.py", line 71, in __init__ self._connection = dbus_bindings.bus_get(bus_type) File "dbus_bindings.pyx", line 1529, in dbus_bindings.bus_get dbus_bindings.DBusException: Unable to determine the address of the message bus
と出てだめ。BMPx起動時にエラーが出力されているのかと思い、--no-logオプションを付けて起動すると、
dbusデーモンが何かおかしいことが分かった。messagebusサービスは動いているのに不思議だと思いながら、dbus-daemonのmanをみてみると、$ bmpx --no-log
(途中省略)
BMP-Message: bmp_system_control.c:783: Couldn't connect to session bus: Unable to determine the address of the message bus
There are two standard message bus instances: the systemwide message bus (installed on many systems as the "messagebus" init service) and the per-user-login-session message bus (started each time a user logs in).
--session
Use the standard configuration file for the per-login-session message bus.
ということで、dbus-daemon --sessionを実行してみるも結果変わらず。ふとFedora Developmentのパッケージ一覧を見てみると、dbus-x11パッケージ*1がある。未インストールであったのでYUMからインストールしてみると、
$ bmpx --no-log (途中省略) BMP-Message: bmp_system_control.c:815: INITIALIZED (DBus: /org/beepmediaplayer/SystemControl/BmpSystemControl)
$ bmp-remote Traceback (most recent call last): File "/usr/bin/bmp-remote", line 145, in ? m = BMPMonitor() File "/usr/bin/bmp-remote", line 66, in __init__ self.bmpx.SendStatus() File "/usr/lib/python2.4/site-packages/dbus/proxies.py", line 64, in __call__ reply_message = self._connection.send_with_reply_and_block(message, timeout) File "dbus_bindings.pyx", line 395, in dbus_bindings.Connection.send_with_reply_and_block dbus_bindings.DBusException: Method "SendStatus" with signature "" on interface "org.beepmediaplayer.SystemControl" doesn't exist
うまく行くと思ったのに、その期待は見事打ち砕かれた。ぼんやりした頭でこれ以上考えてもしょうがないので、今日のところはこれまでとする。BMPx 0.11.2で追加された.desktopファイルだが、少々修正しないとFedora Developmentではアイコンが表示されない。
"Icon=bmpx.png"を"Icon=/usr/share/icons/hicolor/48x48/apps/bmpx.png"に置換するだけだ。SPECファイルに書こうと思ったが、もう面倒になってしまったので次のバージョンが出た時に直そうと思う。簡単なSEDスクリプトを書くだけなんだけどな。BMPx 0.11.3で書式が変更されたはずなのに旧来のままである。*2
なぜかメディアライブラリーの検索はどうするのか分からなかった。0.11.4には含まれていないのかもしれない。ウィジェットが動かないのも問題だが、さらに重要なのはサウンドカードが認識されないことである。両方ともいろいろ試してみる必要がありそうだ。