Mac用USBデバイス-92 デスクリプタの生成 [Mac用USBデバイス工作]
前回まででUSBの標準デスクリプタを整理した。たくさんあるし、汎用的なデータ構造が使えないのでいちいち定義しないといけない。面倒だし1ビット違っただけでUSB機器として機能しなくなってしまうということになる。いや、もちろん普通のソフトでも1ビット違えば機能しなくなるんだけど、冗長性を持たすことがまったくできない。これはちゃんと自動生成する方法を考えないといけない。
これを手動で記述するのはかなり手間。どう考えてもデスクリプタのコードを出力するアプリを書かないとやってられない。Windows用にはあるらしいけど、当然Mac用なんてない。
というわけで作ろう。名前はUSB Desimp(USB DEScriptor IMPlimenter)とでもしよう。Windows用のやつは見ないようにしよう。UIの先入観ができてしまうと困る(どうせダサいに決まってるし)。
どんなアプリかというと
さて、こういうUIリッチなアプリはあまり作ってこなかったので勝手が違う。ここはひとつ、これまで積極的には使ってこなかったCocoaバインディングをしっかり使ってなるべく簡単にしよう。
数ヶ月ぶりにまたCocoaアプリを書くことになるが、UIリッチもたまにはやらないといかん。たまには。
5 USB Desimpを作る
さて、デスクリプタのおおまかなところはわかった。めちゃめちゃめんどくさい。しかも標準デスクリプタだけでこれだけある。さらにクラスごとにまたデスクリプタが定義されている。これを手動で記述するのはかなり手間。どう考えてもデスクリプタのコードを出力するアプリを書かないとやってられない。Windows用にはあるらしいけど、当然Mac用なんてない。
というわけで作ろう。名前はUSB Desimp(USB DEScriptor IMPlimenter)とでもしよう。Windows用のやつは見ないようにしよう。UIの先入観ができてしまうと困る(どうせダサいに決まってるし)。
どんなアプリかというと
- Cocoaドキュメントアプリである
- 全体はOutlineViewで表示して、選択肢はPopupで、数字や文字はTextBoxで入力
- 無意味な設定はUI上でできないように、矛盾する設定は警告する
- バイト数やインデクスなどは自動計算する
- 設定が終わったらsdccのソースファイルとして出力する
さて、こういうUIリッチなアプリはあまり作ってこなかったので勝手が違う。ここはひとつ、これまで積極的には使ってこなかったCocoaバインディングをしっかり使ってなるべく簡単にしよう。
数ヶ月ぶりにまたCocoaアプリを書くことになるが、UIリッチもたまにはやらないといかん。たまには。
2010-04-16 22:01
nice!(0)
コメント(0)
トラックバック(0)
コメント 0