# 14.11 `ossaudiodev` -- OSS互換オーディオデバイスへのアクセス

利用可能な条件: Linux, FreeBSD.

バージョン2.3 以降で新規追加された 仕様です。

このモジュールを使うとOSS (Open Sound System) オーディオインターフェース にアクセスできます。 OSSはオープンソースあるいは商用のUnixで広く利用可能で、Linux (カーネル 2.4まで) とFreeBSDで標準のオーディオインターフェースとなっています。

参考資料:

オープンサウンドシステムプログラマーズガイド
  OSS C APIのための公式ドキュメント

このモジュールではOSSデバイスドライバーで提供される多くの定数を定義して います;定数のリストについてはLinuxかFreeBSDの<sys/soundcard.h>を 参照してください。

`ossaudiodev`には以下の変数と関数が定義されています:

exception `error`
  この例外は特定のエラーを発生します。 引数は何が誤っているかを示す文字列です。

  (もし`ossaudiodev`が`open()`、`write()`、 `ioctl()`などのシステムコールからエラーを受け取ったら `IOError`を発生します。 `ossaudiodev`モジュールによって直接検出されたエラーは `ossaudiodev.error`になります。)

`open`( | [device, ]mode)

  オーディオデバイスを開いて、OSSオーディオデバイスオブジェクトを返しま す。 このオブジェクトは`read()`、`write()`、`fileno()` などのようにファイルのような多くのメソッドをサポートしています。 (しかし伝統的なUnixのread/writeの構文とOSSオーディオデバイスのものとの あいだには微妙な違いがあります) 。 また、オーディオ特有の多くのメソッドがあります;メソッドの完全なリストに ついては下記を参照してください。

  呼び出しの文法が普通と異なることに注意してください:最初の引数が 省略可能で、2番目が必須です。 これは`ossaudiodev`にとって替わられた古い`linuxaudiodev`と の互換性のためという歴史的な産物です。

  deviceは使用するオーディオデバイスファイルネームです。 もしこれが指定されないなら、このモジュールは使うデバイスとして最初に環境 変数AUDIODEVを参照します。 みつからなければ、/dev/dspを参照します。

  modeは、読み込みのみ (再生) のアクセスの`'r'`、書き込みのみ ( 録音) のアクセスの`'w'`、それら両方の`'rw'`のうちのどれか1つで す。 多くのサウンドカードでは一つのプロセスで同時にレコーダかプレーヤしか持て ないので、操作が必要なときだけデバイスを開くのが良い考えです。 また、いくつかのサウンドカードは半二重 (half-duplex) です: これらでは読み込みあるいは書き込みで開けますが、同時に両方では開けませ ん。

`openmixer`( | [device])

  ミキサーデバイスを開いて、OSSミキサーデバイスオブジェクトを返します。 deviceは使用するミキサーデバイスのファイルネームです。 もしこれが指定されないなら、このモジュールは使うデバイスとして最初に環境 変数AUDIODEVを参照します。 みつからなければ、/dev/mixerを参照します。