# サウンド関連

## 関数
int | LoadSoundMem (const char *filename)
| 音楽データを読み込みます(本家互換)
int | PlaySoundMem (int handle, int playtype, int rewindflag DXPDEFARG(1))
| サウンドハンドルから再生します(本家互換)
int | CheckSoundMem (int handle)
| サウンドハンドルが再生中かチェックします(本家互換)
int | StopSoundMem (int handle)
| サウンドハンドルの再生を止めます(本家互換)
int | DeleteSoundMem (int handle)
| サウンドハンドルを削除します(本家互換)
int | InitSoundMem (void)
| 全てのサウンドハンドルを削除します。(本家互換)
int | SetPanSoundMem (int pan, int handle)
| サウンドハンドルにパンを設定する(本家互換)
int | ChangeVolumeSoundMem (int volume, int handle)
| サウンドハンドルの音量を変更する(本家互換)
int | SetLoopPosSoundMem (int looppos_s, int handle)
| ループ位置を設定する(本家互換)
int | SetLoopSamplePosSoundMem (int looppos, int handle)
| ループ位置を設定する(本家互換)
int | SetCreateSoundDataType (int type)
| LoadSoundMemの挙動を変更します。(本家互換).

## 関数

int ChangeVolumeSoundMem | ( | int | volume,
|  | int | handle |
| ) |  |  |

サウンドハンドルの音量を変更する(本家互換)

引数:

  | handle | サウンドハンドル
  | volume | 音量。0〜255の範囲

戻り値:

  | 0 | 成功
  | -1 | 失敗

int CheckSoundMem | ( | int | handle | ) |

サウンドハンドルが再生中かチェックします(本家互換)

引数:

  | handle | サウンドハンドル

戻り値:

  | 1 | 再生中
  | 0 | 停止
  | -1 | 失敗

int DeleteSoundMem | ( | int | handle | ) |

サウンドハンドルを削除します(本家互換)

引数:

  | handle | サウンドハンドル

戻り値:

  | 0 | 成功
  | -1 | 失敗

int InitSoundMem | ( | void |  | ) |

全てのサウンドハンドルを削除します。(本家互換)

戻り値:

  | 0 | 成功
  | -1 | 失敗

int LoadSoundMem | ( | const char * | filename | ) |

音楽データを読み込みます(本家互換)

MP3形式の音楽ファイルのみ読み込めます。なお、読み込み作業は別スレッドで行われます。

引数:

  | filename | ファイル名

戻り値:
  サウンドハンドル

戻り値:

  | -1 | 失敗

int PlaySoundMem | ( | int | handle,
|  | int | playtype,
|  | int rewindflag | DXPDEFARG1 |
| ) |  |  |

サウンドハンドルから再生します(本家互換)

LoadSoundMemで読み込んだ音楽ファイルを再生することができます 指定可能な再生タイプは以下の通り

- DX_PLAYTYPE_NORMAL 再生が終わるまで待ちます
- DX_PLAYTYPE_BACK バックグラウンドで再生します。音楽の終わりまで再生したら停止します
- DX_PLAYTYPE_LOOP バックグラウンドで再生します。ループ再生になります

引数:

  | handle | サウンドハンドル
  | playtype | 再生タイプ
  | rewindflag | 最初から再生させるかどうか

戻り値:

  | -1 | 失敗

int SetCreateSoundDataType | ( | int | type | ) |

LoadSoundMemの挙動を変更します。(本家互換).

LoadSoundMemはメモリ上に音楽データを展開し、それを再生します。 この関数でその時の挙動を変更できます。 指定可能な値は以下の通り

- DX_SOUNDDATATYPE_MEMNOPRESS メモリ上にデータを展開し、それを再生します。
- DX_SOUNDDATATYPE_FILE ストリーミング再生をします。

以下の値は現在使えません。

- DX_SOUNDDATATYPE_MEMPRESS
- DX_SOUNDDATATYPE_MEMPRESS_PLUS
  戻り値:

    | 0 | 成功
    | -1 | 失敗

int SetLoopPosSoundMem | ( | int | looppos_s,
|  | int | handle |
| ) |  |  |

ループ位置を設定する(本家互換)

ループ再生時に、指定した場所から再生再開できるようにします。

引数:

  | looppos_s | ループ再開位置（ミリ秒単位）
  | handle | サウンドハンドル

戻り値:

  | 0 | 成功
  | -1 | 失敗

int SetLoopSamplePosSoundMem | ( | int | looppos,
|  | int | handle |
| ) |  |  |

ループ位置を設定する(本家互換)

ループ再生時に、指定した場所から再生再開できるようにします。サンプル数で指定します。

引数:

  | looppos | ループ再開位置（サンプル数単位）
  | handle | サウンドハンドル

戻り値:

  | 0 | 成功
  | -1 | 失敗

int SetPanSoundMem | ( | int | pan,
|  | int | handle |
| ) |  |  |

サウンドハンドルにパンを設定する(本家互換)

正の値を設定すると左の音量が下がり、負の値を設定すると右の音量が下がります。0なら左右の音量が等しくなります。

引数:

  | handle | サウンドハンドル
  | pan | パンの値。-10000〜+10000の範囲

戻り値:

  | 0 | 成功
  | -1 | 失敗

int StopSoundMem | ( | int | handle | ) |

サウンドハンドルの再生を止めます(本家互換)

引数:

  | handle | サウンドハンドル

戻り値:

  | 0 | 成功
  | -1 | 失敗