English
PROGRAMMER'S GUIDEPCM・ADPCM再生ライブラリ
戻る進む
PCM・ADPCM再生ライブラリ

5.2 データ詳細


(1)基本的なデータ




Title
データ仕様
Data
基本的なデータ
Data Name
 
No
1.0

型名
説明
Uint8
符号なし1バイト整数。
Sint8
符号あり1バイト整数。
Uint16
符号なし2バイト整数。
Sint16
符号あり2バイト整数。
Uint32
符号なし4バイト整数。
Sint32
符号あり4バイト整数。
Bool
論理型。以下の値を取る。
FALSE  偽
TRUE  真


(2)定数




Title
データ仕様
Data
エラーコード
Data Name
PCM_ERR_〜
No
2.1
次の定数は、エラーコードを表します。
定数名
説明
PCM_ERR_OK
エラーは発生していない
PCM_ERR_OUT_OF_HANDLE
ハンドル売り切れ
PCM_ERR_NO_INIT
初期化関数がコールされてない
PCM_ERR_INVALID_HN
不正なハンドルで消去
PCM_ERR_ILL_CREATE_MODE
Create時のモードと違う
PCM_ERR_TOO_LARGE_HEADER
ヘッダがき大すぎる
(バッファサイズが小さすぎる)
PCM_ERR_HEADER_DATA
ヘッダデータエラー
PCM_ERR_AFI_NO_COMMON
CommonChunkが無い
PCM_ERR_AFI_COMMPRESS
未対応圧縮タイプ
PCM_ERR_NOT_DECLARE_ADPCM
ADPCM使用宣言をしていない
PCM_ERR_ILLEGAL_PARA
引き数の指定が間違っている
PCM_ERR_ILLEGAL_HANDLE
ハンドルが異常
PCM_ERR_NEXT_HN_STATUS
連続再生ハンドルの状態異常
PCM_ERR_NEXT_HN_AUDIO
オーディオの条件が一致しない
PCM_ERR_CHANGE_NO_ENTRY
エントリがない状態でチェンジした
PCM_ERR_PAUSE_STATUS
PCM_STAT_PLAY_TIMEまたは、
PCM_STAT_PLAY_PAUSE以外の状態でコール
PCM_ERR_PAUSE_WORK_NULL
ポーズ処理用ワーク異常
PCM_ERR_PAUSE_WORK_SIZE
ポーズ処理用ワーク異常
PCM_ERR_PAUSE_WORK_SET
ポーズ処理用ワーク指定が不正
PCM_ERR_DMA_MODE
未対応の転送方式
PCM_ERR_DMA_CPU_PCM
DMAが異常終了
PCM_ERR_GFS_READ
GFSの読み込みで失敗
PCM_ERR_RING_SUPPLY
再生完了後にリングバッファに供給があった。
(供給が間に合わず中断した)
PCM_ERR_TOO_SMALL_PCMBUF
PCMバッファが小さすぎる
PCM_ERR_ILL_SIZE_PCMBUF
PCMバッファサイズが不正




Title
データ仕様
Data
再生ステータス
Data Name
PCM_STAT_PLAY_〜
No
2.2
再生状態を表します。
定数名
説明
PCM_STAT_PLAY_ERR_STOP
異常停止
PCM_STAT_PLAY_CREATE
生成状態
PCM_STAT_PLAY_PAUSE
一時停止
PCM_STAT_PLAY_START
再生開始
PCM_STAT_PLAY_HEADER
ヘッダ処理状態
PCM_STAT_PLAY_TIME
再生中(タイマスタート)
PCM_STAT_PLAY_END
再生終了




Title
データ仕様
Data
一時停止の制御コマンド
Data Name
PCM_PAUSE_〜
No
2.3
一時停止の制御を表します。
定数名
説明
PCM_PAUSE_ON_AT_ONCE
即時一時停止
PCM_PAUSE_OFF
一時停止解除



Title
データ仕様
Data
強制切り替え可能性チェック値
Data Name
PCM_CHANGE_〜
No
2.4
強制切り替えの可能性を表します。
定数名
説明
PCM_CHANGE_OK_AT_ONCE
即時に強制切り替え可能である。
PCM_CHANGE_NO_DATA
データ供給が不足している。強制切り替え
(PCM_Change)を実行すると、スムーズに連
続再生されない。
PCM_CHANGE_NO_ENTRY
PCM_EntryNextで次のハンドルが登録され
ていない。強制切り替え(PCM_Change)は実
行できない。




Title
データ仕様
Data
データ転送方式の指定値
Data Name
PCM_TRMODE_〜
No
2.5
データ転送方式を表します。
定数名
説明
PCM_TRMODE_CPU
ソフトウェア転送
PCM_TRMODE_SDMA
CPUのDMA(サイクルスチール)
PCM_TRMODE_SCU
SCUのDMA


(3)データ型


Title
データ仕様
Data
ハンドル
Data Name
PcmHn
No
3.1

再生単位ごとの情報を表します。
typedef void *PcmHn;




Title
データ仕様
Data
作成パラメータ
Data Name
PcmCreatePara
No
3.2
ハンドルの作成情報を表します。PCM_Create〜への各種パラメータ値を構造体として設定します。

typedef struct {
     PcmWork *work;          /* ワークの先頭アドレス                  */
                             /* 本ライブラリが再生するときの作業領域          */
     Sint32     *ring_addr;  /* リングバッファアドレス                 */
                             /* メモリのデータを再生するときは、そのアドレス      */
     Sint32     ring_size;   /* リングバッファサイズ[byte]            */
                             /* メモリのデータを再生するときはファイルサイズ      */
     Sint32     *pcm_addr;   /* サウンドメモリのPCMバッファアドレス           */
     Sint32     pcm_size;    /* サウンドメモリのPCMバッファサイズ[sample/1ch]  */
} PcmCreatePara;

 PCMバッファに関する注意



Title
データ仕様
Data
エラー登録関数
Data Name
PcmErrFunc
No
3.3

エラー発生時に呼び出される関数。

 書 式
void(*PcmErrFunc)(void *obj, Sint32 err_code)
 入 力
obj
:登録オブジェクト
err_code
:エラーコード
 出 力
なし



Title
データ仕様
Data
再生情報
Data Name
PcmInfo
No
3.4
 PCM再生のための情報を表します。

typedef struct {
     PcmFileType file_type;          /* ファイルタイプ            */
     PcmDataType data_type;          /* データタイプ            */
     Sint32     file_size;           /* ファイルサイズ[byte]
                                      * これ以上のリンクバッファへの供給を許す
                                      * が、その部分は処理しない。            */
     Sint32     channel;             /* チャネル数            */
     Sint32     sampling_bit;        /* サンプリングビット数            */
     Sint32     sampling_rate;       /* サンプリングレート[Hz]            */
     Sint32     sample_file;         /* ファイルのサンプル数[sample/1ch]*/
     Sint32     compression_type;    /* 圧縮タイプ            */
} PcmInfo;


戻る進む
PROGRAMMER'S GUIDEPCM・ADPCM再生ライブラリ
Copyright SEGA ENTERPRISES, LTD., 1997