進捗記録 2014.9.6
マルチスレッドでの実装開始から3週間かかってやっとデスクトップ画面を表示できるまで再実装できたので進捗記録します。
次にサウンドを実装しようかと思いましたが、操作できるのをみたいので(笑)マウスとキーボードを実装しましょう。
基本的にはQtのeventをマウスの動き(右クリック、左クリック、それぞれのダブルクリック、ホイールの回転角度)としてBrynhildrサーバに伝えます。
キーボードはQtから取得できるキー情報からWindowsの仮想キーコードに変換して、あたかもWindowsからのメッセージのようになんとなく伝えればよさそうです。サーバ側で使っているキーボードタイプが分かれば一番いいのですが、今のところサーバから情報は頂けないので、接続ダイアログに「キーボード(Key board type)選択」の項目を追加しなくてはなりませんね。とりあえず私の使っているキーボードで実装しますが(*^-^)
ホイールの回転角度はQtの場合回転角度の8倍の数値が取得できるようなので、これを少し調整してヘッダーに格納して送ればよさそうです。マウスの位置はウィンドウの縦、横サイズから算出して伝えます。
これらの情報をヘッダーに含めてサーバに送ります。一度の送信で基本的に一回の情報を伝えるので、入力デバイスの操作情報はバッファリングしておく必要があります。やっぱり、再度リングバッファの登場ですかね…
キャプチャ画面を撮りました。
Qt Brynhildr (仮称) [前面]とWindows XP on VMware Workstation [後面]です。
画面描画中に、GraphicsThreadがバッファに書き込んでしまうことがあるようなので、lockしないといけなさそう…
Brynhildrサーバのバージョンは1.0.4です。
« オープンソースソフトウェア(OSS)について考える | トップページ | JPEG イメージが壊れています… »
コメント