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

Linux, FreeBSDプラットフォームで利用できます。

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

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

参考:

Open Sound System Programmer's Guide
  OSS C API の公式ドキュメント

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

`ossaudiodev` では以下の変数と関数を定義しています:

exception `error`
  何らかのエラーのときに送出される例外です。 引数は何が誤っているかを示す文字列です。

  (`ossaudiodev` が`open()`、`write()`、 `ioctl()` などのシステムコールからエラーを受け取った 場合には `IOError` を送出します。 `ossaudiodev` が直接エラーを検出した場合には `OSSAudioError`になります。)

  (以前のバージョンとの互換性のため、この例外クラスは `ossaudiodev.error` としても利用できます。)

`open`( | [device, ]mode)

  オーディオデバイスを開き、OSSオーディオデバイスオブジェクトを返します。 このオブジェクトは`read()`、`write()`、`fileno()` といったファイル類似オブジェクトのメソッドを数多くサポートしています。 (とはいえ、伝統的な Unix の read/write における意味づけと OSS デバイス の read/write との間には微妙な違いがあります)。 また、オーディオ特有の多くのメソッドがあります;メソッドの完全なリストに ついては下記を参照してください。

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

  mode は読み出し専用アクセスの場合には `'r'`、 書き込み専用 (プレイバック) アクセスの場合には `'w'`、 読み書きアクセスの場合には `'rw'` にします． 多くのサウンドカードは一つのプロセスが一度にレコーダとプレーヤの どちらかしか開けないようにしているため，必要な操作に応じた デバイスだけを開くようにするのがよいでしょう。また，サウンドカード には半二重 (half-duplex) 方式のものがあります: こうしたカードでは， デバイスを読み出しまたは書き込み用に開くことはできますが，両方 同時には開けません．

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

`openmixer`( | [device])

  ミキサデバイスを開き、OSSミキサデバイスオブジェクトを返します。 deviceは使用するミキサデバイスのファイル名です。 deviceを指定しない場合、モジュールはまず環境変数 AUDIODEVを参照して使用するデバイスを探します。 見つからなければ、/dev/mixerを参照します。