定数

 
[メニュー]
AdxmFramework
フレームワーク種別(PS3 PPU)
 
解説

PS3 PPU環境用のフレームワーク種別です。

ADXM_FRAMEWORK_DEFAULTはプラットフォーム共通の定義で、そのプラットフォームで一番お勧めのフレームワークが選択されます。

定数説明
ADXM_FRAMEWORK_DEFAULTADXM_FRAMEWORK_PS3PPU_MULTI_THREADと同じ
ADXM_FRAMEWORK_PS3PPU_SINGLE_THREADシングルスレッド
ADXM_FRAMEWORK_PS3PPU_MULTI_THREADマルチスレッド
 
[メニュー]
ADXM_PS3PPU_PRIO_~
デフォルトプライオリティ
 
解説

マルチスレッド時の各スレッドのデフォルトプライオリティです。

定数説明
ADXM_PS3PPU_PRIO_VV仮想Vsync(100)
ADXM_PS3PPU_PRIO_VSYNCVsyncスレッド(500)
ADXM_PS3PPU_PRIO_FSファイル処理スレッド(600)
ADXM_PS3PPU_PRIO_MAINメインスレッド(ADXM_SetupFramework関数を呼び出したスレッド)(1001)
ADXM_PS3PPU_PRIO_IDLEアイドルスレッド(1500)
 
[メニュー]
ADXM_PS3PPU_STACK_SIZE
デフォルトスタックサイズ
 
解説

マルチスレッド時の各スレッドのデフォルトスタックサイズです。

 

8192

 
 

データ型

 
[メニュー]
AdxmThreadSprm_PS3PPU
スレッドセットアップパラメータ
 
解説

各スレッドのセットアップパラメータです。ADXM_SetupFramework関数に引数prmとして渡します。フレームワークとしてADXM_FRAMEWORK_PS3PPU_MULTI_THREADを選んだ場合に有効です。

プライオリティは数値が低いほど優先度が高いです。

メンバは以下のとおりです。

メンバー型名説明
priority_vvSint32仮想Vsyncのプライオリティ
priority_vsyncSint32Vsyncスレッドのプライオリティ
priority_fsSint32ファイル処理スレッドのプライオリティ
priority_mainSint32メインスレッドのプライオリティ
priority_idleSint32アイドルスレッドのプライオリティ
 
[メニュー]
Adxps3SoundConfig
サウンドシステムの設定
 
解説

ADXPS3_SetupSound関数によってADXサウンドシステムのセットアップするときに指定する、サウンドシステムの設定です。

ワーク領域サイズはADXPS3_CalcSoundWorkSize関数により計算してください。また、計算したワーク領域サイズ分のメモリを確保し、ワーク領域として設定してください。

mixer_handleにNULLを設定することで、音声を出力しない(サラウンドミキサを作成しない)環境にも対応できます。

メンバは以下のとおりです。

メンバー型名説明
mixer_handleCellAANHandleサラウンドミキサのハンドル。cellSurMixerGetAANHandle関数で取得します。
num_output_channelsSint32出力チャンネル数。最大値は8です。使用メモリ量や負荷に影響します。
num_max_voicesSint32最大ボイス数。作成可能な音声の最大数です。使用メモリ量に影響します。現在は、これとは別にADXハンドルの最大数の制限が存在します。
workUint8 *ワーク領域。サウンド出力のためのワーク領域です。メモリを確保して与えてください。
work_sizeSint32ワーク領域サイズ。ワーク領域のサイズです。ADXPS3_CalcSoundWorkSize関数により計算してください。
 
[メニュー]
Adxps3SprmPs3Fs
PS3ファイルシステムのセットアップパラメータ
 
解説

ADXPS3_SetupPs3Fs関数によってPS3ファイルシステムのセットアップをするときに指定する、セットアップパラメータです。

メンバー型名説明
rtdirconst Char8 *ルートディレクトリ。ファイルへのアクセスはこのルートディレクトリを基準に行われます。
 
 

関数

 
[メニュー]
ADXM_SetupFramework
CRIミドルウェアのフレームワークセットアップ
 
書式
Bool CRIAPI ADXM_SetupFramework(AdxmFramework framework, void *prm);
 
入力

framework:フレームワーク種別

prm:セットアップパラメータ

 
出力

なし

 
戻り値

TRUE:成功、FALSE:失敗

 
説明

CRIミドルウェアのフレームワークをセットアップします。

ADXの初期化(ADXT_Init)を行う前に呼び出す必要があります。

prmにはAdxmThreadSprm_PS3PPU構造体へのポインタを指定できます。NULLを指定するとデフォルト設定が使用されます。セットアップパラメータは、フレームワークとしてADXM_FRAMEWORK_PS3PPU_MULTI_THREADを選んだ場合に有効です。

 

ADXM_SetupFramework(ADXM_FRAMEWORK_DEFAULT, NULL);
     :
ADXT_Init();
     :
for (;;) {
    ADXM_WaitVsync();
    ADXM_ExecMain();
       :
}
 
[メニュー]
ADXM_ShutdownFramework
CRIミドルウェアのフレームワークの終了
 
書式
Bool CRIAPI ADXM_ShutdownFramework(void);
 
入力

なし

 
出力

なし

 
戻り値

TRUE:成功、FALSE:失敗

 
説明

CRIミドルウェアのフレームワークを終了します。

ADXの終了処理(ADXT_Finish)を行った後に呼び出す必要があります。

 

ADXT_Finish();
      :
ADXM_ShutdownFramework();

 
[メニュー]
ADXPS3_CalcSoundWorkSize
サウンドシステムに必要なワークサイズの計算
 
