定数

 
[メニュー]
ADXT_STAT_~
ハンドルの状態
 
解説

以下に示す定数は、ハンドルの状態を示す。

定数説明
ADXT_STAT_STOP停止中
ADXT_STAT_DECINFOADX のヘッダ情報取得中
ADXT_STAT_PREP再生準備中
ADXT_STAT_PLAYINGデコード&再生中
ADXT_STAT_DECENDデコード終了
ADXT_STAT_PLAYEND再生終了
ADXT_STAT_ERRORエラー発生
 
[メニュー]
ADXT_PLY_~
再生方式
 
解説

以下に示す定数は、再生方式を示す。ADXT_CALC_WORKマクロで使用する。

定数説明
ADXT_PLY_MEMメモリからの再生
ADXT_PLY_STMディスクからのストリーム再生
 
 

処理マクロ

 
[メニュー]
ADXT_CALC_WORK
作業領域の計算
 
書式
int ADXT_CALC_WORK(nch, stmflg, nstm, sfreq);
 
入力

nch : 最大再生チャンネル数(モノラル:1,ステレオ:2)

stmflg : 再生モード

     ADXT_PLY_MEM:メモリ再生

     ADXT_PLY_STM:ストリーム再生

nstm : 最大ディスクストリーム数

sfreq : 最高再生サンプリング周波数

 
出力

なし

 
戻り値

作業領域の大きさ [byte]

 
説明

ADXTハンドル1つあたりの作業領域の大きさを計算します。

最大ディスクストリーム数には、同時にディスクから読み込むADXT音声ストリーム数を指定します。ディスク上のファイルのみを再生する場合、同時に再生を行うADXTハンドル数となります。

 
備考

作業領域サイズの計算式は、以下の通り。

     作業領域 = 入力バッファサイズ + 出力バッファサイズ

     <サンプリング周波数48000Hz、モノラル>

再生方法入力バッファサイズ出力バッファサイズ
メモリ再生0 byte16Kbyte
ディスクストリーム再生25Kbyte+25Kbyte*並行再生ストリーム数16Kbyte

※ 1 ステレオ再生する場合は、2倍の領域が必要。

※ 2 入力バッファは、サンプリング周波数に比例して減らすことが可能。

 
[メニュー]
ADXT_CALC_WORK_3D
作業領域の計算(ADXT_Create3D用)
 
書式
int ADXT_CALC_WORK_3D(stmflg, nstm, sfreq);
 
入力

stmflg : 再生モード

      ADXT_PLY_MEM:メモリ再生

      ADXT_PLY_STM:ストリーム再生

nstm : 最大ディスクストリーム数

sfreq : 最高再生サンプリング周波数

 
出力

なし

 
戻り値

作業領域の大きさ [byte]

 
説明

ADXTハンドル1つあたりの作業領域の大きさを計算します。

最大ディスクストリーム数には、同時にディスクから読み込むストリーム数を指定します。ディスク上のファイルのみを再生する場合、同時に使用するADXTハンドル数とADXFハンドル数の総和となります。

 
 

データ型

 
[メニュー]
ADXT
ADXTハンドル
 
解説

ADXの再生を制御する。ADXT_Create関数によって生成される。

 
 

関数

 
[メニュー]
ADXT_Init
ADXライブラリの初期化
 
書式
void ADXT_Init(void);
 
入力

なし

 
出力

なし

 
戻り値

なし

 
説明

ADXライブラリを初期化します。

 
[メニュー]
ADXT_Finish
ADXライブラリの終了処理
 
書式
void ADXT_Finish(void);
 
入力

なし

 
出力

なし

 
戻り値

なし

 
説明

ADXライブラリの終了処理を行います。生成されているハンドルは削除されます。

 

/* ADXライブラリの初期化 */
ADXT_Init();
  :
/* ADXライブラリの終了処理 */
ADXT_Finish();

 
[メニュー]
ADXT_Create
ADXTハンドルの生成
 
書式
ADXT ADXT_Create(Sint32 maxnch, void *work, Sint32 worksize);
 
入力

maxnch : 最大再生チャンネル数(モノラル:1,ステレオ:2)

work : 作業領域

worksize : 作業領域サイズ

 
出力

なし

 
戻り値

生成された ADXT の構造体へのポインタ(ADXTハンドル)

 
説明

ADXTハンドルを生成します。

 
備考

maxnch はモノラル再生のみの場合は1、ステレオ再生の場合は2を指定します。

maxnch に2が指定された場合でも、モノラルを再生可能です。

作業領域は、グローバル変数かメモリアロケーション関数によって確保します。

 
[メニュー]
ADXT_Destroy
ADXTハンドルの消去
 
