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

6.2 関数詳細


初期化、終了処理




Title

関数仕様

Function

初期化

Function Name

PCM_Init

No

1.1

 書 式
Bool PCM_Init(void)
 入 力
なし
 出 力
なし
 関数値
正常に初期化できた場合:TRUE
正常に初期化できない場合:FALSE
 機 能
プログラム起動直後、本ライブラリを使用するための初期化を行います。
 備 考
本ライブラリを使うときは、必ずプログラムの先頭で本関数を呼んでください。



Title

関数仕様

Function

終了処理

Function Name

PCM_Finish

No

1.2

 書 式
void PCM_Finish(void)
 入 力
なし
 出 力
なし
 関数値
なし
 機 能
PCMライブラリの終了処理を行います。
 備 考
PCM再生をそれ以降行わない場合には、本関数を呼び出してください。



Title

関数仕様

Function

ADPCM使用宣言

Function Name

PCM_DeclareUseAdpcm

No

1.3

 書 式
void PCM_DeclareUseAdpcm(void)
 入 力
なし
 出 力
なし
 関数値
なし
 機 能
ADPCMの再生ができるように機能拡張します。
 備 考
指定ADPCM形式、または、CD-ROM XA Audio 形式を再生する場合は必須です。初期化関数 PCM_Init の直後にコールしてください。
これをコールした場合に、ADPCM伸張ライブラリのモジュールがリンクされます。
コールすることでADPCM以外の再生機能が制限されることはありません。
コールしなければ実行ファイルサイズが若干小さくなります。



Title

関数仕様

Function

SaturnPCM使用宣言(ファイルシステム)

Function Name

PCM_DeclareUseSapGfs

No

1.4

 書 式
void PCM_DeclareUseSapGfs(void)
 入 力
なし
 出 力
なし
 関数値
なし
 機 能
SaturnPCM形式の再生ができるように機能拡張します。
SaturnPCM形式をファイル再生モード(ファイルシステム)で使用する場合にコールします。
 備 考
SaturnPCM形式をファイル再生モードで再生する場合は必須です。
 初期化関数 PCM_Init の直後にコールしてください。
この関数をコールすることで、再生するPCMファイルはすべてSaturnPCM形式が対象となります。
SaturnPCM形式とAIFF形式,指定ADPCM形式,CD-ROM XA Audio形式のファイルを同時に使用することはできません。



Title

関数仕様

Function

SaturnPCM使用宣言(ストリームシステム)

Function Name

PCM_DeclareUseSapStm

No

1.5

 書 式
void PCM_DeclareUseSapStm(void)
 入 力
なし
 出 力
なし
 関数値
なし
 機 能
SaturnPCM形式の再生ができるように機能拡張します。
SaturnPCM形式をストリーム再生モード(ストリームシステム)で使用します。
 備 考
SaturnPCM形式をストリーム再生モードで再生する場合は必須です。
初期化関数 PCM_Init の直後にコールしてください。
この関数をコールすることで、再生するPCMファイルはすべてSaturnPCM形式が対象となります。
SaturnPCM形式とAIFF形式,指定ADPCM形式,CD-ROM XA Audio形式のファイルを同時に使用することはできません。

ハンドルの操作




Title

関数仕様

Function

ハンドルの作成(メモリ)

Function Name

PCM_CreateMemHandle

No

2.1

 書 式
PcmHn PCM_CreateMemHandle(PcmCreatePara *para)
 入 力
para:作成パラメータ
 出 力
なし
 関数値
ハンドル(作成できない場合はNULL)
 機 能
メモリにあるファイルを再生するためのハンドルを作成します。
 備 考



Title

関数仕様

Function

ハンドルの消去(メモリ)

Function Name

PCM_DestroyMemHandle

No

2.2

 書 式
void PCM_DestroyMemHandle(PcmHn pcm)
 入 力
pcm:ハンドル
 出 力
なし
 関数値
なし
 機 能
ハンドルを消去します。
 備 考
ハンドルを消去すると、そのハンドルはそれ以降使用できません。



Title

関数仕様

Function

ハンドルの作成(ファイルシステム)

Function Name

PCM_CreateGfsHandle

No

2.3

 書 式
