NuDCLその14 [Mac用USBデバイス工作]
サンプルコードのNuDCLを使ってFireWire経由でデータを受け取る部分は前回までで見終わった。だらだらとしたコードで非常に読みにくかった。最後まで見終わると最初の方を忘れてしまう。これは僕の忘却力のせいもあるけど、このベタ書きのコードのせいもある。一通り終わったので総括する。
NuDCLその13 [Mac用USBデバイス工作]
I/O KitというMacOS Xのハードウェアアクセス用のFrameworkが装備しているFireWire(IEEE1394)のアイソクロナス転送をサポートするためのNuDCLというメカニズムの勉強のため、AppleのサンプルコードであるUniversalReceiver.cppのソースを見てきた。
前回、NuDCLから呼ばれるOverrunDCLCallBack関数なんかを見た。overrunコールバックではようするにデータを取りこぼしたらすっぱり全部やり直す、ということをしていた。そんなんでええのんかいな。今日は残ったメンバ関数を見る。
前回、NuDCLから呼ばれるOverrunDCLCallBack関数なんかを見た。overrunコールバックではようするにデータを取りこぼしたらすっぱり全部やり直す、ということをしていた。そんなんでええのんかいな。今日は残ったメンバ関数を見る。
NuDCLその12 [Mac用USBデバイス工作]
MacOS Xのハードウェアアクセス用のFrameworkであるI/O Kitが持っている、FireWire(IEEE1394)のアイソクロナス転送をサポートするためのNuDCLというメカニズムの勉強のため、AppleのサンプルコードであるIUniversalReceiver.cppのソースを見ている。
前回、NuDCLから呼ばれるコールバック関数の中身を見ていてそれが途中になっていた。今日はその関数を最後まで見て、もうひとつのコールバックであるOverrunDCLCallBack関数も見る。
前回、NuDCLから呼ばれるコールバック関数の中身を見ていてそれが途中になっていた。今日はその関数を最後まで見て、もうひとつのコールバックであるOverrunDCLCallBack関数も見る。
NuDCLその11 [Mac用USBデバイス工作]
今日は仕事が終わってから1時間半もすることがなかったのでUniversalReceiver.cppのソースを眺めていた。自宅でまとめるよりずいぶんはかどる。なんでかいな。ビールを飲まないからか。
NuDCLその10 [Mac用USBデバイス工作]
FireWireのアイソクロナス転送でデータをやりとりするためのMacOS XのI/O KitによるメカニズムであるDCLを使ったAppleのサンプルコードのアイソクロナス転送をするC++クラスであるUniversalReceiverのメンバ関数の中身を見ている。今日はその続き。
NuDCLその9 [Mac用USBデバイス工作]
FireWireのアイソクロナス転送でデータをやりとりするためのMacOS XのI/O Kitによるメカニズムである2種類のDCLを比較している。そして古いDCLで書いたIIDCカメラのドライバを新しいNuDCLを使ったものに書き換えたくて、AppleのサンプルコードであるUniversalReceiveTestの中身を見ている。昨日はアイソクロナス転送をするC++クラスであるUniversalReceiverのコンストラクタを確認した。インスタンス変数の設定以外にほとんど何もしていない、ということはわかった。今日はクライアント側からつぎに呼ばれるメンバ関数の中身を見る。
NuDCLその8 [Mac用USBデバイス工作]
FireWireのアイソクロナス転送でデータをやりとりするためのMacOS XのI/O Kitによるメカニズムである2種類のDCLの違いについて一通りまとめた。昨日からは、SDK26にあるUnversalReceiveTestアプリのソースを見てどのように使われているかを見ている。今日はアイソクロナス転送を行うC++クラスであるUniversalReceiverのコンストラクタ。
NuDCLその7 [Mac用USBデバイス工作]
こないだからFireWire(IEEE1394)のアイソクロナス転送経由でデータのやりとりをするためのMacOS XのメカニズムであるDCLの2種類のバージョンの簡単な比較を、FireWire SDK26(要Developer Account)のサンプルコードをもとに見てきた。
基本的な違いはわかった。次にサンプルコードがどのように使っているかを見て、以前書いたIIDCカメラドライバの参考にする。
基本的な違いはわかった。次にサンプルコードがどのように使っているかを見て、以前書いたIIDCカメラドライバの参考にする。
NuDCLその6 [Mac用USBデバイス工作]
古いDCLとNuDCLを較べてきた。今日でだいたい終わる。ヘッダだけ見てたんでは全然わからなかったのに、実際に動かしてるコードを見れば一気に了解度が上がる。
「ヘッダを見ろ、それがすべてだ。それでわからなければ実装を読めばいい」というのはオープンソースにありがちな言い草だけど、見る方が無限の理解力があるならそれでいい。しかし時間は有限で、頼りにしたいヘッダには親切なのとそうでないのがある。
例えばgnuの多くはオープンソースにしてはドキュメントが充実してる、と僕は思う。一方でAppleのNuDCLはgnuの平均を下回っていると僕には思えるんだけど。「使ってもらおう」という意識がgnuのあまたのプロジェクトに較べて低いような気がする。どうだろうか。
「ヘッダを見ろ、それがすべてだ。それでわからなければ実装を読めばいい」というのはオープンソースにありがちな言い草だけど、見る方が無限の理解力があるならそれでいい。しかし時間は有限で、頼りにしたいヘッダには親切なのとそうでないのがある。
例えばgnuの多くはオープンソースにしてはドキュメントが充実してる、と僕は思う。一方でAppleのNuDCLはgnuの平均を下回っていると僕には思えるんだけど。「使ってもらおう」という意識がgnuのあまたのプロジェクトに較べて低いような気がする。どうだろうか。
NuDCLその5 [Mac用USBデバイス工作]
DCLはLanguageと言っているぐらいなのでプログラミングができる、一応。
ループは作れる。コールバックにCで記述することで条件判断もできる。そして分岐はコールバックからジャンプ先を書き換えることで実現している。一種の自己変更コードと言えなくもない。
ループは作れる。コールバックにCで記述することで条件判断もできる。そして分岐はコールバックからジャンプ先を書き換えることで実現している。一種の自己変更コードと言えなくもない。