書式
Sint32 CRIAPI ADXPS3_CalcSoundWorkSize(const Adxps3SoundConfig *config);
 
入力

config:サウンドシステムの設定構造体

 
出力

なし

 
戻り値

計算されたワークサイズ

 
説明

ADXサウンドシステムに必要なワークサイズを計算します。

この関数を呼び出す前に、サウンドシステムの設定構造体の各メンバを設定してください(work, work_size以外)。

 

cellSurMixerCreate(&sur_mixer_config);
cellSurMixerGetAANHandle(&sur_mixer_handle);
        :
Adxps3SoundConfig config;
memset(&config, 0, sizeof(config));
config.mixer_handle        = sur_mixer_handle;
config.num_output_channels = NUM_OUTPUT_CHANNELS;
config.num_voices          = NUM_MAX_VOICES;
config.work_size           = ADXPS3_CalcSoundWorkSize(&config);
config.work                = malloc(config.work_size);
ADXPS3_SetupSound(&config);
cellSurMixerStart();
        :
ADXT_Init();
 
[メニュー]
ADXPS3_SetupSound
サウンドシステムのセットアップ
 
書式
Bool CRIAPI ADXPS3_SetupSound(const Adxps3SoundConfig *config);
 
入力

config:サウンドシステムの設定構造体

 
出力

なし

 
戻り値

TRUE:成功、FALSE:失敗

 
説明

ADXサウンドシステムをセットアップします。

ADXの初期化(ADXT_Init)を行う前に呼び出す必要があります。

この関数を呼び出すときには、サラウンドミキサが動作していない必要があります。

この関数を呼び出す前に、サウンドシステムの設定構造体の各メンバを設定してください。

 

cellSurMixerCreate(&sur_mixer_config);
cellSurMixerGetAANHandle(&sur_mixer_handle);
        :
Adxps3SoundConfig config;
memset(&config, 0, sizeof(config));
config.mixer_handle        = sur_mixer_handle;
config.num_output_channels = NUM_OUTPUT_CHANNELS;
config.num_voices          = NUM_MAX_VOICES;
config.work_size           = ADXPS3_CalcSoundWorkSize(&config);
config.work                = malloc(config.work_size);
ADXPS3_SetupSound(&config);
cellSurMixerStart();
        :
ADXT_Init();
 
[メニュー]
ADXPS3_ShutdownSound
サウンドシステムのシャットダウン
 
書式
void CRIAPI ADXPS3_ShutdownSound(void);
 
入力

なし

 
出力

なし

 
戻り値

なし

 
説明

ADXサウンドシステムをシャットダウンします。

ADXの終了処理(ADXT_Finish)を行った後に呼び出す必要があります。

この関数を呼び出すときには、サラウンドミキサが動作していない必要があります。

この関数を呼び出す前に、サウンドシステムの設定構造体の各メンバを設定してください。

 

ADXT_Finish();
      :
cellSurMixerPause(CELL_SURMIXER_CONT_PAUSE_ON_IMMEDIATE);
      :
ADXPS3_ShutdownSound();
      :
cellSurMixerFinalize();
 
[メニュー]
ADXPS3_SoundNotifyCallback
サラウンドミキサにオーディオデータを入力するための通知コールバック関数
 
書式
Sint32 CRIAPI ADXPS3_SoundNotifyCallback(void *arg, Uint32 counter, Uint32 num_samples);
 
入力

arg: cellSurMixerSetNotifyCallback関数呼び出し時に設定した値

counter:コールバックの呼び出しごとにインクリメントされる値

num_samples:このコールバック内で生成すべきデータのサンプル数

 
出力

なし

 
戻り値

現在未使用。将来は正常終了は0、異常終了は負の値に定義する予定です。

 
説明

オーディオデータ入力のための通知コールバック関数です。

cellSurMixerSetNotifyCallback関数で登録するコールバック関数から呼び出してください。

もしアプリケーション側でサラウンドミキサへのデータ入力をまったく行わない場合は、ADXPS3_SoundNotifyCallback関数を直接サラウンドミキサに登録しても問題ありません。

 

cellSurMixerCreate(&sur_mixer_config);
cellSurMixerSetNotifyCallback(ADXPS3_SoundNotifyCallback, NULL);

 
[メニュー]
ADXPS3_SetupPs3Fs
PS3ファイルシステムのセットアップ
 
書式
void CRIAPI ADXPS3_SetupPs3Fs(const Adxps3SprmPs3Fs *sprm);
 
入力

sprm:PS3ファイルシステムのセットアップパラメータ構造体

 
出力

なし

 
戻り値

なし

 
説明

PS3ファイルシステムをセットアップして、ルートディレクトリを設定します。

ADXT_Init関数よりも前に呼んでください。

引数にNULLを指定すると、以下のようなデフォルトが設定されます。

設定内容
ルートディレクトリカレントディレクトリ(ELFファイルのあるディレクトリ)
 

Adxps3SprmPs3Fs sprm;
memset(&sprm, 0, sizeof(sprm));
sprm.rtdir = "/data/adx";
ADXPS3_SetupPs3Fs(&sprm);
      :
ADXT_Init();
 
[メニュー]
ADXPS3_ShutdownPs3Fs
PS3ファイルシステムのシャットダウン
 
書式
void CRIAPI ADXPS3_ShutdownPs3Fs(void);
 
入力

なし

 
出力

なし

 
戻り値

なし

 
説明

PS3ファイルシステムをシャットダウンします。

ADXT_Finish関数よりも後に呼んでください。

 

ADXT_Finish();
      :
ADXPS3_ShutdownPs3Fs();

Copyright (c) 2001-2006 CRI Middleware Co.,LTD.