理論は後からついてくる?!

3/12/2001 by Shigeyuki Seko


応用編

10) SONYのジョグダイヤルに対応する方法

SONYのジョグダイヤルに対応したソフトを作成するにはCode Warrior を使った方法が一般的ですが、フリーで入手できる GCC でもジョグダイヤルに対応したアプリケーションは比較的簡単に作る事ができます。
その方法について説明します。

まずは開発環境を、少々変更する必要があります。

  1. まずソニーのサイトhttp://www.jp.sonypdadev.com/index.htmlデベロッパー登録をします。
    この登録をする事によってジョグダイヤル用のヘッダファイルを入手する事ができます。
  2. 登録が完了するとIDとパスワードが送られてきます。
  3. 送られてきたIDとパスワードを使ってデベロッパーサイトにログインします。
  4. デベロッパーサイトからジョグダイヤル用のSDKをダウンロードします。
  5. ダウンロードしたファイルを解凍し、
    SDK jog-j/Sony Support/Incs/JOG Dial/SonyChars.h
    SonyChars.h を自分のPCの開発環境の
    m68k-palmos-coff/include/PalmOS
    PalmOS ディレクトリーの中にコピーしてください。

次に実際のプログラムの変更方法について説明します。

プログラムの先頭に以下の定義文を追加します。
ジョグダイヤルはバーチャルイベントを使用してイベントのハンドリングを行います。
ここで vertualKey のマスクを設定します。

/* for JOG */
#include <SonyChars.h>
#define appEvtHookKeyMask  0x0200  // True if this is an app hook key
#define libEvtHookKeyMask  0x0400  // True if this is a library hook key
#define commandKeyMask   0x0008
#define virtualKeyMask    (appEvtHookKeyMask | libEvtHookKeyMask | commandKeyMask)

つぎに、keyDownEvent の部分を以下のように書き換えます。

  else if ((event->data.keyDown.modifiers & virtualKeyMask) != 0){
    if(event->eType == keyDownEvent){
      if (event->data.keyDown.chr == pageUpChr){ ←スクロールUPボタンが押された時
        SndOutput (400,100,50);
        SndOutput (1000,100,50);
        PageUp();
        handled = true;
      }
      else if (event->data.keyDown.chr == pageDownChr){ ←スクロールDownボタンが押された時
        SndOutput (1000,100,50);
        SndOutput (400,100,50);
        PageDown();
        handled = true;
      }

      /**********************
          Jog Dial
      ***********************/

      else if (event->data.keyDown.chr == vchrJogDown){ ←ジョグダイヤルDown
        PageDown();
        handled = true;
      }
      else if (event->data.keyDown.chr == vchrJogUp){ ←ジョグダイヤルUP
        PageUp();
        handled = true;
      }
      else if (event->data.keyDown.chr == vchrJogPress){ ←ジョグダイヤルPress
        handled = true;
      }
      else {
        handled = false;
      }
    }
  }

(注意)プログラム例には全角スペースが含まれていますのでそのままカット&ペーストしても動作しません。

内容的にはとても簡単です。
上で定義したvirtualKeyMaskでイベントをチェックし、data.keyDown.chr に入るイベントがvchrJogDown / vchrJogUp / vchrJogPress といったバーチャルイベントであった場合に指定された処理を行います。

説明するまでもなくそれぞれの意味は以下のようになります。

vchrJogDown : ジョグダイヤルをDown
vchrJogUp : ジョグダイヤルをUP
vchrJogPress : ジョグダイヤルをPress

たったこれだけです。
なんだか拍子抜けしてしまいますね。(笑)
ぜひ挑戦してみてください。
そしてアイディアあふれるジョグ対応アプリを作ってください。


さて、今回の説明に使用した Picture Book Ver.0.7 のソースコードを用意しました。
自由にダウンロードして試してみてください。

book07.zip

 

ここまで読み進み、実際にプログラムの修正、コンパイルを経験すれば、Palmware 開発の楽しさと雰囲気を味わう事ができたと思います。ここから先はC言語等の理論が必要です。しかしそんなに難しく考える必要はありません、できる所から少しづつ進めていけば段々に高度なソフトが書けるようになると思います。一番大切な事は興味を持つ事、挑戦してみる事、楽しむ事だと思います。あなたもきっと素敵な Palmware が作れるようになると思います。がんばってください

ここから先は、”ぱーむ脱力ゲーム協会”のプログラム講座がたいへん参考になると思います。

このページの感想等ありましたら seko@jps.net までメールをいただけるとうれしいです。
本ホームページの内容に関しまして、なにか問題がありましたら連絡してください。
よろしくお願いします。




seko@jps.net