ビュアーを作る

SoundToy(仮称←Toolはおこがましいので改名 :-)をタイルでいじれるようになりました。
ソースを普通にあさっているだけではわからなかったので、Bookの初版のMCZと同じタイミングでコミットされたMCZにあたりをつけ、変更されている箇所を探したところ、糸口が見つかりました。と思ったらちゃんと http://d.hatena.ne.jp/propella/20050430/p1 にあるじゃん orz
CTileDefinition class>>defaultViewerSpecの中に、システム中の全オブジェクトについてのビュアーの定義がひとかたまりのXMLとして記述されており、この中に定義を追加すればプレイヤ固有のカテゴリやタイルを追加できます。手始めに以下の定義を追加しました。

<category name="soundToy" type="CSoundToy">
  <message selector="startNote:" name="start note:" help="start note specified in MIDI key">
      <argument name="midiKey" type="CNumberType" default="50"/>
  </message>
  <message selector="stopNote"/>
</category>

以下メモというか疑問です。

  • 一箇所でまとめてあることで大規模メンテナンスは楽なんでしょうが、以前のeToyや http://bugs.impara.de/view.php?id=1218 みたいな分散スタイルも捨てがたいなー
  • 同じ定義をみんながいじるということは、今作っているものを公開するためには、単なるチェンジセットではだめで、Monticelloのリポジトリにちゃんとコミットすることが必要ということになりますね。さあ、どうしよう。。。
  • Tweakでのものづくりの方法はだいぶわかってきたので、もう一度どういうまとめ方をして「何」を作るのか再考しなければ。
  • 今時点のTweakは、(ソースを読む限り)メディアもの(音・動画など)はまだ今後の課題扱いなのですが、未コミットとしてもどなたか何かを作っているとか、今後の方向性につながる話はあるのでしょうか?あるなら、せっかく作ったものをその路線に乗っけてあげたいですし。