書式
void ADXT_Destroy(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

なし

 
説明

指定されたADXTハンドルを消去する。

 

/* 作業領域サイズ */
#define WKSIZE ADXT_CALC_WORK(2, ADXT_PLY_STM, 1, 48000)

Uint8 *work[WKSIZE]; /* 作業領域 */ ADXT adxt; /* ADXTハンドル */
/* ADXTハンドルの生成 */ adxt = ADXT_Create(2, work, WKSIZE);   : /* ADXTハンドルの消去 */ ADXT_Destroy(adxt);
 
[メニュー]
ADXT_DestroyAll
すべてのADXTハンドルの消去
 
書式
void ADXT_DestroyAll(void);
 
入力

なし

 
出力

なし

 
戻り値

なし

 
説明

すべてのADXTハンドルを消去する。

 
[メニュー]
ADXT_StartFname
ディスクストリーム再生の開始
 
書式
void ADXT_StartFname(ADXT adxt, const Char8 *fname);
 
入力

adxt : ADXTハンドル

fnmae : 音声ファイル名

 
出力

なし

 
戻り値

なし

 
説明

fname で指定された音声ファイルの再生を開始します。すでに再生されているハンドルに対しこの関数を実行すると、再生中の音声が停止し、指定された音声ファイルが再生されます。音声ファイルとして、ADXファイルとWAVファイルを指定できます。異なるハンドルに対しこの関数を実行すると、同時に複数の音声を再生することができます。

 

/* 48KHzのステレオデータを1ストリームだけ再生する場合 */
#define WKSIZE ADXT_CALC_WORK(2, ADXT_PLY_STM, 1, 48000)

Uint8 *work[WKSIZE]; /* 作業領域 */ ADXT adxt; /* ADXTハンドル */
/* ADXTハンドルの生成 */ adxt = ADXT_Create(2, work, WKSIZE);
/* 再生開始 */ ADXT_StartFname(adxt, "MUSIC.ADX");   : /* 再生開始 */ ADXT_StartFname(adxt, "SE2.WAV");   :
 
[メニュー]
ADXT_StartFnameRange
ディスクストリーム再生の開始(範囲指定)
 
書式
void ADXT_StartFnameRange(ADXT adxt, Char8 *fname, Sint32 offset_sct, Sint32 range_sct);
 
入力

adxt : ADXTハンドル

fnmae : 音声ファイル名

offset_sct : ファイル内のオフセット(セクタ単位)

range_sct : 範囲(セクタ単位)

 
出力

なし

 
戻り値

なし

 
説明

指定された音声ファイルの指定範囲内の再生を開始します。

 
[メニュー]
ADXT_StartMem
メモリ再生の開始
 
書式
void ADXT_StartMem(ADXT adxt, void *adxdat);
 
入力

adxt : ADXTハンドル

adxdat : 音声データのアドレス

 
出力

なし

 
戻り値

なし

 
説明

adxdat で指定されたメモリ上の音声データを再生します。ディスクストリーム再生よりもレスポンス良く、音声を再生できます。遅延時間は、約50msecです。

 

/* モノラルデータを再生する場合 */
#define WKSIZE ADXT_CALC_WORK(1, ADXT_PLY_MEM, 0, 48000)

Uint8 *work[WKSIZE]; /* 作業領域 */ Uint8 adxdat[ADXDAT_SIZE]; /* データ領域 */ ADXT adxt; /* ADXTハンドル */
/* 音声データの読み込み */ load_data(adxdat);
/* ADXTハンドルの生成 */ adxt = ADXT_Create(1, work, WKSIZE);
/* 再生開始 */ ADXT_StartMem(adxt, adxdat);   :
 
[メニュー]
ADXT_StartMem2
メモリ指定による再生の開始
 
書式
void ADXT_StartMem2(ADXT adxt, void *adxdat, Sint32 datlen);
 
入力

adxt : ADXTハンドル

adxdat : ADXデータのアドレス

datlen : ADXデータの大きさ

 
出力

なし

 
戻り値

なし

 
説明

adxdata で指定されたADXデータを再生する。

 
[メニュー]
ADXT_StartMemIdx
メモリインデックス再生の開始
 
書式
void ADXT_StartMemIdx(ADXT adxt, void *acxdat, Sint32 no);
 
入力

adxt : ADXTハンドル

acxdat : ACXデータのアドレス

no : インデックス番号

 
出力

なし

 
戻り値

なし

 
説明

acxdat で指定されたACXデータ内のno番目のデータを再生します。

 

/* モノラルデータを再生する場合 */
#define WKSIZE ADXT_CALC_WORK(1, ADXT_PLY_MEM, 0, 48000)

Uint8 *work[WKSIZE]; /* 作業領域 */ Uint8 acxdat[ADXDAT_SIZE]; /* データ領域 */ ADXT adxt; /* ADXTハンドル */
/* 音声データの読み込み */ load_data(acxdat);
/* ADXTハンドルの生成 */ adxt = ADXT_Create(1, work, WKSIZE); /* 再生開始 */ ADXT_StartMemIdx(adxt, acxdat, 5);   : /* 再生開始 */ ADXT_StartMemIdx(adxt, acxdat, 8);   :
 
[メニュー]
ADXT_StartAfs
ディスクインデックス再生の開始
 
書式
void ADXT_StartAfs(ADXT adxt, Sint32 pat_id, Sint32 file_id);
 
入力

adxt : ADXTハンドル

pat_id : パーティションID

file_id : ファイルID

 
出力

なし

 
戻り値

なし

 
説明

ディスク上のAFSファイル内のデータを再生します。

ADXF_LoadPartitionNw関数により、par_idとAFSファイル名を関連付けておきます。file_idは、AFSファイル内の順番号となります。

AFSLNK.EXEはファイルIDを定義したヘッダファイルを出力するので、ファイル名に対応する定義を指定することもできます。

 

/* 48KHzステレオと24KHzモノラルを同時に再生する場合 */
/* 48KHzステレオ再生用作業領域 */
#define WKSIZE48 ADXT_CALC_WORK(2, ADXT_PLY_STM, 2, 48000)
/* 24KHzモノラル再生用作業領域 */
#define WKSIZE24 ADXT_CALC_WORK(1, ADXT_PLY_STM, 2, 24000)

/* パーティションID */ #define PAT01 (0) /* パーティション内の最大ファイル数 */ #define MAX_PAT_NFILES (10000)
/* パーティション情報領域 */ Uint8 ptinfo[ADXF_CALC_PTINFO_SIZE(MAX_PAT_NFILES)]; Uint8 *work1[WKSIZE48]; /* 作業領域 */ Uint8 *work2[WKSIZE24]; /* 作業領域 */ ADXT adxt1, adxt2; /* ADXTハンドル */
/* パーティション情報の読み込み */ ADXF_LoadPartitionNw(PAT01, "pat01.afs", NULL, ptinfo); for (;;) {   if (ADXF_GetPtStat(PAT01) == ADXF_STAT_READEND)     break;   ADXM_ExecMain(); }
/* ADXTハンドルの生成 */ adxt1 = ADXT_Create(2, work1, WKSIZE48); adxt2 = ADXT_Create(1, work2, WKSIZE24); /* 再生開始 */ ADXT_StartAfs(adxt1, PATID, BGM);   : /* 再生開始 */ ADXT_StartAfs(adxt1, PATID, SRF137);   :
 
[メニュー]
ADXT_StartSj
ストリームジョイント再生の開始
 
書式
void ADXT_StartSj(ADXT adxt, SJ sj);
 
入力

adxt : ADXTハンドル

sj : ストリームジョイント

 
出力

なし

 
戻り値

なし

 
説明

ストリームジョイントから得られるデータを再生する。

 
[メニュー]
ADXT_Stop
再生の停止
 
書式
void ADXT_Stop(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

なし

 
説明

ADXの再生を停止する。

 

/* 48KHzのステレオデータを1ストリームだけ再生する場合 */
#define WKSIZE ADXT_CALC_WORK(2, ADXT_PLY_STM, 1, 48000)

Uint8 *work[WKSIZE]; /* 作業領域 */ ADXT adxt; /* ADXTハンドル */
/* ADXTハンドルの生成 */ adxt = ADXT_Create(2, work, WKSIZE); /* 再生開始 */ ADXT_StartFname(adxt, "MUSIC.ADX");   : /* ボタンが押されたら停止 */ if (PRESSED(Button)) {   /* 再生停止 */   ADXT_Stop(adxt); }
 
[メニュー]
ADXT_GetStat
状態の取得
 
書式
Sint32 ADXT_GetStat(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

現在の ADXTハンドルの動作状態

 
説明

現在のadxtの動作状態を取得する。

     動作状態は以下の通り。

定数説明
ADXT_STAT_STOP停止中
ADXT_STAT_DECINFOADX のヘッダ情報取得中
ADXT_STAT_PREP再生準備中
ADXT_STAT_PLAYINGデコード&再生中
ADXT_STAT_DECENDデコード終了
ADXT_STAT_PLAYEND再生終了
ADXT_STAT_ERRORエラー発生
 

/* 48KHzのモノラルデータを1ストリームだけ再生する場合 */
#define WKSIZE ADXT_CALC_WORK(1, ADXT_PLY_STM, 1, 48000)

Uint8 *work[WKSIZE];  /* 作業領域 */ ADXT adxt;       /* ADXTハンドル */ Sint32 stat;      /* 動作状態 */
/* ADXTハンドルの生成 */ adxt = ADXT_Create(1, work, WKSIZE); /* 再生開始 */ ADXT_StartAfs(adxt, pat_id, 0);
for (;;) {   /* 音声再生中はアニメーション */   stat = ADXT_GetStat(adxt);   if (stat == ADXT_STAT_PLAYING || stat == ADXT_STAT_DECEND) {     user_animate_obj();   }
  /* 再生が終了したら、次の音声を再生 */   if (stat == ADXT_STAT_PLAYEND) {      ADXT_StartAfs(adxt, pat_id, 1);   }
  /* サーバ処理 */   ADXM_ExecMain(); }
 
[メニュー]
ADXT_GetTime
サンプル単位での再生時刻の取得
 
書式
void ADXT_GetTime(ADXT adxt, Sint32 *ncount, Sint32 *tscale);
 
入力

adxt : ADXTハンドル

 
出力

ncount : 再生サンプル数

tscale : サンプリング周波数[Hz]

 
戻り値

なし

 
説明

サンプル単位での再生時刻を取得します。

 

/* 48KHzのステレオデータを1ストリームだけ再生する場合 */
#define WKSIZE ADXT_CALC_WORK(2, ADXT_PLY_STM, 1, 48000)

Uint8 *work[WKSIZE]; /* 作業領域 */ ADXT adxt; /* ADXTハンドル */ Sint32 nsmpl, sfreq; /* 再生時刻 */ Sint32 nfrm, hh, mm, ss, ff; /* 時刻 */
/* ADXTハンドルの生成 */ adxt = ADXT_Create(2, work, WKSIZE); /* 再生開始 */ ADXT_StartFname(adxt, "music.adx");
for (;;) {   /* 再生時刻の表示(フレームの単位は1/60) */   ADXT_GetTime(adxt, &nsmpl, &sfreq);   nfrm = (Sint32)((Float32)nsmpl / (Float32)sfreq * 60.0f);   hh = nfrm / (60*60*60);       /* 時 */   mm = (nfrm - hh*60*60*60) / (60*60); /* 分 */   ss = (nfrm - (hh*60+mm)*60*60) / 60; /* 秒 */   ff = nfrm % 1000;  /* フレーム */   disp_time(hh, mm, ss, ff);
  /* サーバ処理 */   ADXM_ExecMain(); }
 
[メニュー]
ADXT_GetTimeReal
実時間での再生時刻の取得
 
書式
Sint32 ADXT_GetTimeReal(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

再生時刻[1/100sec]

 
説明

実時間で再生時刻を取得します。単位は1/100秒です。

 

/* 48KHzのステレオデータを1ストリームだけ再生する場合 */
#define WKSIZE ADXT_CALC_WORK(2, ADXT_PLY_STM, 1, 48000)

Uint8 *work[WKSIZE]; /* 作業領域 */ ADXT adxt; /* ADXTハンドル */ Sint32 time; /* 再生時刻 */ Sint32 hh, mm, ss, ff; /* 時刻 */
/* ADXTハンドルの生成 */ adxt = ADXT_Create(2, work, WKSIZE); /* 再生開始 */ ADXT_StartFname(adxt, "music.adx");   : for (;;) {   /* 再生時刻の表示(フレームの単位は1/100) */   time = ADXT_GetTimeReal(adxt);   hh = time / (60*60*100);       /* 時 */   mm = (time - hh*60*60*100)/(60*100); /* 分 */   ss = (time - (hh*60+mm)*60*100)/100; /* 秒 */   ff = time % 100;  /* フレーム */   disp_time(hh, mm, ss, ff);
  /* サーバ処理 */   ADXM_ExecMain(); }
 
[メニュー]
ADXT_Pause
再生の一時停止・再開
 
書式
void ADXT_Pause(ADXT adxt, Sint32 sw);
 
入力

adxt : ADXTハンドル

sw : ポーズスイッチ(1=一時停止,0=再開)

 
出力

なし

 
戻り値

なし

 
説明

再生の一時停止・再開を行います。swに1を設定すると一時停止、swに0を設定すると再開します。再生状態がSTOPのときに一時停止を設定すると、音声の再生を開始する関数を実行しても音声が再生されず、PLAYINGの状態で一時停止します。

この状態から一時停止を解除することによって、即座に音声を再生できます。

 

(1) 再生の一時停止
/* 48KHzのステレオデータを1ストリームだけ再生する場合 */
#define WKSIZE ADXT_CALC_WORK(2, ADXT_PLY_STM, 1, 48000)

Uint8 *work[WKSIZE]; /* 作業領域 */ ADXT adxt; /* ADXTハンドル */ Sint32 pause_flag = 0; /* ポーズフラグ */
/* ADXTハンドルの生成 */ adxt = ADXT_Create(2, work, WKSIZE); /* 再生開始 */ ADXT_StartFname(adxt, "music.adx"); for (;;) { if (PRESSED(Button)) { if (pause_flag == 0) { /* 一時停止 */ pause_flag = 1; } else { /* 再生再開 */ pause_flag = 0; } ADXT_Pause(adxt, pause_flag); }
/* サーバ処理 */ ADXM_ExecMain(); }

(2) ディスク上の音声データを即時に再生する /* ADXTハンドルの生成 */ adxt = ADXT_Create(2, work, WKSIZE); /* 一時停止 */ ADXT_Pause(adxt, 1); /* 再生開始 */ ADXT_StartFname(adxt, "music.adx");   : /* 音声は再生されず、状態がPLAYINGになる */   : for (;;) { /* ボタンが押されると即時に音声が出力される */ if (PRESSED(Button)) { ADXT_Pause(adxt, 0); }
/* サーバ処理 */ ADXM_ExecMain(); }
 
[メニュー]
ADXT_GetStatPause
一時停止状態の取得
 
書式
Sint32 ADXT_GetStatPause(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

一時停止状態 1=一時停止中、0=一時停止されていない状態

 
説明

一時停止状態を取得する。

 
[メニュー]
ADXT_SetOutVol
出力ボリュームの設定
 
書式
void ADXT_SetOutVol(ADXT adxt, Sint32 vol);
 
入力

adxt : ADXTハンドル

vol : 減衰レベル (0:0dB 〜 -960:-96.0dB)

 
出力

なし

 
戻り値

なし

 
説明

出力ボリュームを設定します。再生前でも再生中でも設定することができます。

volの設定値

設定値デシベル値
0-0dB減衰なし(最大)
-30-3dB約70%
-60-6dB約50%
-960-96.0dBミュート
 
[メニュー]
ADXT_GetOutVol
出力ボリュームの取得
 
書式
Sint32 ADXT_GetOutVol(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

出力ボリュームの設定値 (0:0dB 〜 -960:-96.0dB)

 
説明

出力ボリュームを取得します。

 

/* 48KHzのステレオデータを1ストリームだけ再生する場合 */
#define WKSIZE ADXT_CALC_WORK(2, ADXT_PLY_STM, 1, 48000)

Uint8 *work[WKSIZE]; /* 作業領域 */ ADXT adxt; /* ADXTハンドル */ Sint32 vol; /* 現在のボリューム */ Sint32 fade_vol; /* フェードの変化量 */
/* フェードの変化量を計算(3秒でフェード) */ fade_vol = 960 / (60 * 3);
/* ADXTハンドルの生成 */ adxt = ADXT_Create(2, work, WKSIZE); /* 再生開始 */ ADXT_StartFname(adxt, "music.adx");
for (;;) {   /* フェードイン */   if (PRESSED(Button1)) {     vol = ADXT_GetOutVol(adxt);     ADXT_SetOutVol(adxt, vol + fade_vol);   }   /* フェードアウト */   if (PRESSED(Button2)) {     vol = ADXT_GetOutVol(adxt);     ADXT_SetOutVol(adxt, vol - fade_vol);   }
  /* サーバ処理 */   ADXM_ExecMain(); }
 
[メニュー]
ADXT_SetOutPan
パンポットの設定
 
書式
void ADXT_SetOutPan(ADXT adxt, Sint32 ch, Sint32 pan);
 
入力

adxt : ADXTハンドル

ch : チャンネル番号 (0, 1)

   ADXT_CH_L(0):左チャンネル, ADXT_CH_R(1):右チャンネル

pan : パンポット設定値 (-15〜+15, -128)

   ADXT_PAN_LEFT =-15, ADXT_PAN_CENTER=  0

   ADXT_PAN_RIGHT= 15, ADXT_PAN_AUTO =-128

 
出力

なし

 
戻り値

なし

 
説明

出力パンポットを設定します。

AUTO の場合は、音声データがモノラルかステレオかによって自動的にパンが設定されます。音声を再生中でも設定することができます。

 
[メニュー]
ADXT_GetOutPan
パンポットの取得
 
書式
Sint32 ADXT_GetOutPan(ADXT adxt, Sint32 ch);
 
入力

adxt : ADXTハンドル

ch : チャンネル番号

   ADXT_CH_L(0):左チャンネル, ADXT_CH_R(1):右チャンネル

 
出力

なし

 
戻り値

パンポットの設定値 (-15〜+15,-128)

 
説明

出力パンポットを取得します。

 

/* 48KHzのモノラルデータを1ストリームだけ再生する場合 */
#define WKSIZE ADXT_CALC_WORK(1, ADXT_PLY_STM, 1, 48000)

Uint8 *work[WKSIZE]; /* 作業領域 */ ADXT adxt; /* ADXTハンドル */ Sint32 pan; /* 現在のパンポット値 */
/* ADXTハンドルの生成 */ adxt = ADXT_Create(1, work, WKSIZE); /* 再生開始 */ ADXT_StartFname(adxt, "srf01.adx");
for (;;) {   /* パンを右へ移動 */   if (PRESSED(Button1)) {     pan = ADXT_GetOutPan(adxt, 0);     pan = min(ADXT_PAN_RIGHT, pan+1);     ADXT_SetOutPan(adxt, 0, pan);   }   /* パンを左へ移動 */   if (PRESSED(Button2)) {     pan = ADXT_GetOutPan(adxt, 0);     pan = max(ADXT_PAN_LEFT, pan-1);     ADXT_SetOutPan(adxt, 0, pan);   }
  /* サーバ処理 */   ADXM_ExecMain(); }
 
[メニュー]
ADXT_SetOutputMono
強制モノラル出力スイッチの設定
 
書式
void ADXT_SetOutputMono(Sint32 flag);
 
入力

flag : 強制モノラル出力フラグ(OFF:0, ON:1)

 
出力

なし

 
戻り値

なし

 
説明

ステレオデータを強制的にモノラルデータとして出力する。

 
[メニュー]
ADXT_SetLpFlg
ループフラグの設定
 
書式
void ADXT_SetLpFlg(ADXT adxt, Sint32 flg);
 
入力

adxt : ADXTハンドル

flg : 1=ループする、0=ループしない

 
出力

なし

 
戻り値

なし

 
説明

ループするか否かを設定する。

 
備考

再生中は、ループを解除することのみ可能。

 
[メニュー]
ADXT_GetLpCnt
ループした回数の取得
 
書式
Sint32 ADXT_GetLpCnt(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

ループした回数

 
説明

ループした回数を取得する。

 
[メニュー]
ADXT_SetWaitPlayStart
音声出力開始待ちの設定
 
書式
void ADXT_SetWaitPlayStart(ADXT adxt, Sint32 flg);
 
入力

adxt : ADXTハンドル

flg : 1=ウェイトする、0=音声出力を即座に開始する

 
出力

なし

 
戻り値

なし

 
説明

音声の出力の開始待ちを設定する。

 
[メニュー]
ADXT_GetNumSmpl
総サンプル数の取得
 
書式
Sint32 ADXT_GetNumSmpl( ADXT adxt );
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

音声データの総サンプル数

 
説明

再生中の音声データの総サンプル数を取得します。

 
備考

再生状態が、再生準備中(ADXT_STAT_PREP=2)から再生終了(ADXT_STAT_PLAYEND=5)までの間に取得できます。

 

/* 48KHzのステレオデータを1ストリームだけ再生する場合 */
#define WKSIZE ADXT_CALC_WORK(2, ADXT_PLY_STM, 1, 48000)

Uint8 *work[WKSIZE]; /* 作業領域 */ ADXT adxt; /* ADXTハンドル */ Sint32 total_nsmpl; /* 総サンプル数 */ Sint32 nsmpl, sfreq; /* 再生時刻 */ Sint32 percent; /* パーセント */
/* ADXTハンドルの生成 */ adxt = ADXT_Create(2, work, WKSIZE); /* 再生開始 */ ADXT_StartFname(adxt, "music.adx");
for (;;) {   /* 再生の進行状況の表示 (パーセント) */   if (ADXT_GetStat(adxt) >= ADXT_STAT_PREP) {     total_nsmpl = ADXT_GetNumSmpl(adxt);     ADXT_GetTime(adxt, &nsmpl, &sfreq);     percent = nsmpl * 100 / total_nsmpl;   } else {     percent = 0;   }
  /* 経過の表示 */   disp_progress(percent);
  /* サーバ処理 */   ADXM_ExecMain(); }
 
[メニュー]
ADXT_GetDecNumSmpl
デコードサンプル数の取得
 
書式
Sint32 ADXT_GetDecNumSmpl(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

デコードした音声データの総サンプル数

 
説明

デコードした音声データの総サンプル数を取得する。

 
備考

状態が、再生準備中(ADXT_STAT_PREP)から再生終了(ADXT_STAT_PLAYEND)までの間のみ取得可能。

 
[メニュー]
ADXT_GetSfreq
サンプリング周波数の取得
 
書式
Sint32 ADXT_GetSfreq(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値
 
説明

再生中の音声データのサンプリング周波数を取得します。

 
備考

再生状態が、再生準備中(ADXT_STAT_PREP=2)から再生終了(ADXT_STAT_PLAYEND=5)までの間に取得できます。

 

/* 48KHzのステレオデータを1ストリームだけ再生する場合 */
#define WKSIZE ADXT_CALC_WORK(2, ADXT_PLY_STM, 1, 48000)

Uint8 *work[WKSIZE]; /* 作業領域 */ ADXT adxt; /* ADXTハンドル */ Sint32 sfreq; /* サンプリング周波数 */
/* ADXTハンドルの生成 */ adxt = ADXT_Create(2, work, WKSIZE); /* 再生開始 */ ADXT_StartFname(adxt, "music.adx");
for (;;) {   /* 再生周波数の取得(Hz) */   if (ADXT_GetStat(adxt) >= ADXT_STAT_PREP) {     sfreq = ADXT_GetSfreq(adxt);   }
  /* サーバ処理 */   ADXM_ExecMain(); }
 
[メニュー]
ADXT_GetNumChan
音声データのチャンネル数の取得
 
書式
Sint32 ADXT_GetNumChan(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

音声データのチャンネル数の取得

 
説明

再生中の音声のチャンネル数を取得する。

 
備考

状態が、再生準備中(ADXT_STAT_PREP)から再生終了(ADXT_STAT_PLAYEND)までの間のみ取得可能。

 
[メニュー]
ADXT_GetFmtBps
量子化ビット数の取得
 
書式
Sint32 ADXT_GetFmtBps(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

音声データの量子化ビット数

 
説明

再生中の音声の量子化ビット数を取得する。

 
備考

状態が、再生準備中(ADXT_STAT_PREP)から再生終了(ADXT_STAT_PLAYEND)までの間のみ取得可能。

 
[メニュー]
ADXT_GetHdrLen
ヘッダ長の取得
 
書式
Sint32 Sint32 ADXT_GetHdrLen(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

音声データのヘッダ長

 
説明

再生中の音声のヘッダ長を取得する。

 
備考

状態が、再生準備中(ADXT_STAT_PREP)から再生終了(ADXT_STAT_PLAYEND)までの間のみ取得可能。

 
[メニュー]
ADXT_GetInputSj
入力ストリームジョイントの取得
 
書式
SJ ADXT_GetInputSj(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

ストリームジョイントハンドル

 
説明

入力用ストリームジョイントを取得する。

 
[メニュー]
ADXT_GetNumSctIbuf
入力バッファ内のセクタ数の取得
 
書式
Sint32 ADXT_GetNumSctIbuf(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

セクタ数

 
説明

入力バッファに読み込まれているセクタ数を取得する。

 
[メニュー]
ADXT_GetIbufRemainTime
入力バッファ内再生時間の取得
 
書式
float ADXT_GetIbufRemainTime(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

再生可能時間(秒単位)

 
説明

入力バッファにあるデータで再生可能な時間を取得する。ADXデータのみ対応。

 
[メニュー]
ADXT_IsIbufSafety
入力バッファ内のデータ量のチェック
 
書式
Sint32 ADXT_IsIbufSafety(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

1=十分なデータがある、0=データ不足

 
説明

入力バッファに十分なデータがあるかどうかをチェックする。

ADXT_SetReloadSct関数によって指定された再読み込み開始セクタ数以上のデータが入力バッファ内にある場合、1が返される。

 
[メニュー]
ADXT_GetNumSmplObuf
出力バッファ内のサンプル数の取得
 
書式
Sint32 ADXT_GetNumSmplObuf(ADXT adxt, Sint32 chno);
 
入力

adxt : ADXTハンドル

chno : チャンネル番号

 
出力

なし

 
戻り値

サンプル数

 
説明

出力バッファ内のサンプル数を取得する。

 
[メニュー]
ADXT_GetStatRead
ファイル読み込み状態の取得
 
書式
Sint32 ADXT_GetStatRead(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

1=読み込み中、0=読み込み停止中

 
説明

ファイルの読み込み状態を取得します。

 
[メニュー]
ADXT_IsReadyPlayStart
音声出力開始準備の完了チェック
 
書式
Sint32 ADXT_IsReadyPlayStart(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

1=準備完了、0=準備中

 
説明

音声出力開始の準備が完了しているかどうかを判定する。

 
[メニュー]
ADXT_IsCompleted
再生終了のチェック
 
書式
Sint32 ADXT_IsCompleted(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

1=再生終了、0=再生中

 
説明

再生が終了したかどうかを調べる。

 
[メニュー]
ADXT_SetReloadTime
再読み込み開始時間の設定
 
書式
void ADXT_SetReloadTime(ADXT adxt,float time,Sint32 nch,Sint32 sfreq);
 
入力

adxt : ADXTハンドル

time : 再読み込み開始時間

nch : チャンネル数

sfreq : サンプリング周波数

 
出力

なし

 
戻り値

なし

 
説明

入力バッファへの再読み込み開始時間を設定する。

入力バッファ内のデータ量がtime秒より少なくなるとディスクからデータを読み込む。

 
[メニュー]
ADXT_SetReloadSct
再読み込み開始セクタ数の設定
 
書式
void ADXT_SetReloadSct(ADXT adxt, Sint32 minsct);
 
入力

adxt : ADXTハンドル

minsct : 再読み込み開始セクタ数

 
出力

なし

 
戻り値

なし

 
説明

入力バッファへの再読み込み開始セクタ数を設定する。

入力バッファ内のデータ量がminsctセクタより少なくなるとディスクからデータを読み込む。

 
[メニュー]
ADXT_SetNumRetry
リトライ回数の設定
 
書式
void ADXT_SetNumRetry(Sint32 num);
 
入力

num : リトライ回数(-1=無限リトライ)

 
出力

なし

 
戻り値

なし

 
説明

ハードウェアとは無関係に、ADX内部でリトライする回数を設定します。

 
[メニュー]
ADXT_GetNumRetry
リトライ設定値の取得
 
書式
Sint32 ADXT_SetNumRetry(void);
 
入力

なし

 
出力

なし

 
戻り値

リトライ設定値(-1=無限リトライ)

 
説明

ADXT_SetNumRetry関数で設定したリトライ回数を取得します。

 
[メニュー]
ADXT_GetNumErr
エラー回数の取得
 
書式
Sint32 ADXT_GetNumErr(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

エラー回数

 
説明

リードリトライを必要とするエラーの発生回数を取得します。

 
[メニュー]
ADXT_SetDefSvrFreq
サーバ関数の呼び出し頻度の設定
 
書式
void ADXT_SetDefSvrFreq(Sint32 freq);
 
入力

freq : サーバ関数の呼び出し頻度 (1秒当たりの呼び出し回数)

 
出力

なし

 
戻り値

なし

 
説明

サーバ関数(ADXT_ExecServer関数)の呼び出し頻度を設定します。

この関数によりサーバ関数が一回にデコードする量を制御できます。

デフォルトでは、60(Vsync)が設定されています。

 
備考

サーバ関数はVsync割り込みで呼び出されるので、この関数を使用する必要はありません。

 
[メニュー]
ADXT_SetSvrFreq
サーバ関数の呼び出し頻度の設定(ハンドル単位)
 
書式
void ADXT_SetSvrFreq(ADXT adxt, Sint32 freq);
 
入力

adxt : ADXTハンドル

freq : サーバ関数の呼び出し頻度 (1秒当たりの呼び出し回数)

 
出力

なし

 
戻り値

なし

 
説明

サーバ関数(ADXT_ExecServer関数)の呼び出し頻度を設定します。

この関数によりサーバ関数が一回にデコードする量を制御できます。

デフォルトでは、60(Vsync)が設定されています。

 
備考

サーバ関数はVsync割り込みで呼び出されるので、この関数を使用する必要はありません。

 
[メニュー]
ADXT_ExecServer
サーバ関数(内部状態の更新)

[書 式]void ADXT_ExecServer(void);

 
入力

なし

 
出力

なし

 
戻り値

なし

 
説明

ライブラリの内部状態を更新し、デコード処理を行います。

 
備考

Vsyncスレッドに登録されるため、アプリケーションから呼び出す必要はありません。

 
[メニュー]
ADXT_ExecHndl
ハンドル単位のサーバ関数
 
書式
void ADXT_ExecHndl(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

なし

 
説明

ハンドルの内部状態を更新する。

 
備考

ADXT_ExecServer関数内で実行されるため、アプリケーションから呼び出す必要はありません。

 
[メニュー]
ADXT_GetErrCode
エラーコードの取得
 
書式
Sint32 ADXT_GetErrCode(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

エラーコード

 
説明

エラーコードを取得する。

この値は、ADXT_ClearErrCode関数でクリアするまで保持されます。

エラーコード表

定義名定数値エラー状態
ADXT_ERR_OK0正常
ADXT_ERR_SHRTBUF1入力バッファにデータが供給されない。リードエラー時に発生。
ADXT_ERR_SNDBLK2サウンドブロックエラー。サウンドブロックが停止している。
 
[メニュー]
ADXT_ClearErrCode
エラーコードのクリア
 
書式
void ADXT_ClearErrCode(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

なし

 
説明

エラーコードをクリアする。

 

/* 48KHzのモノラルデータを1ストリームだけ再生する場合 */
#define WKSIZE ADXT_CALC_WORK(1, ADXT_PLY_STM, 1, 48000)

Uint8 *work[WKSIZE]; /* 作業領域 */ ADXT adxt; /* ADXTハンドル */ Sint32 errcode; /* エラーコード */
/* ADXTハンドルの生成 */ adxt = ADXT_Create(1, work, WKSIZE); /* 再生開始 */ ADXT_StartFname(adxt, "srf01.adx");
for (;;) {   /* エラーコードの取得 */   errcode = ADXT_GetErrCode(adxt);   if (errcode != ADXT_ERR_OK) {     /* エラーコードのクリア */     ADXT_ClearErrCode(adxt);     ADXT_Stop(adxt);   }
  /* サーバ処理 */   ADXM_ExecMain(); }
 
[メニュー]
ADXT_EntryFname
シームレス連続再生ファイルの登録
 
書式
void ADXT_EntryFname(ADXT adxt, const Char8 *fname);
 
入力

adxt : ADXTハンドル

fname : 音声ファイル名

 
出力

なし

 
戻り値

なし

 
説明

fnameに指定された音声ファイルをシームレス連続再生用のファイルとして登録します。ループ設定のないADXデータのみ登録できます。

 

/* ADXハンドルの生成 */
adxt = ADXT_Create(2, work, WKSIZE); 

/* 再生する音声データの登録 */ ADXT_EntryFname(adxt, "smpsl1.adx"); ADXT_EntryFname(adxt, "smpsl2.adx"); ADXT_EntryFname(adxt, "smpsl3.adx");
/* シームレスループ再生の設定 */ ADXT_SetSeamlessLp(adxt, 1);
/* シームレス連続再生の開始 */ ADXT_StartSeamless(adxt);
 
[メニュー]
ADXT_EntryFnameRange
シームレス連続再生ファイルの登録(範囲指定)
 
書式
void ADXT_EntryFnameRange(ADXT adxt, const Char8 *fname, Sint32 ofst_sct, Sint32 range_sct);
 
入力

adxt : ADXTハンドル

fname : 音声ファイル名

offset_sct : ファイル内のオフセット(セクタ単位)

range_sct : 範囲(セクタ単位)

 
出力

なし

 
戻り値

なし

 
説明

fnameに指定された音声ファイルを範囲指定付きでシームレス連続再生用のファイルとして登録します。ループ設定のないADXデータのみ登録できます。

 
[メニュー]
ADXT_EntryAfs
シームレス連続再生サブファイルの登録
 
書式
void ADXT_EntryAfs(ADXT adxt, Sint32 patid, Sint32 fid);
 
入力

adxt : ADXTハンドル

patid : パーティションID

fid : ファイルID

 
出力

なし

 
戻り値

なし

 
説明

patidに指定されたパーティション内のfidに指定されたADXファイルをシームレス連続再生用のファイルとして登録します。ループ設定のないADXデータのみ登録できます。

 

#define PATID    (0)    /* パーティションID */

/* パーティション情報の読み込み */ ADXF_LoadPartitionNw(PATID, "pat01.afs", NULL, ptinfo);
for (;;) {   /* パーティション情報読み込み状態の取得 */   stat = ADXF_GetPtStat(PATID);   if (stat == ADXF_STAT_READEND) {     break;   }
  /* サーバ処理 */   ADXM_ExecMain(); }
/* ADXTハンドルの生成 */ adxt = ADXT_Create(2, work, WKSIZE);
/* 再生する音声データの登録 */ ADXT_EntryFname(adxt, PATID, 0); ADXT_EntryFname(adxt, PATID, 1); ADXT_EntryFname(adxt, PATID, 2);
/* シームレスループ再生の設定 */ ADXT_SetSeamlessLp(adxt, 1);
/* シームレス連続再生の開始 */ ADXT_StartSeamless(adxt);
 
[メニュー]
ADXT_ResetEntry
ファイル登録のリセット
 
書式
void ADXT_ResetEntry(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

なし

 
説明

ファイルの登録をリセットする。

 
備考

状態が、再生停止中(ADXT_STAT_STOP)の場合のみ使用可能。

 
[メニュー]
ADXT_StartSeamless
シームレス連続再生の開始
 
書式
void ADXT_StartSeamless(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

なし

 
説明

シームレス連続再生を開始します。

 
[メニュー]
ADXT_StartFnameLp
シームレスループ再生の開始
 
書式
void ADXT_StartFnameLp(ADXT adxt, const Char8 *fname);
 
入力

adxt : ADXTハンドル

fname : 音声ファイル名

 
出力

なし

 
戻り値

なし

 
説明

指定された音声ファイルを繰り返し再生します。

 
[メニュー]
ADXT_StartFnameRangeLp
シームレスループ再生の開始(範囲指定)
 
書式
void ADXT_StartFnameRangeLp(ADXT adxt, const Char8 *fname, Sint32 ofst_sct, Sint32 range_sct);
 
入力

adxt : ADXTハンドル

fname : 音声ファイル名

offset_sct : ファイル内のオフセット(セクタ単位)

range_sct : 範囲(セクタ単位)

 
出力

なし

 
戻り値

なし

 
説明

指定された音声ファイル(範囲指定付き)を繰り返し再生します。

 
[メニュー]
ADXT_SetSeamlessLp
シームレスループ再生の設定
 
書式
void ADXT_SetSeamlessLp(ADXT adxt, Sint32 flg);
 
入力

adxt : ADXTハンドル

flg : 0=ループ再生しない、1=ループ再生する。

 
出力

なし

 
戻り値

なし

 
説明

シームレスループ再生の設定を行います。

 
[メニュー]
ADXT_ReleaseSeamless
シームレス連続再生の解除
 
書式
void ADXT_ReleaseSeamless(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

なし

 
説明

シームレス連続再生を解除します。

 
[メニュー]
ADXT_GetNumFiles
登録ファイル数の取得
 
書式
void ADXT_GetNumFiles(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

なし

 
説明

登録されているファイルの数を取得します。

 
[メニュー]
ADXT_AttachAhx
AHX再生機能の組み込み
 
書式
void ADXT_AttachAhx(ADXT adxt, void *work, Sint32 worksize);
 
入力

adxt : ADXTハンドル

work : AHXワーク領域

worksize: AHXワーク領域のサイズ

 
出力

なし

 
戻り値

なし

 
説明

AHX再生機能の組み込みを行い、AHXの利用を可能にします。

 
[メニュー]
ADXT_DetachAhx
AHX再生機能の分離
 
書式
void ADXT_DetachAhx(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

なし

 
説明

AHX再生機能を分離し、AHXの利用をやめます。

 

/* 作業領域サイズ */
#define ADXWKSZ ADXT_CALC_WORK(2, ADXT_PLY_STM, 1, 48000)
#define AHXWKSZ ADXT_WORKSIZE_AHX

Uint8 adxwk[ADXWKSZ]; /* ADX作業領域 */ Uint8 ahxwk[AIXWKSZ]; /* AHX作業領域 */ ADXT adxt; /* ADXTハンドル */
/* ADXTハンドルの生成 */ adxt = ADXT_Create(2, adxwk, ADXWKSZ); /* AHX再生機能の組み込み */ ADXT_AttachAhx(adxt, ahxwk, AHXWKSZ);   : /* AHX再生機能の分離 */ ADXT_DetachAhx(adxt); /* ADXTハンドルの消去 */ ADXT_Destroy(adxt);
 
[メニュー]
ADXT_SetDefKeyString
キーコードの設定
 
書式
void ADXT_SetDefKeyString(Char8 *str);
 
入力

str : キーコード文字列

 
出力

なし

 
戻り値

なし

 
説明

デフォルトのキーコードを設定します。エンコード時に入力したキーコードと同じ文字列を入力してください。エンコード時と異なるキーコードを入力すると、ノイズになって再生されます。

暗号化されていないADXデータを再生する場合はstrにNULLを指定します。

 

/* キーコードの設定 */
ADXT_SetDefKeyString("CRI");

  : /* ADXTハンドルの生成 */ adxt = ADXT_Create(2, work, WKSIZE);
/* 再生の開始 */ ADXT_StartFname(adxt, "MUSIC.ADX");   :
 
[メニュー]
ADXT_SetKeyString
ハンドル毎のキーコードの設定
 
書式
void ADXT_SetKeyString(ADXT adxt, Char8 *str);
 
入力

adxt : ADXTハンドル

str : キーコード文字列

 
出力

なし

 
戻り値

なし

 
説明

ハンドル単位にキーコードを設定します。エンコード時に入力したキーコードと同じ文字列を入力してください。エンコード時と異なるキーコードを入力すると、ノイズになって再生されます。

暗号化されていないADXデータを再生する場合はstrにNULLを指定します。

 

/* ADXTハンドルの生成 */
adxt = ADXT_Create(2, work, WKSIZE);

/* キーコードの設定 */ ADXT_SetKeyString(adxt, "CRI");
/* 再生の開始 */ ADXT_StartFname(adxt, "MUSIC.ADX");   :
 
[メニュー]
ADXT_GetDefOutVol
デフォルト出力ボリュームの取得
 
書式
Sint32 ADXT_GetDefOutVol(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

デフォルト出力ボリューム(0:-0dB 〜 -960:-96.0dB)

 
説明

ADXデータ内に含まれるデフォルト出力ボリュームを取得します。

 
[メニュー]
ADXT_GetDefOutPan
デフォルトパンポットの取得
 
書式
Sint32 ADXT_GetDefOutPan(ADXT adxt Sint32 chno);
 
入力

adxt : ADXTハンドル

chno : チャンネル番号

   ADXT_CH_L(0):左チャンネル, ADXT_CH_R(1):右チャンネル

 
出力

なし

 
戻り値

デフォルトパンポットの設定値(-15〜+15)

 
説明

ADXデータ内に含まれるデフォルトパンポットを取得します。

 
[メニュー]
ADXT_GetDataId
データ識別文字列の取得
 
書式
Char8 *ADXT_GetDataId(ADXT adxt);
 
入力

adxt : ADXTハンドル

 
出力

なし

 
戻り値

データ識別文字列

 
説明

ADXデータ内に含まれるデータ識別文字列を取得します。

 
[メニュー]
ADXT_Create3D
サラウンド対応ADXTハンドルの生成
 
書式
ADXT ADXT_Create3D(void *work, Sint32 worksize);
 
入力

work : 作業領域

worksize : 作業領域サイズ

 
出力

なし

 
戻り値

生成された ADXT の構造体へのポインタ(ADXTハンドル)

 
説明

サラウンドパンに対応したADXTハンドルを生成します。

 
備考

作業領域サイズの計算にはADXT_CALC_WORK_3Dマクロを使用します。

 
[メニュー]
ADXT_SetOutPos
音源位置の設定
 
書式
Sint32 ADXT_SetOutPos(ADXT adxt, Sint32 x, Sint32 y);
 
入力

adxt : ADXTハンドル

x : x座標(-127:左〜0:中央〜+127:右)

y : y座標(-127:前〜0:中央〜+127:後)

 
出力

なし

 
戻り値

なし

 
説明

音源の位置を設定します。

 
備考

この関数はADXT_Create3D関数を使用して作成されたADXTハンドルに対してのみ有効です。また、パンニングが行われるのはモノラルのADXファイルを再生した場合のみです(ステレオのADXファイルに対してパンニングは行えません)。

※後方にパンを振った音を確認する際には、Dolby DigitalまたはDolby Pro Logic IIに対応した機器をご使用ください。

 
[メニュー]
ADXM_SetupThrd
ADXスレッドシステムのセットアップ
 
書式
void ADXM_SetupThrd(ADXM_TPRM *tprm);
 
入力

tprm: ADXマネージャセットアップパラメータ構造体

 
出力

なし

 
戻り値

なし

 
説明

ADXスレッドシステムをセットアップします。スレッドを生成して、ADXのサーバ関数をVsyncスレッドに登録します。

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

 

/* スレッドのセットアップ */
ADXM_SetupThrd(NULL);
/* ADXライブラリの初期化 */
ADXT_Init();
  :
for (;;) {
    :
  /* Vsync待ち */
  ADXM_WaitVsync();

  /* サーバ処理 */   ADXM_ExecMain();     : }
 
注意

本関数は旧バージョンとの互換性のためだけに用意されています。最新版のADXライブラリでは、ADXM_SetupThrd関数の代わりに、ADXM_SetupFramework関数をご利用ください。

 
[メニュー]
ADXM_ShutdownThrd
ADXスレッドシステムのシャットダウン
 
書式
void ADXM_ShutdownThrd(void);
 
入力

なし

 
出力

なし

 
戻り値

なし

 
説明

ADXスレッドシステムをシャットダウンします。ADXM_SetupThrd関数で生成したスレッドを消去します。

 
注意

本関数は旧バージョンとの互換性のためだけに用意されています。最新版のADXライブラリでは、ADXM_ShutdownThrd関数の代わりに、ADXM_ShutdownFramework関数をご利用ください。

 
[メニュー]
ADXM_ExecMain
Vsyncサーバ関数
 
書式
Sint32 ADXM_ExecMain(void);
 
入力

なし

 
出力

なし

 
戻り値

なし

 
説明

ADXの内部状態を更新します。フレームワークの種別によって内部の動作が異なります。

・マルチスレッド動作時

必ずしもVsync毎に実行される必要はないが、定期的に実行しなければならない処理が実行されます。(必ずVsync毎に実行しなければならない処理はVsyncスレッドで実行されます。)

・シングルスレッド動作時

ADXのサーバ処理内の全てが実行されます。

 
備考

フレームワークの詳細については、ADXM_SetupFramework関数をご参照ください。

 

/* フレームワークのセットアップ */
ADXM_SetupFramework(ADXM_FRAMEWORK_DEFAULT, NULL);
/* ADXライブラリの初期化 */
ADXT_Init();
    :
for (;;) {
        :
    /* Vsync待ち */
    ADXM_WaitVsync();

/* サーバ処理 */ ADXM_ExecMain(); : }
 
[メニュー]
ADXM_WaitVsync
Vsync待ち
 
書式
void ADXM_WaitVsync(void);
 
入力

なし

 
出力

なし

 
戻り値

なし

 
説明

次のVsyncを待ちます。待っている間、メインスレッドをスリープさせ、アイドルスレッドに処理時間を渡します。

Sofdec再生中の場合、この関数実行中にアイドルスレッドでSofdecのデコード処理を行います。

 

/* フレームワークのセットアップ */
ADXM_SetupFramework(ADXM_FRAMEWORK_DEFAULT, NULL);
/* ADXライブラリの初期化 */
ADXT_Init();
    :
for (;;) {
        :
    /* Vsync待ち */
    ADXM_WaitVsync();

/* サーバ処理 */ ADXM_ExecMain(); : }
 
注意

シングルスレッド動作時(ADXM_SetupFramework関数でシングルスレッドのフレームワークを選択した場合)は、本関数を使用しないでください。

 
[メニュー]
ADXM_SetCbErr
エラーコールバック関数の設定
 
書式
void ADXM_SetCbErr(void (*func)(void *obj, Char8 *emsg), void *obj);
 
入力

func : ユーザのコールバック関数

obj : コールバック関数の第1引数

 
出力

なし

 
戻り値

なし

 
説明

エラーコールバック関数を登録します。

エラーが発生すると登録されたコールバック関数が以下の形式で呼び出されます。

void (*func)(void *obj, Char8 *emsg);

また、エラーコールバック関数が呼び出された場合、第2引数emsgにはエラーメッセージが渡されます。この関数は、デバッグ用の関数ですので、アプリケーションのマスターアップ時には、何もしない関数に置き換えてください。

 

/* エラーコールバック関数 */
void user_adx_error(void *obj, Char8 *emsg)
{
  /* デバッグ時はここで処理を止めて不具合の原因を調査する */
  …
}

/* メイン関数 */ void main(void) {   /* エラーコールバック関数の登録 */   ADXM_SetCbErr(user_adx_error, NULL);     : }

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