PcmHn PCM_CreateGfsHandle(PcmCreatePara *para, GfsHn gfs)
 入 力
para
:作成パラメータ
gfs 
:ファイルハンドル
 出 力
なし
 関数値
ハンドル(作成できない場合はNULL)
 機 能
ファイルシステムでファイルを再生するためのハンドルを作成します。
 備 考



Title

関数仕様

Function

ハンドルの消去(ファイルシステム)

Function Name

PCM_DestroyGfsHandle

No

2.4

 書 式
void PCM_DestroyGfsHandle(PcmHn pcm)
 入 力
pcm:ハンドル
 出 力
なし
 関数値
なし
 機 能
ハンドルを消去します。
 備 考
ハンドルを消去すると、そのハンドルはそれ以降使用できません。



Title

関数仕様

Function

ハンドルの作成(ストリームシステム)

Function Name

PCM_CreateStmHandle

No

2.5

 書 式
PcmHn PCM_CreateStmHandle(PcmCreatePara *para, StmHn stm)
 入 力
para
:作成パラメータ
stm 
:ストリームハンドル
 出 力
なし
 関数値
ハンドル(作成できない場合はNULL)
 機 能
ストリームシステムでファイルを再生するためのハンドルを作成します。
 備 考



Title

関数仕様

Function

ハンドルの消去(ストリームシステム)

Function Name

PCM_DestroyStmHandle

No

2.6

 書 式
void PCM_DestroyStmHandle(PcmHn pcm)
 入 力
pcm:ハンドル
 出 力
なし
 関数値
なし
 機 能
ハンドルを消去します。
 備 考
ハンドルを消去すると、そのハンドルはそれ以降使用できません。



Title

関数仕様

Function

再生タスク

Function Name

PCM_Task

No

2.7

 書 式
void PCM_Task(PcmHn pcm)
 入 力
pcm:ハンドル
 出 力
なし
 関数値
なし
 機 能
CDからのファイル読み込み、及び、サウンドメモリへのデータ転送を行います。
pcmにNULLを指定すると再生しているすべてのハンドルに対して再生タスクを実行します。
 備 考
再生中は定期的に本関数を呼んでください。
Vブランク割り込みの頻度(1回/16ms)と同等以上の頻度でコールしてください。



Title

関数仕様

Function

VブランクIN処理関数

Function Name

PCM_VblIn

No

2.8

 書 式
void PCM_VblIn(void)
 入 力
なし
 出 力
なし
 関数値
なし
 機 能
再生時間の管理を行います。
 備 考
本ライブラリを使う場合は、必ず本関数をVブランクIN割り込み処理で呼んでください。

再生制御




Title

関数仕様

Function

再生開始

Function Name

PCM_Start

No

3.1

 書 式
void PCM_Start(PcmHn pcm)
 入 力
pcm:ハンドル
 出 力
なし
 関数値
なし
 機 能
再生を開始します。
 備 考
再生は、生成されたハンドルに対して1回だけできます。
同じファイルを何度も繰り返し再生したい場合は、その都度ハンドルを生成してください。



Title

関数仕様

Function

再生停止

Function Name

PCM_Stop

No

3.2

 書 式
void PCM_Stop(PcmHn pcm)
 入 力
pcm:ハンドル
 出 力
なし
 関数値
なし
 機 能
再生を停止します。



Title

関数仕様

Function

一時停止(ポーズ)

Function Name

PCM_Pause

No

3.3

 書 式
void PCM_Pause(PcmHn pcm, PcmPauseCmd cmd)
 入 力
pcm
:ハンドル
cmd
:一時停止の制御コマンド
 出 力
なし
 関数値
なし
 機 能
再生を一時停止します。または、一時停止を解除します。



Title

関数仕様

Function

次に再生するハンドルの登録

Function Name

PCM_EntryNext

No

3.4

 書 式
void PCM_EntryNext(PcmHn pcm)
 入 力
pcm:ハンドル
 出 力
なし
 関数値
なし
 機 能
次に再生するハンドルを登録します。
 備 考
