2005/6/21 火曜日

Skype API on Linux

カテゴリー: Skype — ryu @ 23:06:06

久しぶりに Skype ねた。

SkypeAPI の Linux 版が公開されたのは、少し前になる。
ぐぐっていると、Days of Liris というページもあり、
「も、いっかー」的な想いに捕らわれていた。
D-BUS って良く知らないけど、それはLinux知らないからで、
Linux Desktopじゃ有名なんだろうなぁとか。

が、Skypeが公開しているCのサンプルが、
どーにも見つからないのでちょっと書いてみた。

が、その前にまず Skype を Linux で動かす必要があります。
Debian だと、Woody では駄目で Sarge が必要かも。
というのも、ライブラリが結構えらいこと成っていて、

sarge:~/skype-1.1.0.13# ldd skype
libqt-mt.so.3 => /usr/lib/libqt-mt.so.3 (0xb78f9000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0xb78ea000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb7823000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7814000)
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0xb775a000)
libm.so.6 => /lib/tls/libm.so.6 (0xb7738000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb772f000)
libc.so.6 => /lib/tls/libc.so.6 (0xb75f9000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb75ca000)
libaudio.so.2 => /usr/lib/libaudio.so.2 (0xb75b5000)
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0xb7564000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb753f000)
libz.so.1 => /usr/lib/libz.so.1 (0xb752d000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb7524000)
libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0xb7520000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb7517000)
libXft.so.2 => /usr/lib/libXft.so.2 (0xb7504000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7497000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0xb748e000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0xb7476000)
libdl.so.2 => /lib/tls/libdl.so.2 (0xb7473000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fea000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7453000)

なのです。woody でごにょごにょしていて OpenPsion の環境つぶしたのは内緒。
英語のページには .deb が転がっていますが、日本語対応が出来ていないので、
素直に日本語ページからアーカイブ落とした方が吉。

で、D-BUS関連見てたんだけど標準的?と言って良いのかなぁ。疑問。情報少なすぎ。
とりあえず、 apt-get でライブラリ突っ込んだまでは良いものの、
適当に組んだ D-BUS のコードが動かん動かん(笑
(この段階では、Skype どうこうという以前の話)
ListServices?ListNames?とかD-BUSのバージョン間での変更に???に成りながらも、
結局、ヘッダーファイル眺めまくりで取りあえずD-BUSはOK。

後はPythonのソースみながら適当に、にゃにゃんとでっちあげて取りあえずのサンプル
コンパイルちょっと工夫が要るみたい。

gcc `pkg-config –cflags dbus-1` そーす

って感じで、pkg-configを入れてやる必要があります。
「PROTOCOL 1」って事は同期通信しかないのかなぁ。
なんか signal というか callback が上手く取れてない気がしますが、
その辺はおいおいって事で。

というか、APIはIPC系で良かったように思うんだけど、
何でD-BUSなんでしょうねぇ。
Qt だからかなぁ…。

ま、ここまで動きさえすれば後は何とかなるでしょう。

31 queries. HTML convert time: 0.311 sec. Powered by WordPress 2.8