# メモリブロック転送API

API分別名 | API名 | 機能
--- | --- | ---
メモリブロック転送API | `sdMemBlkCreate` | メモリブロックハンドルの取得．
`sdMemBlkDestroy` | メモリブロックハンドルを破棄．
`sdMemBlkSetPrm` | メモリブロックハンドルのパラメータ設定．
`sdMemBlkGetStat` | メモリブロックハンドルのステータスチェック．
`sdMemBlkSetTransferMode` | メモリブロックハンドルの転送モードの設定．

## sdMemBlkCreate

プロトタイプ | `SDE_ERR sdMemBlkCreate( SDMEMBLK *handle);`
機能 | メモリブロックハンドルの取得をする．
引数 |

`handle` | ... | 取得したハンドルを格納する変数のポインタ．

返値 |

`SDE_ERR_NO_INIT` | ... | サウンドライブラリを初期化していない．
`SDE_ERR_HANDLE_NO_ENOUGH` | ... | ハンドルを作成する為のバッファを使い切ったのでを作成できない．

備考 | ハンドルの作成が出来なかった場合は`handle`には`NULL`が設定されます．
参照 | `SDMEMBLK`

## sdMemBlkDestroy

プロトタイプ | `SDE_ERR sdMemBlkDestroy( SDMEMBLK handle);`
機能 | メモリブロックハンドルの破棄をする．
引数 |

`handle` | ... | メモリブロックハンドル．

返値 |

`SDE_ERR_NO_INIT` | ... | サウンドライブラリを初期化していない．
`SDE_ERR_HANDLE_NULL` | ... | ハンドルが`NULL`だった．
`SDE_ERR_HANDLE_ILLEGAL_VALUE` | ... | ハンドルがおかしなアドレスを指している．

備考 |
参照 | `SDMEMBLK`

## sdMemBlkSetPrm

プロトタイプ | `SDE_ERR sdMemBlkSetPrm( SDMEMBLK handle, Void *ptr,Uint32 data_size, SD_MEMBLK_CALLBACK_FUNC cb_func, Void *cb_1st_arg);`
機能 | メモリブロックハンドルのパラメータ設定を行います．
引数 |

`handle` | ... | メモリブロックハンドル．
`ptr` | ... | 転送元のメモリブロックのポインタ．
`data_size` | ... | ブロックサイズを指定する．
`cb_func` | ... | コールバック関数を登録する．

`SDD_MEMBLK_NO_FUNC` | ... | コールバック関数は登録しない．
`SDD_MEMBLK_SYNC_FUNC` | ... | ライブラリ内蔵の同期用コールバック関数を使用する．この指定で同期モードが簡単に実現できる．
その他 | ... | 指定されたアドレスをコールバック関数として登録します．

`cb_1st_arg` | ... | コールバック関数の第一引数を登録．必要のない場合は`NULL`を指定．

返値 |

`SDE_ERR_NO_INIT` | ... | サウンドライブラリを初期化していない．
`SDE_ERR_HANDLE_NULL` | ... | ハンドルが`NULL`だった．
`SDE_ERR_HANDLE_ILLEGAL_VALUE` | ... | ハンドルがおかしなアドレスを指している．

備考 |
参照 | `SDMEMBLK`

## sdMemBlkGetStat

プロトタイプ | `SDE_ERR sdMemBlkGetStat( SDMEMBLK handle, SDE_MEMBLK_STAT *stat);`
機能 | メモリブロックハンドルのステータスを調べます．
引数 |

`handle` | ... | メモリブロックハンドル．
`stat` | ... | ブロックのステータスを取得した結果を格納する変数のポインタ．

返値 |

`SDE_ERR_NO_INIT` | ... | サウンドライブラリを初期化していない．
`SDE_ERR_HANDLE_NULL` | ... | ハンドルが`NULL`だった．
`SDE_ERR_HANDLE_ILLEGAL_VALUE` | ... | ハンドルがおかしなアドレスを指している．

備考 |
参照 | `SDMEMBLK`

## sdMemBlkSetTransferMode

プロトタイプ | `SDE_ERR sdMemBlkSetTransferMode( SDE_MEMBLK_TRANSFER_MODE transfer_mode);`
機能 | メモリブロックの転送方法を設定します．
引数 |

`transfer_mode` | ... | 転送モード．

返値 |

`SDE_ERR_NO_INIT` | ... | サウンドライブラリを初期化していない．

備考 |
参照 | `SDMEMBLK`， `SDE_MEMBLK_TRANSFER_MODE`