# サウンドシステムAPI

API分別名 | API名 | 機能
--- | --- | ---
サウンドシステムAPI | `sdSysFlushHostCmd` | 直ちにARM7サウンドドライバにホストコマンドを送信する．
`sdSysServer` | V割り込み等のタイミングで動作させるサーバ関数．
`sdSysFinish` | サウンドシステムの終了．
`sdDrvInit` | サウンドドライバの初期化．
`sdDrvCheckExecute` | サウンドドライバの実行診断を行う．
`sdDrvGetVer` | サウンドドライバのバージョンを取得．
`sdDrvGetErr` | サウンドドライバのエラーを取得．
`sdDrvGetExecuteCounter` | サウンドドライバの実行カウンタの取得．
`sdDrvGetMidiTimmingCounter` | サウンドドライバがサウンドデータの特殊なメッセージをカウントしているカウント数を取得．
`sdLibInit` | サウンドライブラリの初期化．
`sdLibGetVer` | サウンドライブラリのバージョンを取得．

## sdSysFlushHostCmd

プロトタイプ | `SDE_ERR sdSysFlushHostCmd( Void);`
機能 | サウンドライブラリがバッファリングしているARM7サウンドドライバへの通信パケット（ホストコマンド）をただちにを送信する．
引数 |
返値 |

`SDE_ERR_NO_INIT` | ... | サウンドライブラリを初期化していない．
`SDE_ERR_SND_DRV_BUSY` | ... | サウンドドライバがホストコマンドを受け付けられない．

備考 | サウンドドライバが受けきれる量だけ送信される． 実際には送信するだけでARM7サウンドドライバが解析するタイミングは別にあるので，多少の効果の遅延（最大で数ミリ秒）があります．
参照 |

## sdSysServer

プロトタイプ | `SDE_ERR sdSysServer( Void);`
機能 | V同期で動作するサーバ関数です．実際にはARM7との通信などを行います．
引数 |
返値 |
備考 |
参照 |

## sdSysFinish

プロトタイプ | `SDE_ERR sdSysFinish( Void);`
機能 | サウンドシステムの終了をする．
引数 |
返値 | エラーコード．
備考 |
参照 |

## sdDrvInit

プロトタイプ | `SDE_ERR sdDrvInit( SDMEMBLK handle);`
機能 | サウンドドライバの初期化を行う．
引数 |

`handle` | ... | ドライバを保存しているメモリブロックのハンドル．

返値 | エラーコード．
備考 | メモリブロック情報の設定でコールバック関数を登録しておけば，サウンドドライバのダウンロード及び初期化が終わった後に登録したコールバック関数を呼び出すことが可能です． サウンドライブラリの初期化を行う`sdLibInit`を先に実行しなければなりません．
参照 | `SDMEMBLK`，`sdLibInit`

## sdDrvCheckExecute

プロトタイプ | `SDE_ERR sdDrvCheckExecute( Void);`
機能 | サウンドドライバの動作確認をします．
引数 |
返値 |

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

備考 |
参照 |

## sdDrvGetVer

プロトタイプ | `SDE_ERR sdDrvGetVer( SDS_VER *drv_ver);`
機能 | サウンドドライバのバージョンを取得する．
引数 |

`drv_ver` | ... | 取得したサウンドドライバのバージョン情報を格納する変数のポインタ．

返値 |

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

備考 | 初期化APIである`sdDrvInit`及び`sdLibInit`を実行した後でのみ取得できます．
参照 | `SDS_VER`

## sdDrvGetErr

プロトタイプ | `SDE_ERR sdDrvGetErr( Uint32 *err);`
機能 | サウンドドライバのエラー情報を取得します．
引数 |

`count_num` | ... | 取得したサウンドドライバのエラーを格納する変数のポインタ．

返値 |

`SDE_ERR_NO_INIT` | ... | サウンドライブラリを初期化していない．
`SDE_ERR_PTR_NULL` | ... | `err`が`NULL`だった．

備考 |
参照 |

## sdDrvGetExecuteCounter

プロトタイプ | `SDE_ERR sdDrvGetExecuteCounter( Uint32 *count_num);`
機能 | サウンドドライバが割り込みを利用してカウントしているカウント数を取得します．
引数 |

`count_num` | ... | 取得したサウンドドライバのカウントを格納する変数のポインタ．

返値 |

`SDE_ERR_NO_INIT` | ... | サウンドライブラリを初期化していない．
`SDE_ERR_PTR_NULL` | ... | `count_num`が`NULL`だった．

備考 | このAPIを使用してサウンドドライバの動作の有無を確認できます．
参照 |

## sdDrvGetMidiTimmingCounter

プロトタイプ | `SDE_ERR sdDrvGetMidiTimmingCounter( Uint32 *count_num);`
機能 | サウンドドライバがサウンドデータからの特殊なメッセージを元にカウントしているカウント数を取得します．
引数 |

`count_num` | ... | 取得したサウンドドライバのカウントを格納する変数のポインタ．

返値 |

`SDE_ERR_NO_INIT` | ... | サウンドライブラリを初期化していない．
`SDE_ERR_PTR_NULL` | ... | `count_num`が`NULL`だった．

備考 | このAPIを使用してサウンドクリエイタが意図した特殊なタイミングを利用することが可能です．
参照 |

## sdLibInit

プロトタイプ | `SDE_ERR sdLibInit( Void *wrk_ptr, Sint32 mem_blk_handle_max, Sint32 second_host_cmd_max);`
機能 | サウンドライブラリの初期化を行う．
引数 |

`wrk_ptr` | ... | サウンドライブラリが使用するワークバッファのポインタ．
`mem_blk_handle_max` | ... | 使用できるメモリブロックハンドルの最大数．
`second_host_cmd_max` | ... | 使用できるセカンダリコマンドバッファの最大数．

返値 | エラーコード．
備考 | サウンドライブラリを使用するにあたって，まずこのAPIを一番始めに実行しなければならない． サウンドドライバの初期化は`sdDrvInit`で行います．
参照 | `sdDrvInit`

## sdLibGetVer

プロトタイプ | `SDE_ERR sdLibGetVer( SDS_VER *lib_ver);`
機能 | サウンドライブラリのバージョンを取得する．
引数 |

`lib_ver` | ... | 取得したサウンドライブラリのバージョン情報を格納する変数のポインタ．

返値 | エラーコード．
備考 |
参照 | `SDS_VER`