この関数でハンドルを登録しておくと、現在再生しているハンドルが終了した時点で自動的に次のハンドルの再生が開始します。NULLを指定すると登録の解除となります。
PCM_Change で強制切り替えをするときも、この関数で登録されたハンドルが再生開始します。
登録できるハンドルは1個だけです。登録したハンドルに切り替わった時点で未登録状態になり、また次のハンドルを登録することができます。



Title

関数仕様

Function

ハンドルの強制切り替え

Function Name

PCM_Change

No

3.5

 書 式
void PCM_Change(void)
 入 力
なし
 出 力
なし
 関数値
なし
 機 能
現在再生しているハンドルを中断して、PCM_EntryNextで登録されているハンドルの再生を開始します。



Title

関数仕様

Function

ハンドルの切り替え状態の取得

Function Name

PCM_CheckChange

No

3.6

 書 式
PcmChangeStatus PCM_CheckChange(void)
 入 力
なし
 出 力
なし
 関数値
強制切り替え可能性チェック値
 機 能
PCM_Changeで強制切り替えをするときの切り替えの可能性を返します。



Title

関数仕様

Function

ループ再生回数の設定

Function Name

PCM_SetLoop

No

3.7

 書 式
void PCM_SetLoop(PcmHn pcm, Sint32 cnt_loop)
 入 力
pcm  
:ハンドル
cnt_loop
:ループ回数
 出 力
なし
 関数値
なし
 機 能
ループ再生のループする回数を指定します。
デフォルトは1回です。
 備 考
ループ再生は、メモリ再生モード(常駐再生方式)、または、ファイル再生モードで使用できます。
逐次供給方式のメモリ再生モード、およびストリーム再生モードには未対応です。
関数PCM_EntryNextや、関数PCM_Changeでの指定は、本関数でのループ再生回数の指定より優先されます。つまり、ループ回数の指定にかかわらず、登録されていた次のハンドルに切り替わります。

情報設定関数




Title

関数仕様

Function

最大転送セクタ数の設定

Function Name

PCM_SetLoadNum

No

4.1

 書 式
void PCM_SetLoadNum(PcmHn pcm, Sint32 load_sct)
 入 力
pcm
:ハンドル
load_sct
:最大転送セクタ数
 出 力
なし
 関数値
なし
 機 能
CDバッファからライブラリのリングバッファへ転送するときの、最大転送セクタ数を設定します。
デフォルトは20セクタです。
 備 考
本関数は再生を開始する前にコールしてください。



Title

関数仕様

Function

再生PANの設定

Function Name

PCM_SetPan

No

4.2

 書 式
void PCM_SetPan(PcmHn pcm, Sint32 pan)
 入 力
pcm
:ハンドル
pan
:PANの値(0〜31)
 出 力
なし
 関数値
なし
 機 能
音のPANを指定します。
デフォルトは0です。
PANの設定は、モノラル再生に有効です。ステレオ再生の場合は無視されます。




Title

関数仕様

Function

再生ボリュームの設定

Function Name

PCM_SetVolume

No

4.3

 書 式
void PCM_SetVolume(PcmHn pcm, Sint32 volume)
 入 力
pcm
:ハンドル
volume
:ボリューム(0〜7)
 出 力
なし
 関数値
なし
 機 能
音量を指定します。(0で何も出力されない、7で最大音量)デフォルトは7です。



Title

関数仕様

Function

PCM再生パラメータの変更

Function Name

PCM_ChangePcmPara

No

4.4

 書 式
void PCM_ChangePcmPara(PcmHn pcm)
 入 力
pcm:ハンドル
 出 力
なし
 関数値
なし
 機 能
サウンドドライバに対し、再生中のPCM再生パラメータの変更を行います。
 備 考
ポリュームや、パンの設定をしたあと、この関数をコールすることで、実際の変更処理が行われます。



Title

関数仕様

Function

PCMストリーム再生番号の設定

Function Name

PCM_SetPcmStreamNo

No

4.5

 書 式
void PCM_SetPcmStreamNo(PcmHn pcm, Sint32 stream_no)
 入 力
pcm
:ハンドル
stream_no
:PCMストリーム再生番号(0〜7)
 出 力
なし
 関数値
なし
 機 能
サウンドドライバに設定するPCMストリーム再生番号を設定します。
デフォルトは1です。
 備 考
