定義により、SANE はそれを使うプログラムと同じくらい良い唯一のものです。
これは、SANE を使用するアプリケーションやデバイスが多い程、より楽しくなる
ことを意味します。SANE ディストリビューションには、SANE API を説明した
詳細なドキュメントも付いてきますが、インタフェースは極めてシンプルです。
下記に示す6個のメイン関数があります。
handle <- sane_open (device-name):
SANE デバイスを名前 (例えば pnm:0)でオープンします。
sane_close (handle):
SANE デバイスをクローズします。
sane_get_option_descriptor (handle, option-number):
デバイスが利用可能な制御はなにかを問い合わせるために使われます
(PNM 仮想デバイスドライバの明るさ制御のような)。
sane_control_option (handle, option-number, action, value):
オプションの値を取得または設定するために使われます。例えば、明るさの
オプションの値を 50% にセットするために使われます。加えて、
いくつかのオプションはドライバが適切な値をとるようにする自動モードを
サポートしています。このようなオプションでは、sane_control_option()
は自動モードをオンまたはオフにするためにも使われます。
sane_start (handle):
画像の取り込みを開始するために使われます。
bytes-read <- sane_read (handle, buffer, buffer-size):
全ての画像を取り込むまで、実際の画像データを読むために使われます。
SANE API はシンプルに設計されています。目標は、洗練されたドライバとアプリ
ケーションを可能にする充分な機能を提供しながらも、シンプルなタスクを少ない
時間で成し遂げることでした。HP スキャナ用の hpscanpbm プログラムを SANE
ドライバに変換するのに要したのはふた晩という事実は、設計のシンプルさの最良
の証拠です。逆に、Mustek ドライバと xscanimage はかなり困難なプログラムで
すが、SANE はそれらに順応するのに問題はありません。