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

ファイルに似たインターフェース

`close`( | )

  このメソッドは、開かれたミキサーデバイスファイルを閉じます。 ファイルを閉じた後でミキサーを使おうとすると、IOErrorを発生します。

`fileno`( | )

  開いたミキサーデバイスファイルのファイルハンドルナンバーを返します。

ミキサーインターフェース

`controls`( | )

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

      mixer=ossaudiodev.openmixer()
      if mixer.channels() & (1 << ossaudiodev.SOUND_MIXER_PCM):
      	# PCM is supported
      	<code>

  たいていの目的では、`SOUND_MIXER_VOLUME` (マスターボリューム) と`SOUND_MIXER_PCM`チャンネルで十分です-- しかし、サウンドチャンネルを選ぶときに、ミキサーを使用するコードはフレキ シブルでなければなりません。 例えば、Gravis Ultrasoundでは`SOUND_MIXER_VOLUME`は存在しませ ん。

`stereocontrols`( | )

  ステレオミキサーチャンネルを示すビットマスクを返します。 もしビットがセットされていたら対応するチャンネルはステレオで、もしセット されていないならそのチャンネルはモノラルか、ミキサーでサポートされていな いかどちらかです (そのどちらかを調べるには`channels()`を組み合わ せて使います) 。

  ビットマスクのデータを得る例としては、関数`channels()`のコードの 例を参照してください。

`reccontrols`( | )

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

`get`( | channel)

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

  もし未知のチャンネルが指定されたら、`error`が発生します。

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

  与えられたミキサーチャンネルのボリュームを`(left,right)`に設定しま す。 `left`と`right`は整数で、0 (無音) から100 (最大) の間でなけれ ばなりません。 成功したら、新しいボリューム値が2要素のタプルで返されます。 あるサウンドカードではミキサーの分解能の限界のため、指定したボリューム値 と厳密には同じにならないかもしれません。

  もし不正なミキサーのチャンネルが指定されたら、`IOError`が発生 します; 引数のフォーマットが正しくないなら`TypeError`が発生し、指定し たボリューム値が範囲外なら`error`が発生します。

`get_recsrc`( | )

  このメソッドは、現在録音のソースとして使われているチャンネルを示すビット マスクを返します。

`set_recsrc`( | bitmask)

  録音のソースを指定するのにこの関数を使います。 成功したら、新たな録音のソースを示すビットマスクを返します; 不正なソースが指定されたら`IOError`が発生します。 現在の録音のソースとしてマイク入力を設定する方法は以下の通りです:

      mixer.setrecsrc (1 << ossaudiodev.SOUND_MIXER_MIC)