PCMストリーム再生番号の詳細については、『セガサターンサウンドドライバ2.10プログラマーズガイド』を参照してください。
マルチ再生をする時は、それぞれ違うストリーム再生番号にしてください。本関数は再生を開始する前にコールしてください。



Title

関数仕様

Function

ポーズ処理用ワークの設定

Function Name

PCM_SetPauseWork

No

4.6

 書 式
void PCM_SetPauseWork(Sint32 *addr, Sint32 size)
 入 力
addr
:ワークアドレス
size
:ワークサイズ
 出 力
なし
 関数値
なし
 機 能
ポーズ・オン処理で使用するワーク領域を設定します。
 備 考
ポーズ機能を利用する場合、あらかじめ、PCM_SetPauseWork によりポーズ処理用ワー クを指定しておく必要があります。このワークはハンドル毎に用意する必要はありませ ん。このワークは、ポーズ・オン処理の中で一時的に使用される作業領域ですから、ポーズオン処理の直前に領域確保し、直後に領域解放しても構いません。
 処理例
#defile PAUSE_WORK_SIZE   (4096L*2)

pause_work_addr = malloc(PAUSE_WORK_SIZE); PCM_SetPauseWork(pause_work_addr, PAUSE_WORK_SIZE); PCM_Pause(pcm, PCM_PAUSE_ON_AT_ONCE); free(pause_work_addr);




Title

関数仕様

Function

データ転送方式の設定
(CDブロック→リングバッファ)

Function Name

PCM_SetTrModeCd

No

4.7

 書 式
void PCM_SetTrModeCd(PcmHn pcm, PcmTrMode mode)
 入 力
pcm
:ハンドル
mode
:データ転送方式
 出 力
なし
 関数値
なし
 機 能
CDブロックから、リングバッファへのデータ転送方式を設定します。
デフォルトは、CPUのDMAです。
プログラム転送、CPUのDMA、 SCUのDMAのいずれかを指定できます。
 注 意
PCM_SetTrModeCd は、ハンドル作成後、最初にタスク関数をコールする前にコールしてください。



Title

関数仕様

Function

再生情報の設定

Function Name

PCM_SetInfo

No

4.8

 書 式
void PCM_SetInfo(PcmHn pcm, PcmInfo *info)
 入 力
pcm
:ハンドル
info
:再生情報
 出 力
なし
 関数値
なし
 機 能
PCM再生のための情報を設定します。
 備 考
通常はファイルヘッダから再生のための情報を得るので、この関数は使用しません。現状では、CD-ROM XA Audio 再生のときだけ必要になります。
 使用例
CD-ROM XA Audio 再生の場合は、次のように再生情報を設定してください。

PcmInfo   info;

PCM_INFO_FILE_TYPE(&info)=PCM_FILE_TYPE_NO_HEADER; /* ヘッダなし */ PCM_INFO_DATA_TYPE(&info)=PCM_DATA_TYPE_ADPCM_SCT; /* XA Audioセクタ処理 */ PCM_SetInfo(pcm, &info);

 注 意
PCM_SetInfo は、ハンドル作成後、最初にタスク関数をコールする前にコールしてください。



Title

関数仕様

Function

1タスクあたりの処理上限値の設定

Function Name

PCM_Set1TaskSample

No

4.9

 書 式
void PCM_Set1TaskSample(PcmHn pcm, Sint32 sample)
 入 力
pcm    
:ハンドル
sample 
:サンプル数(sample/1ch)
 出 力
なし
 関数値
なし
 機 能
1回のタスク関数(PCM_Task)が処理する量の上限値を設定する。
これによりタスク関数の負荷を安定させることができます。
デフォルト値は 1024[sample/ch]
 備 考



Title

関数仕様

Function

再生開始トリガサイズの設定

Function Name

PCM_SetStartTrgSize

No

4.10

 書 式
void PCM_SetStartTrgSize(PcmHn pcm, Sint32 size)
 入 力
pcm    
:ハンドル
size   
:データサイズ(byte)
 出 力
なし
 関数値
なし
 機 能
size 以上のデータ供給があると再生を開始する。
デフォルト値は 0[byte]
 備 考



Title

関数仕様

Function

