« December 2006 | Main | February 2007 »

2007.01.31

Zaurus用iTunesネットワークリモコンRCTunes(2)

前回書いたRuby/Qte製Zaurus用iTunesネットワークリモコンが少し進みました。

Rctunes_scrn001

Rctunes_scrn003

Rctunes_scrn006

Rctunes_scrn007

めちゃめちゃ簡素なプロトコルでも何とか動いている感じ。

全体的に見た目をいじってカウンタを付けて、少しボタンを増やしてみました。
「環境設定」はまだダミーです。

右端のは、無線LANカード(GW-CF11X)がサスペンドから起きたときに復帰に失敗するので無線LANのリカバリ用。本当はレジューム時のQPE/Systemのresumed()を受信して、それをトリガに実行したかったんですが、Ruby/Qteでは受信に必要なQCopChannelが未定義です!……残念。状況判断的でレジュームと無線LANの異常を検知して実行させようかと思っていますが。

NetHelper等で外からQCopでメソッドを実行させることはできるんでしょうかね。

ボタンの中央にアイコンを貼る方法を探しています。QPushButtonのコンストラクタにPixmapを渡す方法だと、アイコンがボタンの左に寄ってしまいます。それらしきメソッドは当たってみますが。

僕はマカーなので、Mac用iTunes向けってことでやってますが、マカーでZaurusユーザーって少なそうだな。
きっと3人ぐらい。

|

2007.01.21

Zaurus用iTunesネットワークリモコンを試作

戯れでZaurus用のiTunesネットワークリモコンを試作してみました。
ボリューム調整、シャッフル再生のときの曲名確認が手元でできるのでいい感じ。

Rctunes01

Rctunes02

Rctunes03

TCPSocketって初めて使ってみましたが、簡単なことをやるなら凄く簡単ですね。
全く作法を分かっていないので、美しいやり方というのを知りたいところですが。

Zaurusで動くクライアント側はRuby/Qte製、Mac OS Xで動くサーバ側はREALbasic製です。
iTunesのWindows版はCOMプログラミング対応なので、iTunes制御部分を書き換えればWindowsでも動きますね。

Ruby/Qteを触るのはほぼ初めて。
今更ですが、ひだかさん、素晴らしいツールキットをありがとうございます。

ただ、動作させた状態でZaurusをサスペンドし、再度電源を入れるとハング。
ネットワークの死活判定をしてからつなぎに行くようにしたら大丈夫かな。
Socketを開いている間にサスペンドしてしまう場合の問題もありそう。

何かのシグナルが飛んでくるのかな? サスペンドまでにコトを起こすだけの時間的猶予はあるのかな? サスペンド対策方法をご存じの方がいらしたら教えてください。

(追記)とりあえず、Ping.pingecho()で死活判定してからつなぎに行くようにしたら無条件のハングは回避できました。
でも、ちょうどSocketを開いている間にサスペンドした場合には問題は残りそう。

これはプログラム側の問題ではないですが、無線LANが電源再投入後に再接続に失敗する問題も……。
昔からこうだったかなー。prism2じゃない無線LANカードでも失敗……。

|

« December 2006 | Main | February 2007 »