##
2 ミキサデバイスオブジェクト

ミキサオブジェクトには、2つのファイル類似メソッドがあります:

`close`( | )

  すでに開かれているミキサデバイスファイルを閉じます。 ファイルを閉じた後でミキサを使おうとすると、`IOError`を 送出します。

`fileno`( | )

  開かれているミキサデバイスファイルのファイルハンドルナンバを返します。

以下はオーディオミキシング固有のメソッドです。

`controls`( | )

  このメソッドは、利用可能なミキサコントロール (`SOUND_MIXER_PCM` や`SOUND_MIXER_SYNTH` のように、ミキシングを行えるチャネル) を指定するビットマスクを返します。このビットマスクは利用可能な全ての ミキサコントロールのサブセットです -- 定数`SOUND_MIXER_*` はモジュールレベルで定義されています。 例えば、もし現在のミキサオブジェクトがPCM ミキサをサポートしているか 調べるには、以下のPythonコードを実行します:

      if mixer.controls() & (1 << ossaudiodev.SOUND_MIXER_PCM):
          # PCM is supported
          ... code ...

  ほとんどの用途には、`SOUND_MIXER_VOLUME` (マスタボリューム) と`SOUND_MIXER_PCM`コントロールがあれば十分でしょう -- とはいえ、ミキサを使うコードを書くときには、コントロールを選ぶ時に 柔軟性を持たせるべきです。例えば Gravis Ultrasound には`SOUND_MIXER_VOLUME` がありません。

`stereocontrols`( | )

  ステレオミキサコントロールを示すビットマスクを返します。 ビットが立っているコントロールはステレオであることを示し、立っていない コントロールはモノラルか、ミキサがサポートしていないコントロールで ある (どちらの理由かは`controls()` と組み合わせて使うことで 判別できます) ことを示します。

  ビットマスクから情報を得る例は関数`controls()`のコード例を 参照してください。

`reccontrols`( | )

  録音に使用できるミキサコントロールを特定するビットマスクを返します。 ビットマスクから情報を得る例は関数`controls()`のコード例を 参照してください。

`get`( | control)

  指定したミキサコントロールのボリュームを返します。 2 要素のタプル`(left_volume,right_volume)` を返します。 ボリュームの値は 0 (無音) から100 (最大) で示されます。 コントロールがモノラルでも2要素のタプルが返されますが、2つの要素の値は 同じになります。

  不正なコントロールを指定した場合は`OSSAudioError`を送出しま す。また、サポートされていないコントロールを指定した場合には `IOError` を送出します。

`set`( | control, (left, right))

  指定したミキサコントロールのボリュームを`(left,right)`に設定しま す。`left`と`right`は整数で、0 (無音) から100 (最大) の間で 指定せねばなりません。呼び出しに成功すると新しいボリューム値を 2 要素の タプルで返します。 サウンドカードによっては、ミキサの分解能上の制限から、指定したボリューム と厳密に同じにはならない場合があります。

  不正なコントロールを指定した場合や、指定したボリューム値が範囲外であった 場合、`IOError` を送出します。

`get_recsrc`( | )

  現在録音のソースに使われているコントロールを示すビットマスクを返します。

`set_recsrc`( | bitmask)

  録音のソースを指定にはこの関数を使ってください。呼び出しに成功すると、 新たな録音の (場合によっては複数の) ソースを示すビットマスクを返します; 不正なソースを指定すると`IOError`を送出します。 現在の録音のソースとしてマイク入力を設定するには、以下のようにします:

      mixer.setrecsrc (1 << ossaudiodev.SOUND_MIXER_MIC)