再生開始トリガサンプルの設定

Function Name

PCM_SetStartTrgSample

No

4.11

 書 式
 入 力
pcm    
:ハンドル
sample 
:サンプル数(sample/1ch)
 出 力
なし
 関数値
なし
 機 能
sample 以上の供給があると再生を開始する。
デフォルト値は 4096[sample/ch]
 備 考



Title

関数仕様

Function

再生停止トリガサンプルの設定

Function Name

PCM_SetStopTrgSample

No

4.12

 書 式
void PCM_SetStopTrgSample(PcmHn pcm, Sint32 sample)
 入 力
pcm     
:ハンドル
sample  
:サンプル数(sample/1ch)
 出 力
なし
 関数値
なし
 機 能
sample 以下の残り量が再生停止の条件となる。
デフォルト値は 2048[sample/ch]
 備 考

情報取得関数




Title

関数仕様

Function

再生時刻の取得

Function Name

PCM_GetTime

No

5.1

 書 式
Sint32 PCM_GetTime(PcmHn pcm)
 入 力
pcm:ハンドル
 出 力
なし
 関数値
カレント時刻
 機 能
カレント時刻を取得します。
(当ファイルの先頭から現在までに再生したサンプル数)



Title

関数仕様

Function

再生ステータスの取得

Function Name

PCM_GetPlayStatus

No

5.2

 書 式
PcmPlayStatus PCM_GetPlayStatus(PcmHn pcm)
 入 力
pcm:ハンドル
 出 力
なし
 関数値
再生ステータス
 機 能
現在の再生ステータスを返します。

バッファ制御




Title

関数仕様

Function

書き込みバッファの取得

Function Name

PCM_GetWriteBuf

No

6.1

 書 式
Uint32 *PCM_GetWriteBuf(PcmHn pcm, Sint32 *free_size, Sint32 *free_total)
 入 力
pcm :ハンドル
 出 力
free_size 
:連続書き込み可能な領域のバイト数
free_total
:不連続領域も合わせた書き込み可能な領域の総バイト数
 関数値
連続書き込み可能な領域の先頭アドレス(書き込みできない場合は NULL)
 機 能
書き込み先のバッファアドレスと書き込み可能なバイト数を取得します。
 備 考
リングバッファへのデータ供給を独自に行いたい場合に使用します。



Title

関数仕様

Function

書き込みサイズの通知

Function Name

PCM_NotifyWriteSize

No

6.2

 書 式
void PCM_NotifyWriteSize(PcmHn pcm, Sint32 write_size)
 入 力
pcm
:ハンドル
write_size
:書き込んだバイト数
 出 力
なし
 関数値
なし
 機 能
リングバッファに実際に供給したデータのバイト数をライブラリに通知します。
 備 考
リングバッファへのデータ供給を独自に行いたい場合に使用します。
メモリ上にあるファイルを再生する場合は、バッファサイズ(ファイルサイズ)を通知します。



Title

関数仕様

Function

ファイルの事前読み込み

Function Name

PCM_PreloadFile

No

6.3

 書 式
void PCM_PreloadFile(PcmHn pcm, Sint32 size)
 入 力
pcm    
: ハンドル
size   
: 読み込むバイト数
 出 力
なし
 関数値
実際に読み込んだバイト数
 機 能
ファイル再生開始前に、リングバッファに指定サイズ分のデータを読み込む。
 備 考
読み込むバイト数はセクタ単位(2048倍数)になる。

エラー制御




Title

関数仕様

Function

エラー情報の取得

Function Name

PCM_GetErr

No

7.1

 書 式
PcmErrCode PCM_GetErr(void)
 入 力
なし
 出 力
なし
 関数値
エラーコード
 機 能
一番最近に発生したエラーコードを返します。



Title

関数仕様

Function

エラー関数の登録

Function Name

PCM_SetErrFunc

No

7.2

 書 式
void PRM_SetErrFunc(PcmErrFunc func, void *obj)
 入 力
func
:エラー発生時に呼び出す関数
obj
:登録オブジェクト
 出 力
なし
 関数値
なし
 機 能
エラー発生時に呼び出す関数を設定します。登録オブジェクトが登録関数の第一引き数に渡されます。

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