Class CriAtomExAcb
ACBオブジェクト
Implements
Inherited Members
Namespace: CriWare
Assembly: CriWare.CriAtom.dll
Syntax
public class CriAtomExAcb : IDisposable
Remarks
説明: キューシート情報を管理するオブジェクトです。 LoadAcbFile(CriFsBinder, ArgString, CriFsBinder, ArgString, IntPtr, int) 関数等で読み込んだキューシートファイル内の 音声を再生する場合、本オブジェクトとキューIDをプレーヤーに対してセットします。
Properties
DetectionInGamePreviewDataCallback
コールバックイベントオブジェクト
Declaration
public static CriAtomExAcb.DetectionInGamePreviewDataCbFunc DetectionInGamePreviewDataCallback { get; }
Property Value
Type | Description |
---|---|
CriAtomExAcb.DetectionInGamePreviewDataCbFunc |
See Also
NativeHandle
ネイティブハンドル
Declaration
public NativeHandleIntPtr NativeHandle { get; }
Property Value
Type | Description |
---|---|
NativeHandleIntPtr |
Methods
AttachAwbFile(CriFsBinder, ArgString, ArgString, IntPtr, int)
ストリーム用AWBファイルのアタッチ
Declaration
public void AttachAwbFile(CriFsBinder awbBinder, ArgString awbPath, ArgString awbName, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | awbBinder | AWBファイルを含むバインダーのオブジェクト |
ArgString | awbPath | AWBファイルのパス |
ArgString | awbName | AWB名 |
IntPtr | work | アタッチで必要な追加ワーク |
int | workSize | 追加ワークサイズ |
Remarks
説明: ACBオブジェクトに対してストリーム用のAWBファイルをアタッチします。 第2引数の awb_binder 、および第3引数の awb_path には、ストリーム再生用 のAWBファイルを指定します。 第5引数の awb_name はAWBをアタッチするスロットを指定するために使用します。 このため、AtomCraftが出力したAWB名(ファイル名から拡張子を取り除いた部分)を変更している場合 はオリジナルのAWB名を指定してください。 AWBファイルのアタッチを行うには、ライブラリが内部で利用するためのメモリ領域 (ワーク領域)を確保する必要があります。 AWBファイルのアタッチに失敗した場合、エラーコールバックが発生します。 失敗の理由については、エラーコールバックのメッセージで確認可能です。
備考: ワーク領域を確保する方法には、以下の2通りの方法があります。 (a) User Allocator方式:メモリの確保/解放に、ユーザが用意した関数を使用する方法。 (b) Fixed Memory方式:必要なメモリ領域を直接ライブラリに渡す方法。 User Allocator方式を用いる場合、ユーザがワーク領域を用意する必要はありません。 workにnull、work_sizeに0を指定するだけで、必要なメモリを登録済みのメモリ確保関数から確保します。 アタッチ時に確保されたメモリは、デタッチ時( DetachAwbFile(ArgString) 関数実行時)か、ACBオブジェクトリリース時( Dispose() 関数実行時)に解放されます。 Fixed Memory方式を用いる場合、ワーク領域として別途確保済みのメモリ領域を本関数に 設定する必要があります。 ワーク領域のサイズは CalculateWorkSizeForAttachAwbFile(CriFsBinder, ArgString) 関数で取得可能です。 本関数呼び出し時に CalculateWorkSizeForAttachAwbFile(CriFsBinder, ArgString) 関数で取得した サイズ分のメモリを予め確保しておき、本関数に設定してください。 尚、Fixed Memory方式を用いた場合、ワーク領域はデタッチ処理( DetachAwbFile(ArgString) 関数実行時)か、ACBオブジェクトリリース処理( Dispose() 関数実行時)を行うまでの間、 ライブラリ内で利用され続けます。 AWBファイルをアタッチするとライブラリ内部的にバインダー( CriFsBinder )とローダー( CriFsLoader ) を確保します。 追加でAWBファイルをアタッチする場合、追加数分のバインダーとローダーが確保できる設定で Atomライブラリ(またはCRI File Systemライブラリ)を初期化する必要があります。
備考: データがCPKにパックされていない場合、引数binderにはnullを指定してください。
See Also
CalculateWorkSizeForAttachAwbFile(CriFsBinder, ArgString)
ストリーム用AWBファイルのアタッチに必要なワークサイズ取得
Declaration
public static int CalculateWorkSizeForAttachAwbFile(CriFsBinder awbBinder, ArgString awbPath)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | awbBinder | AWBファイルを含むバインダーのオブジェクト |
ArgString | awbPath | AWBファイルのパス |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: LoadAcbFileById(CriFsBinder, ushort, CriFsBinder, ushort, IntPtr, int) 関数の実行に必要なワーク領域サイズを計算します。
備考: データがCPKにパックされていない場合、引数binderにはnullを指定してください。
See Also
CalculateWorkSizeForLoadAcbData(IntPtr, int, CriFsBinder, ArgString)
オンメモリACBデータのロードに必要なワーク領域サイズの計算
Declaration
public static int CalculateWorkSizeForLoadAcbData(IntPtr acbData, int acbDataSize, CriFsBinder awbBinder, ArgString awbPath)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | acbData | ACBデータアドレス |
int | acbDataSize | ACBデータサイズ |
CriFsBinder | awbBinder | AWBファイルを含むバインダーのオブジェクト |
ArgString | awbPath | AWBファイルのパス |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: LoadAcbData(ReadOnlySpan<byte>, CriFsBinder, ArgString) 関数の実行に必要なワーク領域サイズを計算します。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドによるアロケーター登録を行わずに LoadAcbData(ReadOnlySpan<byte>, CriFsBinder, ArgString) 関数でAWBデータをロードする際には、 本関数が返すサイズ分のメモリをワーク領域として渡す必要があります。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: データがCPKにパックされていない場合、引数binderにはnullを指定してください。
注意: ワーク領域のサイズはライブラリ初期化時( Initialize(in Config, IntPtr, int) 関数実行時) に指定したパラメーターによって変化します。 そのため、本関数を実行する前に、ライブラリを初期化しておく必要があります。
See Also
CalculateWorkSizeForLoadAcbDataById(IntPtr, int, CriFsBinder, ushort)
オンメモリACBデータのロードに必要なワーク領域サイズの計算(CPKコンテンツID指定)
Declaration
public static int CalculateWorkSizeForLoadAcbDataById(IntPtr acbData, int acbDataSize, CriFsBinder awbBinder, ushort awbId)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | acbData | ACBデータアドレス |
int | acbDataSize | ACBデータサイズ |
CriFsBinder | awbBinder | AWBファイルを含むバインダーのオブジェクト |
ushort | awbId | CPKファイル内のAWBデータのID |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: LoadAcbDataById(IntPtr, int, CriFsBinder, ushort, IntPtr, int) 関数の実行に必要なワーク領域サイズを計算します。 ファイルパスの代わりにCPKコンテンツIDを指定する点を除けば、 CalculateWorkSizeForLoadAcbData(IntPtr, int, CriFsBinder, ArgString) 関数と機能は同じです。
備考: データがCPKにパックされていない場合、引数binderにはnullを指定してください。
See Also
CalculateWorkSizeForLoadAcbFile(CriFsBinder, ArgString, CriFsBinder, ArgString)
ACBファイルのロードに必要なワーク領域サイズの計算
Declaration
public static int CalculateWorkSizeForLoadAcbFile(CriFsBinder acbBinder, ArgString acbPath, CriFsBinder awbBinder, ArgString awbPath)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | acbBinder | ACBファイルを含むバインダーのオブジェクト |
ArgString | acbPath | ACBファイルのパス |
CriFsBinder | awbBinder | AWBファイルを含むバインダーのオブジェクト |
ArgString | awbPath | AWBファイルのパス |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: LoadAcbFile(CriFsBinder, ArgString, CriFsBinder, ArgString, IntPtr, int) 関数の実行に必要なワーク領域サイズを計算します。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドによるアロケーター登録を行わずに LoadAcbFile(CriFsBinder, ArgString, CriFsBinder, ArgString, IntPtr, int) 関数でACBファイルをロードする際には、 本関数が返すサイズ分のメモリをワーク領域として渡す必要があります。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
注意: ワーク領域のサイズはライブラリ初期化時( Initialize(in Config, IntPtr, int) 関数実行時) に指定したパラメーターによって変化します。 そのため、本関数を実行する前に、ライブラリを初期化しておく必要があります。 本関数は、関数実行開始時に CriFsLoader(IntPtr) 関数でローダーを確保し、 終了時に Dispose() 関数でローダーを破棄します。 本関数を実行する際には、空きローダーオブジェクトが1つ以上ある状態になるよう、 ローダー数を調整してください。 本関数は完了復帰型の関数です。 ACBファイルのロードにかかる時間は、プラットフォームによって異なります。 ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。 ACBファイルのロードは、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
See Also
CalculateWorkSizeForLoadAcbFileById(CriFsBinder, ushort, CriFsBinder, ushort)
ACBファイルのロードに必要なワーク領域サイズの計算(CPKコンテンツID指定)
Declaration
public static int CalculateWorkSizeForLoadAcbFileById(CriFsBinder acbBinder, ushort acbId, CriFsBinder awbBinder, ushort awbId)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | acbBinder | ACBファイルを含むバインダーのオブジェクト |
ushort | acbId | CPKファイル内のACBデータのID |
CriFsBinder | awbBinder | AWBファイルを含むバインダーのオブジェクト |
ushort | awbId | CPKファイル内のAWBデータのID |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: LoadAcbFileById(CriFsBinder, ushort, CriFsBinder, ushort, IntPtr, int) 関数の実行に必要なワーク領域サイズを計算します。 ファイルパスの代わりにCPKコンテンツIDを指定する点を除けば、 CalculateWorkSizeForLoadAcbFile(CriFsBinder, ArgString, CriFsBinder, ArgString) 関数と機能は同じです。
備考: データがCPKにパックされていない場合、引数binderにはnullを指定してください。
See Also
DetachAwbFile(ArgString)
ストリーム用AWBファイルのデタッチ
Declaration
public void DetachAwbFile(ArgString awbName)
Parameters
Type | Name | Description |
---|---|---|
ArgString | awbName | AWB名 |
Remarks
説明: ACBオブジェクトにアタッチされているストリーム用のAWBファイルをデタッチします。 第2引数の awb_name はAWBをアタッチ時に指定したものと同じAWB名を指定指定ください。 アタッチ時のワーク領域確保にUser Allocator方式を用いた場合は、アタッチ時に確保したメモリ領域が 本関数処理時に開放されます。
See Also
Dispose()
ACBオブジェクトのリリース
Declaration
public void Dispose()
Remarks
説明: ACBオブジェクトを解放します。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 ACBオブジェクト作成時に確保されたメモリ領域が解放されます。 (ACBオブジェクト作成時にワーク領域を渡した場合、本関数実行後であれば ワーク領域を解放可能です。)
備考: 本関数でACBオブジェクトを破棄する際には、 当該ACBオブジェクトを参照しているキューは全て停止されます。 (本関数実行後に、ACBオブジェクトの作成に使用したワーク領域や、 ACBデータが配置されていた領域が参照されることはありません。)
注意: 本関数を実行すると、破棄しようとしているACBデータを参照している Atomプレーヤーの存在を検索する処理が動作します。 そのため、本関数実行中に他スレッドでAtomプレーヤーの作成/破棄を行うと、 アクセス違反やデッドロック等の重大な不具合を誘発する恐れがあります。 本関数実行時にAtomプレーヤーの作成/破棄を他スレッドで行う必要がある場合、 Atomプレーヤーの作成/破棄を Lock() 関数でロックしてから実行ください。
See Also
EnumerateHandles(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, NativeBool>, IntPtr)
ACBオブジェクトの列挙
Declaration
public static int EnumerateHandles(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, NativeBool> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, IntPtr, NativeBool> | func | ACBオブジェクトコールバック関数 |
IntPtr | obj | ユーザ指定オブジェクト |
Returns
Type | Description |
---|---|
int | 列挙されたACBオブジェクトの数 |
Remarks
説明: ACBオブジェクトを列挙します。 本関数を実行すると、第 1 引数( func ) でセットされたコールバック関数がACBオブジェクトの数分だけ呼び出されます。 コールバック関数には、ACBオブジェクトが引数として渡されます。
備考: 第 2 引数( obj )にセットした値は、コールバック関数の引数として渡されます。 コールバック関数のその他の引数については、 別途 CriAtomExAcb.HandleCbFunc の説明をご参照ください。 戻り値は列挙されたACBオブジェクトの数(登録したコールバック関数が呼び出された回数)です。 (初回コールバック時に列挙を中止した場合でも 1 が返されます。) ACBオブジェクトが存在しない場合、本関数は 0 を返します。 また、引数が不正な場合等、エラーが発生した際には -1 を返します。
注意: ACBオブジェクトをコールバック関数内で破棄してはいけません。 全てのACBオブジェクトを一括で破棄する場合には、本関数の代わりに、 ReleaseAll() 関数を使用してください。
See Also
ExistsId(int)
キューの存在確認(キューID指定)
Declaration
public bool ExistsId(int id)
Parameters
Type | Name | Description |
---|---|---|
int | id | キューID |
Returns
Type | Description |
---|---|
bool | キューが存在するかどうか(存在する:true/存在しない:false) |
Remarks
説明: 指定したIDのキューが存在するかどうかを取得します。 存在した場合にはtrueを返します。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータが検索対象となります。 (指定したIDを持つACBデータが1つでも存在すれば、本関数は true を返します。)
ExistsIndex(int)
キューの存在確認(キューインデックス指定)
Declaration
public bool ExistsIndex(int index)
Parameters
Type | Name | Description |
---|---|---|
int | index | キューインデックス |
Returns
Type | Description |
---|---|
bool | キューが存在するかどうか(存在する:true/存在しない:false) |
Remarks
説明: 指定したインデックスのキューが存在するかどうかを取得します。 存在した場合にはtrueを返します。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータが検索対象となります。 (指定したキューインデックスを持つACBデータが1つでも存在すれば、本関数は true を返します。)
ExistsName(ArgString)
キューの存在確認(キュー名指定)
Declaration
public bool ExistsName(ArgString name)
Parameters
Type | Name | Description |
---|---|---|
ArgString | name | キュー名 |
Returns
Type | Description |
---|---|
bool | キューが存在するかどうか(存在する:true/存在しない:false) |
Remarks
説明: 指定した名前のキューが存在するかどうかを取得します。 存在した場合にはtrueを返します。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータが検索対象となります。 (指定したキュー名を持つACBデータが1つでも存在すれば、本関数は true を返します。)
GetAcbInfo(out Info)
ACB情報の取得
Declaration
public bool GetAcbInfo(out CriAtomExAcb.Info acbInfo)
Parameters
Type | Name | Description |
---|---|---|
CriAtomExAcb.Info | acbInfo | ACB情報 |
Returns
Type | Description |
---|---|
bool | 情報が取得できたかどうか?(取得できた:true/取得できない:false) |
Remarks
説明: ACBデータの各種情報を取得します。
備考: 引数( acb_hn )に null を指定した場合、最後にロードしたACBデータを処理対象とします。
See Also
GetAwbFileSlotName(ushort)
ストリーム用AWBスロットの取得
Declaration
public NativeString GetAwbFileSlotName(ushort index)
Parameters
Type | Name | Description |
---|---|---|
ushort | index | スロットインデックス |
Returns
Type | Description |
---|---|
NativeString | CriChar8* ストリームAWBポート名 |
Remarks
説明: インデックスを指定してACBオブジェクト内のストリームAWBスロット名を取得します。 取得したスロット名は AttachAwbFile(CriFsBinder, ArgString, ArgString, IntPtr, int) 関数の第4引数や、 DetachAwbFile(ArgString) 関数の第2引数のスロット指定に使用します。
GetBlockIndexById(int, ArgString)
ブロックインデックスの取得(キューID指定)
Declaration
public int GetBlockIndexById(int id, ArgString blockName)
Parameters
Type | Name | Description |
---|---|---|
int | id | キューID |
ArgString | blockName | ブロック名 |
Returns
Type | Description |
---|---|
int | ブロックインデックス |
Remarks
説明: キューIDとブロック名からブロックインデックスを取得します。 指定したキューIDのキューが存在しない場合やブロック名が存在しない場合は、 InvalidBlockIndex が返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキューIDに 合致するデータの存在を検索する処理が動作します。 (指定したキューIDを持つACBデータが見つかった時点で、 当該ACBデータ内のキュー内のブロックインデックスが返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
GetBlockIndexByIndex(int, ArgString)
ブロックインデックスの取得(キューインデックス指定)
Declaration
public int GetBlockIndexByIndex(int index, ArgString blockName)
Parameters
Type | Name | Description |
---|---|---|
int | index | キューインデックス |
ArgString | blockName | ブロック名 |
Returns
Type | Description |
---|---|
int | ブロックインデックス |
Remarks
説明: キューインデックスとブロック名からブロックインデックスを取得します。 指定したキューインデックスのキューが存在しない場合やブロック名が存在しない場合は、 InvalidBlockIndex が返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキューインデックスに 合致するデータの存在を検索する処理が動作します。 (指定したキューインデックスを持つACBデータが見つかった時点で、 当該ACBデータ内のキュー内のブロックインデックスが返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
GetBlockIndexByName(ArgString, ArgString)
ブロックインデックスの取得(キュー名指定)
Declaration
public int GetBlockIndexByName(ArgString name, ArgString blockName)
Parameters
Type | Name | Description |
---|---|---|
ArgString | name | キュー名 |
ArgString | blockName | ブロック名 |
Returns
Type | Description |
---|---|
int | ブロックインデックス |
Remarks
説明: キュー名とブロック名からブロックインデックスを取得します。 指定したキュー名のキューが存在しない場合やブロック名が存在しない場合は、 InvalidBlockIndex が返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキュー名に 合致するデータの存在を検索する処理が動作します。 (指定したキュー名を持つACBデータが見つかった時点で、 当該ACBデータ内のキュー内のブロックインデックスが返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
GetCueIdByIndex(int)
キューIDの取得(キューインデックス指定)
Declaration
public int GetCueIdByIndex(int index)
Parameters
Type | Name | Description |
---|---|---|
int | index | キューインデックス |
Returns
Type | Description |
---|---|
int | キューID |
Remarks
説明: キューインデックスからキューIDを取得します。 指定したキューインデックスのキューが存在しない場合、-1が返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキューインデックスに 合致するデータの存在を検索する処理が動作します。 (指定したキューインデックスを持つACBデータが見つかった時点で、 当該ACBデータ内のキューのIDが返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
GetCueIdByName(ArgString)
キューIDの取得(キュー名指定)
Declaration
public int GetCueIdByName(ArgString name)
Parameters
Type | Name | Description |
---|---|---|
ArgString | name | キュー名 |
Returns
Type | Description |
---|---|
int | キューID |
Remarks
説明: キュー名からキューIDを取得します。 指定したキュー名のキューが存在しない場合、-1が返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキュー名に 合致するデータの存在を検索する処理が動作します。 (指定したキュー名を持つACBデータが見つかった時点で、 当該ACBデータ内のキューのIDが返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
GetCueIndexById(int)
キューインデックスの取得(キューID指定)
Declaration
public int GetCueIndexById(int id)
Parameters
Type | Name | Description |
---|---|---|
int | id | キューID |
Returns
Type | Description |
---|---|
int | キューインデックス |
Remarks
説明: キューIDからキューインデックスを取得します。 指定したキューIDのキューが存在しない場合、-1が返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキューIDに 合致するデータの存在を検索する処理が動作します。 (指定したキューIDを持つACBデータが見つかった時点で、 当該ACBデータ内のキューのインデックスが返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
GetCueIndexByName(ArgString)
キューインデックスの取得(キュー名指定)
Declaration
public int GetCueIndexByName(ArgString name)
Parameters
Type | Name | Description |
---|---|---|
ArgString | name | キュー名 |
Returns
Type | Description |
---|---|
int | キューインデックス |
Remarks
説明: キュー名からキューインデックスを取得します。 指定したキュー名のキューが存在しない場合、-1が返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキュー名に 合致するデータの存在を検索する処理が動作します。 (指定したキュー名を持つACBデータが見つかった時点で、 当該ACBデータ内のキューのインデックスが返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
GetCueInfoById(int, out CueInfo)
キュー情報の取得(キューID指定)
Declaration
public bool GetCueInfoById(int id, out CriAtomEx.CueInfo info)
Parameters
Type | Name | Description |
---|---|---|
int | id | キューID |
CriAtomEx.CueInfo | info | キュー情報 |
Returns
Type | Description |
---|---|
bool | 取得に成功したかどうか(成功:true、失敗:false) |
Remarks
説明: キューIDを指定して、キュー情報を取得します。 指定したキューIDのキューが存在しない場合、falseが返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキュー名に 合致するデータの存在を検索する処理が動作します。 (指定したキュー名を持つACBデータが見つかった時点で、 当該ACBデータ内のキューの情報が返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
See Also
GetCueInfoByIndex(int, out CueInfo)
キュー情報の取得(キューインデックス指定)
Declaration
public bool GetCueInfoByIndex(int index, out CriAtomEx.CueInfo info)
Parameters
Type | Name | Description |
---|---|---|
int | index | キューインデックス |
CriAtomEx.CueInfo | info | キュー情報 |
Returns
Type | Description |
---|---|
bool | 取得に成功したかどうか(成功:true、失敗:false) |
Remarks
説明: キューインデックスを指定して、キュー情報を取得します。 指定したキューインデックスのキューが存在しない場合、falseが返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキュー名に 合致するデータの存在を検索する処理が動作します。 (指定したキュー名を持つACBデータが見つかった時点で、 当該ACBデータ内のキューの情報が返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
See Also
GetCueInfoByName(ArgString, out CueInfo)
キュー情報の取得(キュー名指定)
Declaration
public bool GetCueInfoByName(ArgString name, out CriAtomEx.CueInfo info)
Parameters
Type | Name | Description |
---|---|---|
ArgString | name | キュー名 |
CriAtomEx.CueInfo | info | キュー情報 |
Returns
Type | Description |
---|---|
bool | 取得に成功したかどうか(成功:true、失敗:false) |
Remarks
説明: キュー名を指定して、キュー情報を取得します。 指定したキュー名のキューが存在しない場合、falseが返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキュー名に 合致するデータの存在を検索する処理が動作します。 (指定したキュー名を持つACBデータが見つかった時点で、 当該ACBデータ内のキューの情報が返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
See Also
GetCueNameById(int)
キュー名の取得(キューID指定)
Declaration
public NativeString GetCueNameById(int id)
Parameters
Type | Name | Description |
---|---|---|
int | id | キューID |
Returns
Type | Description |
---|---|
NativeString | CriChar8* キュー名 |
Remarks
説明: キューIDからキュー名を取得します。 指定したキューIDのキューが存在しない場合、nullが返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキューIDに 合致するデータの存在を検索する処理が動作します。 (指定したキューIDを持つACBデータが見つかった時点で、 当該ACBデータ内のキューの名前が返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
GetCueNameByIndex(int)
キュー名の取得(キューインデックス指定)
Declaration
public NativeString GetCueNameByIndex(int index)
Parameters
Type | Name | Description |
---|---|---|
int | index | キューインデックス |
Returns
Type | Description |
---|---|
NativeString | CriChar8* キュー名 |
Remarks
説明: キューインデックスからキュー名を取得します。 指定したキューインデックスのキューが存在しない場合、nullが返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキューインデックスに 合致するデータの存在を検索する処理が動作します。 (指定したキューインデックスを持つACBデータが見つかった時点で、 当該ACBデータ内のキューの名前が返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
GetCuePriorityById(int)
キューに設定されているプライオリティの取得(キューID指定)
Declaration
public int GetCuePriorityById(int id)
Parameters
Type | Name | Description |
---|---|---|
int | id | キューID |
Returns
Type | Description |
---|---|
int | プライオリティ(取得に失敗した場合-1が帰ります) |
Remarks
説明: キューIDを指定して、キューに設定されているプライオリティを取得します。 指定したキューIDのキューが存在しない場合は、-1が返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキューIDに 合致するデータの存在を検索する処理が動作します。 (指定したキューIDを持つACBデータが見つかった時点で、 当該ACBデータ内のキューのプライオリティが返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
See Also
GetCuePriorityByName(ArgString)
キューに設定されているプライオリティの取得(キュー名指定)
Declaration
public int GetCuePriorityByName(ArgString name)
Parameters
Type | Name | Description |
---|---|---|
ArgString | name | キュー名 |
Returns
Type | Description |
---|---|
int | プライオリティ(取得に失敗した場合-1が帰ります) |
Remarks
説明: キュー名を指定して、キューに設定されているプライオリティを取得します。 指定したキュー名のキューが存在しない場合は、-1が返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキュー名に 合致するデータの存在を検索する処理が動作します。 (指定したキュー名を持つACBデータが見つかった時点で、 当該ACBデータ内のキューのプライオリティが返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
See Also
GetLengthById(int)
キューの長さの取得(キューID指定)
Declaration
public long GetLengthById(int id)
Parameters
Type | Name | Description |
---|---|---|
int | id | キューID |
Returns
Type | Description |
---|---|
long | キューの長さ(ミリ秒単位) |
Remarks
説明: キューIDを指定して、キューの長さを取得します。キューの長さはミリ秒単位です。 指定したキューIDのキューが存在しない場合や、無限ループするキューの場合、-1が返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキューIDに 合致するデータの存在を検索する処理が動作します。 (指定したキューIDを持つACBデータが見つかった時点で、 当該ACBデータ内のキューの長さが返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
GetLengthByName(ArgString)
キューの長さの取得(キュー名指定)
Declaration
public long GetLengthByName(ArgString name)
Parameters
Type | Name | Description |
---|---|---|
ArgString | name | キュー名 |
Returns
Type | Description |
---|---|
long | キューの長さ(ミリ秒単位) |
Remarks
説明: キュー名を指定して、キューの長さを取得します。キューの長さはミリ秒単位です。 指定したキュー名のキューが存在しない場合や、無限ループするキューの場合、-1が返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキュー名に 合致するデータの存在を検索する処理が動作します。 (指定したキュー名を持つACBデータが見つかった時点で、 当該ACBデータ内のキューの長さが返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
GetNumAwbFileSlots()
ストリーム用AWBスロット数の取得
Declaration
public int GetNumAwbFileSlots()
Returns
Type | Description |
---|---|
int | ストリームAWBスロット数 |
Remarks
説明: ACBオブジェクトが必要とするストリームAWBの数を取得します。
GetNumCuePlayingCountById(int)
キューリミットが設定されているキューの発音数の取得(キューID指定)
Declaration
public int GetNumCuePlayingCountById(int id)
Parameters
Type | Name | Description |
---|---|---|
int | id | キューID名 |
Returns
Type | Description |
---|---|
int | 発音数(キューリミットが設定されていないキューを指定した場合-1が帰ります) |
Remarks
説明: キューIDを指定して、キューリミットが設定されているキューの発音数を取得します。 指定したキューIDのキューが存在しない場合や、キューリミットが設定されていないキューを指定した場合は-1が返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキュー名に 合致するデータの存在を検索する処理が動作します。 (指定したキュー名を持つACBデータが見つかった時点で、 当該ACBデータ内のキューの発音数が返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
See Also
GetNumCuePlayingCountByIndex(int)
キューリミットが設定されているキューの発音数の取得(キューインデックス指定)
Declaration
public int GetNumCuePlayingCountByIndex(int index)
Parameters
Type | Name | Description |
---|---|---|
int | index | キューインデックス |
Returns
Type | Description |
---|---|
int | 発音数(キューリミットが設定されていないキューを指定した場合-1が帰ります) |
Remarks
説明: キュー名を指定して、キューリミットが設定されているキューの発音数を取得します。 指定したキューインデックスのキューが存在しない場合や、キューリミットが設定されていないキューを指定した場合は-1が返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキュー名に 合致するデータの存在を検索する処理が動作します。 (指定したキュー名を持つACBデータが見つかった時点で、 当該ACBデータ内のキューの発音数が返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
See Also
GetNumCuePlayingCountByName(ArgString)
キューリミットが設定されているキューの発音数の取得(キュー名指定)
Declaration
public int GetNumCuePlayingCountByName(ArgString name)
Parameters
Type | Name | Description |
---|---|---|
ArgString | name | キュー名 |
Returns
Type | Description |
---|---|
int | 発音数(キューリミットが設定されていないキューを指定した場合-1が帰ります) |
Remarks
説明: キュー名を指定して、キューリミットが設定されているキューの発音数を取得します。 指定したキュー名のキューが存在しない場合や、キューリミットが設定されていないキューを指定した場合は-1が返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキュー名に 合致するデータの存在を検索する処理が動作します。 (指定したキュー名を持つACBデータが見つかった時点で、 当該ACBデータ内のキューの発音数が返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
See Also
GetNumCues()
キュー数の取得
Declaration
public int GetNumCues()
Returns
Type | Description |
---|---|
int | キュー数 |
Remarks
説明: ACBデータに含まれるキュー数を取得します。
備考: 引数( acb_hn )に null を指定した場合、最後にロードしたACBデータを処理対象とします。
GetNumUsableAisacControlsById(int)
キューでコントロール可能なAISAC Controlの個数の取得(キューID指定)
Declaration
public int GetNumUsableAisacControlsById(int id)
Parameters
Type | Name | Description |
---|---|---|
int | id | キューID |
Returns
Type | Description |
---|---|
int | AISAC Controlの個数 |
Remarks
説明: キューIDを指定して、キューでコントロール可能なAISAC Controlの個数を取得します。 指定したキューIDのキューが存在しない場合は、-1が返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキューIDに 合致するデータの存在を検索する処理が動作します。 (指定したキューIDを持つACBデータが見つかった時点で、 当該ACBデータ内のキューのコントロール可能なAISAC Controlの個数が返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
See Also
GetNumUsableAisacControlsByName(ArgString)
キューでコントロール可能なAISAC Controlの個数の取得(キュー名指定)
Declaration
public int GetNumUsableAisacControlsByName(ArgString name)
Parameters
Type | Name | Description |
---|---|---|
ArgString | name | キュー名 |
Returns
Type | Description |
---|---|
int | AISAC Controlの個数 |
Remarks
説明: キュー名を指定して、キューでコントロール可能なAISAC Controlの個数を取得します。 指定したキュー名のキューが存在しない場合は、-1が返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキュー名に 合致するデータの存在を検索する処理が動作します。 (指定したキュー名を持つACBデータが見つかった時点で、 当該ACBデータ内のキューのコントロール可能なAISAC Controlの個数が返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
See Also
GetOnMemoryAwbHandle()
オンメモリ再生用 AWB オブジェクトの取得
Declaration
public CriAtomAwb GetOnMemoryAwbHandle()
Returns
Type | Description |
---|---|
CriAtomAwb | AWB オブジェクト |
Remarks
説明: ACB データからオンメモリ再生用の AWB オブジェクトを取得します。
備考: ACB データ内には、オンメモリ再生用の波形データが AWB フォーマットで格納されています。 ACB オブジェクトを作成する際、 Atom ライブラリはオンメモリ再生用に AWB データを読み込み、再生用のオブジェクト( AWB オブジェクト)を作成します。 本関数を使用することで、 Atom ライブラリが内部的に作成した AWB オブジェクトを 取得することが可能です。 取得した AWB オブジェクトを使用することで、 ACB オブジェクト内のオンメモリ波形データを、 アプリケーション側から SetWaveId(CriAtomAwb, int) 関数を使用して再生することが可能になります。 (キューに含まれる波形データをシームレス連結再生する際や、 デバッグ用途で ACB データ内に含まれるオンメモリ波形データを再生する、 といった用途に利用可能です。)
注意: ACB オブジェクトが保持する AWB オブジェクトは、 ACB オブジェクトリリース時に破棄されます。 本関数で取得した AWB オブジェクトを個別に破棄したり、 取得済みの AWB オブジェクトに ACB オブジェクトリリース後にアクセスしたりすると、 アクセス違反等の重大な不具合が発生する可能性があります。
See Also
GetStreamingAwbHandle()
ストリーム再生用 AWB オブジェクトの取得
Declaration
public CriAtomAwb GetStreamingAwbHandle()
Returns
Type | Description |
---|---|
CriAtomAwb | AWB オブジェクト |
Remarks
説明: ACB データからストリーム再生用の AWB オブジェクトを取得します。 なお、本関数ではスロットの先頭の AWB オブジェクトのみを取得可能です。 先頭以外のスロットにある AWB オブジェクトを取得する際は以下の関数を使用してください。 - GetStreamingAwbHandleBySlotName(ArgString) - GetStreamingAwbHandleBySlotIndex(ushort)
備考: ACB データ内には、ストリーム再生用の AWB ファイルが関連付けられています。 ACB オブジェクトを作成する際、 Atom ライブラリはストリーム再生用に AWB データを読み込み、再生用のオブジェクト( AWB オブジェクト)を作成します。 本関数を使用することで、 Atom ライブラリが内部的に作成した AWB オブジェクトを 取得することが可能です。 取得した AWB オブジェクトを使用することで、 ストリーム再生用の波形データを、 アプリケーション側から SetWaveId(CriAtomAwb, int) 関数を使用して再生することが可能になります。 (キューに含まれる波形データをシームレス連結再生する際や、 デバッグ用途で ACB データに関連付けられたストリーム再生用波形データを再生する、 といった用途に利用可能です。)
注意: ACB オブジェクトが保持する AWB オブジェクトは、 ACB オブジェクトリリース時に破棄されます。 本関数で取得した AWB オブジェクトを個別に破棄したり、 取得済みの AWB オブジェクトに ACB オブジェクトリリース後にアクセスしたりすると、 アクセス違反等の重大な不具合が発生する可能性があります。
See Also
GetStreamingAwbHandleBySlotIndex(ushort)
指定した AWB スロットインデックスのストリーム再生用 AWB オブジェクトの取得
Declaration
public CriAtomAwb GetStreamingAwbHandleBySlotIndex(ushort awbSlotIndex)
Parameters
Type | Name | Description |
---|---|---|
ushort | awbSlotIndex | AWB スロットインデックス |
Returns
Type | Description |
---|---|
CriAtomAwb | AWB オブジェクト |
Remarks
説明: ACB データから指定した AWB スロットインデックスのストリーム再生用の AWB オブジェクトを取得します。
備考: ACB データ内には、ストリーム再生用の AWB ファイルが関連付けられています。 ACB オブジェクトを作成する際、 Atom ライブラリはストリーム再生用に AWB データを読み込み、再生用のオブジェクト( AWB オブジェクト)を作成します。 本関数を使用することで、 Atom ライブラリが内部的に作成した AWB オブジェクトを 取得することが可能です。 取得した AWB オブジェクトを使用することで、 ストリーム再生用の波形データを、 アプリケーション側から SetWaveId(CriAtomAwb, int) 関数を使用して再生することが可能になります。 (キューに含まれる波形データをシームレス連結再生する際や、 デバッグ用途で ACB データに関連付けられたストリーム再生用波形データを再生する、 といった用途に利用可能です。)
注意: ACB オブジェクトが保持する AWB オブジェクトは、 ACB オブジェクトリリース時に破棄されます。 本関数で取得した AWB オブジェクトを個別に破棄したり、 取得済みの AWB オブジェクトに ACB オブジェクトリリース後にアクセスしたりすると、 アクセス違反等の重大な不具合が発生する可能性があります。
See Also
GetStreamingAwbHandleBySlotName(ArgString)
指定した AWB スロット名のストリーム再生用 AWB オブジェクトの取得
Declaration
public CriAtomAwb GetStreamingAwbHandleBySlotName(ArgString awbSlotName)
Parameters
Type | Name | Description |
---|---|---|
ArgString | awbSlotName | AWB スロット名 |
Returns
Type | Description |
---|---|
CriAtomAwb | AWB オブジェクト |
Remarks
説明: ACB データから指定した AWB スロット名のストリーム再生用の AWB オブジェクトを取得します。
備考: ACB データ内には、ストリーム再生用の AWB ファイルが関連付けられています。 ACB オブジェクトを作成する際、 Atom ライブラリはストリーム再生用に AWB データを読み込み、再生用のオブジェクト( AWB オブジェクト)を作成します。 本関数を使用することで、 Atom ライブラリが内部的に作成した AWB オブジェクトを 取得することが可能です。 取得した AWB オブジェクトを使用することで、 ストリーム再生用の波形データを、 アプリケーション側から SetWaveId(CriAtomAwb, int) 関数を使用して再生することが可能になります。 (キューに含まれる波形データをシームレス連結再生する際や、 デバッグ用途で ACB データに関連付けられたストリーム再生用波形データを再生する、 といった用途に利用可能です。)
注意: ACB オブジェクトが保持する AWB オブジェクトは、 ACB オブジェクトリリース時に破棄されます。 本関数で取得した AWB オブジェクトを個別に破棄したり、 取得済みの AWB オブジェクトに ACB オブジェクトリリース後にアクセスしたりすると、 アクセス違反等の重大な不具合が発生する可能性があります。
See Also
GetSupportedVersion(out uint, out uint)
ロード可能バージョン情報取得
Declaration
public static void GetSupportedVersion(out uint versionLow, out uint versionHigh)
Parameters
Type | Name | Description |
---|---|---|
uint | versionLow | ロード可能下位バージョン |
uint | versionHigh | ロード可能上位バージョン |
Remarks
説明: ロード可能なACBのバージョン情報を取得します。 上位バージョンはライブラリビルド時点での情報のため、この値より上位のACBでも ロード可能な場合もあります。
GetUsableAisacControlById(int, ushort, out AisacControlInfo)
キューでコントロール可能なAISAC Controlの取得(キューID指定)
Declaration
public bool GetUsableAisacControlById(int id, ushort index, out CriAtomEx.AisacControlInfo info)
Parameters
Type | Name | Description |
---|---|---|
int | id | キューID |
ushort | index | AISAC Controlインデックス |
CriAtomEx.AisacControlInfo | info | AISAC Control情報 |
Returns
Type | Description |
---|---|
bool | 取得に成功したかどうか(成功:true、失敗:false) |
Remarks
説明: キューIDとAISAC Controlインデックスを指定して、AISAC Control情報を取得します。 指定したキューIDのキューが存在しない場合は、falseが返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキューIDに 合致するデータの存在を検索する処理が動作します。 (指定したキューIDを持つACBデータが見つかった時点で、 当該ACBデータ内のキューのAISAC Control情報が返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
See Also
GetUsableAisacControlByName(ArgString, ushort, out AisacControlInfo)
キューでコントロール可能なAISAC Controlの取得(キュー名指定)
Declaration
public bool GetUsableAisacControlByName(ArgString name, ushort index, out CriAtomEx.AisacControlInfo info)
Parameters
Type | Name | Description |
---|---|---|
ArgString | name | キュー名 |
ushort | index | AISAC Controlインデックス |
CriAtomEx.AisacControlInfo | info | AISAC Control情報 |
Returns
Type | Description |
---|---|
bool | 取得に成功したかどうか(成功:true、失敗:false) |
Remarks
説明: キュー名とAISAC Controlインデックスを指定して、AISAC Control情報を取得します。 指定したキュー名のキューが存在しない場合は、falseが返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキュー名に 合致するデータの存在を検索する処理が動作します。 (指定したキュー名を持つACBデータが見つかった時点で、 当該ACBデータ内のキューのAISAC Control情報が返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
See Also
GetUserDataById(int)
ユーザデータ文字列の取得(キューID指定)
Declaration
public NativeString GetUserDataById(int id)
Parameters
Type | Name | Description |
---|---|---|
int | id | キューID |
Returns
Type | Description |
---|---|
NativeString | CriChar8 * ユーザデータ文字列 |
Remarks
説明: キューIDを指定して、キューのユーザデータ文字列を取得します。 指定したキューIDのキューが存在しない場合、nullが返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキューIDに 合致するデータの存在を検索する処理が動作します。 (指定したキューIDを持つACBデータが見つかった時点で、 当該ACBデータ内のキューのユーザデータが返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
GetUserDataByName(ArgString)
ユーザデータ文字列の取得(キュー名指定)
Declaration
public NativeString GetUserDataByName(ArgString name)
Parameters
Type | Name | Description |
---|---|---|
ArgString | name | キュー名 |
Returns
Type | Description |
---|---|
NativeString | CriChar8 * ユーザデータ文字列 |
Remarks
説明: キュー名を指定して、キューのユーザデータ文字列を取得します。 指定したキュー名のキューが存在しない場合、nullが返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキュー名に 合致するデータの存在を検索する処理が動作します。 (指定したキュー名を持つACBデータが見つかった時点で、 当該ACBデータ内のキューのユーザデータが返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
GetVersion(IntPtr, int, IntPtr)
オンメモリACBのバージョン取得
Declaration
public static uint GetVersion(IntPtr acbData, int acbDataSize, IntPtr flag)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | acbData | ACBデータアドレス |
int | acbDataSize | ACBデータサイズ |
IntPtr | flag | ロード可能フラグ |
Returns
Type | Description |
---|---|
uint | ACBフォーマットバージョン |
Remarks
説明: メモリ上に配置されたACBデータのフォーマットバージョンを取得します。 また、flag引数にロード可能なバージョンかどうかをBool値で返します。
GetVersionFromFile(CriFsBinder, ArgString, out NativeBool, IntPtr, int)
ACBファイルのバージョン取得
Declaration
public static uint GetVersionFromFile(CriFsBinder acbBinder, ArgString acbPath, out NativeBool flag, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | acbBinder | ACBファイルを含むバインダーのオブジェクト |
ArgString | acbPath | ACBファイルのパス |
NativeBool | flag | ロード可能フラグ |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
uint | ACBフォーマットバージョン |
Remarks
説明: ACBファイルをメモリにロードしACBデータのフォーマットバージョンを取得します。 ACB情報の登録に必要なワーク領域のサイズは、 CalculateWorkSizeForLoadAcbFile(CriFsBinder, ArgString, CriFsBinder, ArgString) 関数で計算します。 ACBファイルフォーマットバージョンを元にflag引数にロード可能なバージョンかどうかをBool値で返します。
備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケーター から必要なワーク領域サイズ分のメモリが動的に確保されます。)
備考: データがCPKにパックされていない場合、引数binderにはnullを指定してください。
注意: 本関数にセットしたワーク領域は、 アプリケーションで保持する必要はありません。 (メモリにロードしたデータは関数終了時に解放されます。) 本関数は、関数実行開始時に CriFsLoader(IntPtr) 関数でローダーを確保し、 終了時に Dispose() 関数でローダーを破棄します。 本関数を実行する際には、空きローダーオブジェクトが1つ以上ある状態になるよう、 ローダー数を調整してください。
GetWaveformInfoById(int, out WaveformInfo)
音声波形情報の取得(キューID指定)
Declaration
public bool GetWaveformInfoById(int id, out CriAtomEx.WaveformInfo waveformInfo)
Parameters
Type | Name | Description |
---|---|---|
int | id | キューID |
CriAtomEx.WaveformInfo | waveformInfo | 音声波形情報 |
Returns
Type | Description |
---|---|
bool | 取得に成功したかどうか(成功:true、失敗:false) |
Remarks
説明: キューIDを指定して、そのキューで再生される音声波形の情報を取得します。 そのキューで再生される音声波形が複数ある場合、初めのトラックで最初に再生される音声波形の情報が取得されます。 指定したキューIDのキューが存在しない場合、falseが返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキューIDに 合致するデータの存在を検索する処理が動作します。 (指定したキューIDを持つACBデータが見つかった時点で、 当該ACBデータ内のキューの音声波形情報が返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
GetWaveformInfoByName(ArgString, out WaveformInfo)
音声波形情報の取得(キュー名指定)
Declaration
public bool GetWaveformInfoByName(ArgString name, out CriAtomEx.WaveformInfo waveformInfo)
Parameters
Type | Name | Description |
---|---|---|
ArgString | name | キュー名 |
CriAtomEx.WaveformInfo | waveformInfo | 音声波形情報 |
Returns
Type | Description |
---|---|
bool | 取得に成功したかどうか(成功:true、失敗:false) |
Remarks
説明: キュー名を指定して、そのキューで再生される音声波形の情報を取得します。 そのキューで再生される音声波形が複数ある場合、初めのトラックで最初に再生される音声波形の情報が取得されます。 指定したキュー名のキューが存在しない場合、falseが返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキュー名に 合致するデータの存在を検索する処理が動作します。 (指定したキュー名を持つACBデータが見つかった時点で、 当該ACBデータ内のキューの音声波形情報が返されます。) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
IsAttachedAwbFile(ArgString)
ストリーム用AWBファイルのアタッチ状態取得
Declaration
public bool IsAttachedAwbFile(ArgString awbName)
Parameters
Type | Name | Description |
---|---|---|
ArgString | awbName | AWB名 |
Returns
Type | Description |
---|---|
bool |
Remarks
説明: ACBオブジェクトにAWBファイルがアタッチされているかを取得します。 第2引数の awb_name はAWBをアタッチするスロット名です。状態を取得したいスロットのAWB名を指定してください。
IsReadyToRelease()
ACBオブジェクトが即時解放可能かどうかのチェック
Declaration
public bool IsReadyToRelease()
Returns
Type | Description |
---|---|
bool | ACBの状態(true = 即時解放可能、false = 再生中のプレーヤーあり) |
Remarks
説明: ACBオブジェクトを即座に解放可能かどうかをチェックします。 本関数が false を返すタイミングで Dispose() 関数を実行すると、 ACBオブジェクトを参照しているプレーヤーに対する停止処理が行われます。 (ストリーム再生用のACBオブジェクトの場合、ファイル読み込み完了を待つため、 Dispose() 関数内で長時間処理がブロックされる可能性があります。)
備考: ACBオブジェクトを再生していたプレーヤーを全て停止させた場合でも、 ライブラリ内では当該ACBオブジェクトを参照しているボイスが存在する可能性があります。 ( StopWithoutReleaseTime() 関数で停止処理を行った場合や、 ボイスの奪い取りが発生した場合、プレーヤーからボイスは切り離されますが、 その後もボイス側でファイルの読み込み完了待ちを行うケースがあります。) Dispose() 関数内で処理がブロックされるのを避ける必要がある場合には、 本関数が true を返すまで、Dispose() 関数を実行しないでください。
注意: 本関数を実行すると、指定したACBデータを参照しているAtomプレーヤーの存在を 検索する処理が動作します。 そのため、本関数実行中に他スレッドでAtomプレーヤーの作成/破棄を行うと、 アクセス違反やデッドロック等の重大な不具合を誘発する恐れがあります。 本関数実行時にAtomプレーヤーの作成/破棄を他スレッドで行う必要がある場合、 Atomプレーヤーの作成/破棄を Lock() 関数でロックしてから実行ください。
See Also
IsUsingAisacControlById(int, uint)
キューがAISAC Controlでコントロール可能かどうかの取得(ID指定)
Declaration
public bool IsUsingAisacControlById(int id, uint aisacControlId)
Parameters
Type | Name | Description |
---|---|---|
int | id | キューID |
uint | aisacControlId | AISAC Control id |
Returns
Type | Description |
---|---|
bool | コントロール可能かどうか(可能:true、不可能:false) |
Remarks
説明: キューIDとAISAC Control Idを指定して、キューがAISAC Controlでコントロール可能かどうかを取得します。 指定したキューIDのキューが存在しない場合は、falseが返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキューIDに 合致するデータの存在を検索する処理が動作します。 (指定したキューIDを持つACBデータが見つかった時点で、 当該ACBデータ内のキューのAISAC Control情報を元に値を返します) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
See Also
IsUsingAisacControlByName(ArgString, ArgString)
キューがAISAC Controlでコントロール可能かどうかの取得(名前指定)
Declaration
public bool IsUsingAisacControlByName(ArgString name, ArgString aisacControlName)
Parameters
Type | Name | Description |
---|---|---|
ArgString | name | キュー名 |
ArgString | aisacControlName | AISAC Controlインデックス |
Returns
Type | Description |
---|---|
bool | 取得に成功したかどうか(成功:true、失敗:false) |
Remarks
説明: キュー名とAISAC Controlインデックスを指定して、AISAC Control情報を取得します。 指定したキュー名のキューが存在しない場合は、falseが返ります。
備考: 第1引数( ach_hn )に null を指定した場合、全てのACBデータを対象に、指定したキュー名に 合致するデータの存在を検索する処理が動作します。 (指定したキュー名を持つACBデータが見つかった時点で、 当該ACBデータ内のキューのAISAC Control情報を元に値を返します) この際、検索の順序は、ACBデータのロード順とは逆順で行われます。 (後からロードされたデータから優先的に検索が行われます。)
See Also
LoadAcbData(IntPtr, int, CriFsBinder, ArgString, IntPtr, int)
オンメモリACBデータのロード
Declaration
public static CriAtomExAcb LoadAcbData(IntPtr acbData, int acbDataSize, CriFsBinder awbBinder, ArgString awbPath, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | acbData | ACBデータアドレス |
int | acbDataSize | ACBデータサイズ |
CriFsBinder | awbBinder | AWBファイルを含むバインダーのオブジェクト |
ArgString | awbPath | AWBファイルのパス |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriAtomExAcb | ACBオブジェクト |
Remarks
説明: ACBデータをロードし、キュー再生に必要な情報を取り込みます。 ACBデータのロードに必要なワーク領域のサイズは、 CalculateWorkSizeForLoadAcbData(IntPtr, int, CriFsBinder, ArgString) 関数で計算します。 第3引数の awb_binder 、および第4引数の awb_path には、ストリーム再生用 のAWBファイルを指定します。 (オンメモリ再生のみのACBデータをロードする場合、 awb_binder および awb_path にセットした値は無視されます。) ACBデータをロードすると、ACBデータにアクセスするためのACBオブジェクト ( CriAtomExAcb )が返されます。 AtomExプレーヤーに対し、 SetCueId(CriAtomExAcb, int) 関数でACBオブジェクト、および再生する キューのIDをセットすることで、ACBデータ内のキューを再生することが可能です。 ACBファイルのロードに成功すると、本関数は戻り値として ACB オブジェクトを返します。 リードエラー等によりACBファイルのロードに失敗した場合、本関数は戻り値として CRI_NULL を返します。
備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケーター から必要なワーク領域サイズ分のメモリが動的に確保されます。) 本関数は即時復帰関数です。 ACBファイルを事前にメモリにロードしてから本関数を実行することで、 ACBオブジェクト作成時に処理がブロックされるのを回避可能です。 データがCPKにパックされていない場合、引数binderにはnullを指定してください。
注意: 本関数にてセットしたデータ領域やワーク領域のメモリ内容はACBオブジェクト破棄時 までアプリケーション中で保持し続ける必要があります。 (セット済みのワーク領域に値を書き込んだり、メモリ解放したりしてはいけません。) また、データ領域の一部はワークとして使用されます。 ACBデータにはワーク領域も含まれています。 そのため、1つのACBデータ領域を複数回同時にロードすることはできません。 (作成されたACBオブジェクトを複数のAtomExプレーヤーで共有することは可能です。) ACBオブジェクトは内部的にバインダー( CriFsBinder )を確保します。 ACBファイルをロードする場合、ACBオブジェクト数分のバインダーが確保できる設定で Atomライブラリ(またはCRI File Systemライブラリ)を初期化する必要があります。 本関数を実行する前に、ライブラリを初期化しておく必要があります。
See Also
LoadAcbData(ReadOnlySpan<byte>, CriFsBinder, ArgString)
Declaration
public static CriAtomExAcb LoadAcbData(ReadOnlySpan<byte> data, CriFsBinder awbBinder, ArgString awbPath)
Parameters
Type | Name | Description |
---|---|---|
ReadOnlySpan<byte> | data | |
CriFsBinder | awbBinder | |
ArgString | awbPath |
Returns
Type | Description |
---|---|
CriAtomExAcb |
LoadAcbDataById(IntPtr, int, CriFsBinder, ushort, IntPtr, int)
オンメモリACBデータのロード(CPKコンテンツID指定)
Declaration
public static CriAtomExAcb LoadAcbDataById(IntPtr acbData, int acbDataSize, CriFsBinder awbBinder, ushort awbId, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | acbData | ACBデータアドレス |
int | acbDataSize | ACBデータサイズ |
CriFsBinder | awbBinder | AWBファイルを含むバインダーのオブジェクト |
ushort | awbId | CPKファイル内のAWBデータのID |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriAtomExAcb | ACBオブジェクト |
Remarks
説明: ACBデータをロードし、キュー再生に必要な情報を取り込みます。 ファイルパスの代わりにCPKコンテンツIDを指定する点を除けば、 LoadAcbData(ReadOnlySpan<byte>, CriFsBinder, ArgString) 関数と機能は同じです。
備考: データがCPKにパックされていない場合、引数binderにはnullを指定してください。
See Also
LoadAcbFile(CriFsBinder, ArgString, CriFsBinder, ArgString, IntPtr, int)
ACBファイルのロード
Declaration
public static CriAtomExAcb LoadAcbFile(CriFsBinder acbBinder, ArgString acbPath, CriFsBinder awbBinder, ArgString awbPath, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | acbBinder | ACBファイルを含むバインダーのオブジェクト |
ArgString | acbPath | ACBファイルのパス |
CriFsBinder | awbBinder | AWBファイルを含むバインダーのオブジェクト |
ArgString | awbPath | AWBファイルのパス |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriAtomExAcb | ACBオブジェクト |
Remarks
説明: ACBファイルをロードし、キュー再生に必要な情報を取り込みます。 ACBファイルのロードに必要なワーク領域のサイズは、 CalculateWorkSizeForLoadAcbFile(CriFsBinder, ArgString, CriFsBinder, ArgString) 関数で計算します。 第3引数の awb_binder 、および第4引数の awb_path には、ストリーム再生用 のAWBファイルを指定します。 (オンメモリ再生のみのACBデータをロードする場合、 awb_binder および awb_path にセットした値は無視されます。) ACBファイルをロードすると、ACBデータにアクセスするためのACBオブジェクト ( CriAtomExAcb )が返されます。 AtomExプレーヤーに対し、 SetCueId(CriAtomExAcb, int) 関数でACBオブジェクト、および再生する キューのIDをセットすることで、ACBファイル内のキューを再生することが可能です。 ACBファイルのロードに成功すると、本関数は戻り値として ACB オブジェクトを返します。 リードエラー等によりACBファイルのロードに失敗した場合、本関数は戻り値として CRI_NULL を返します。
備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケーター から必要なワーク領域サイズ分のメモリが動的に確保されます。)
備考: データがCPKにパックされていない場合、引数binderにはnullを指定してください。
注意: 本関数を実行する前に、ライブラリを初期化しておく必要があります。 本関数にワーク領域をセットした場合、セットした領域のメモリをACBオブジェクト破棄時 までアプリケーション中で保持し続ける必要があります。 (セット済みのワーク領域に値を書き込んだり、メモリ解放したりしてはいけません。) ACBオブジェクトは内部的にバインダー( CriFsBinder )とローダー( CriFsLoader )を確保します。 ACBファイルをロードする場合、ACBオブジェクト数分のバインダーとローダーが確保できる設定で Atomライブラリ(またはCRI File Systemライブラリ)を初期化する必要があります。 本関数は完了復帰型の関数です。 ACBファイルのロードにかかる時間は、プラットフォームによって異なります。 ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。 ACBファイルのロードは、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
See Also
LoadAcbFileById(CriFsBinder, ushort, CriFsBinder, ushort, IntPtr, int)
ACBファイルのロード(CPKコンテンツID指定)
Declaration
public static CriAtomExAcb LoadAcbFileById(CriFsBinder acbBinder, ushort acbId, CriFsBinder awbBinder, ushort awbId, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | acbBinder | ACBファイルを含むバインダーのオブジェクト |
ushort | acbId | CPKファイル内のACBデータのID |
CriFsBinder | awbBinder | AWBファイルを含むバインダーのオブジェクト |
ushort | awbId | CPKファイル内のAWBデータのID |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriAtomExAcb | ACBオブジェクト |
Remarks
説明: ACBファイルをロードし、キュー再生に必要な情報を取り込みます。 ファイルパスの代わりにCPKコンテンツIDを指定する点を除けば、 LoadAcbFile(CriFsBinder, ArgString, CriFsBinder, ArgString, IntPtr, int) 関数と機能は同じです。
備考: データがCPKにパックされていない場合、引数binderにはnullを指定してください。
See Also
ReleaseAll()
全てのACBオブジェクトをリリース
Declaration
public static void ReleaseAll()
Remarks
説明: ロード済みの全てのACBオブジェクトを解放します。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 ACBオブジェクト作成時に確保されたメモリ領域が解放されます。 (ACBオブジェクト作成時にワーク領域を渡した場合、本関数実行後であれば ワーク領域を解放可能です。)
備考: 本関数を実行すると、全てのキュー再生がその時点で停止します。 (本関数実行後に、ACBオブジェクトの作成に使用したワーク領域や、 ACBデータが配置されていた領域が参照されることはありません。)
注意: 本関数を実行すると、指定したACBデータを参照しているAtomプレーヤーの存在を 検索する処理が動作します。 そのため、本関数実行中に他スレッドでAtomプレーヤーの作成/破棄を行うと、 アクセス違反やデッドロック等の重大な不具合を誘発する恐れがあります。 本関数実行時にAtomプレーヤーの作成/破棄を他スレッドで行う必要がある場合、 Atomプレーヤーの作成/破棄を Lock() 関数でロックしてから実行ください。
See Also
ResetCueTypeStateById(int)
キュータイプステートのリセット(キューID指定)
Declaration
public void ResetCueTypeStateById(int id)
Parameters
Type | Name | Description |
---|---|---|
int | id | キューID |
Remarks
説明: キューIDを指定して、キュータイプステートをリセットします。
注意: リセット対象は指定したキューのステートのみです。キューに含まれるサブシンセやキューリンク先の ステートはリセットされません。
備考: キュータイプステートは、ポリフォニックタイプキュー以外のキュー再生時の前回再生トラックを ステートとして管理する仕組みです。 本関数は、ステート管理領域をリセットしACBロード直後の状態に戻します。
See Also
ResetCueTypeStateByIndex(int)
キュータイプステートのリセット(キューインデックス指定)
Declaration
public void ResetCueTypeStateByIndex(int index)
Parameters
Type | Name | Description |
---|---|---|
int | index | キューインデックス |
Remarks
説明: キューインデックスを指定して、キュータイプステートをリセットします。
注意: リセット対象は指定したキューのステートのみです。キューに含まれるサブシンセやキューリンク先の ステートはリセットされません。
備考: キュータイプステートは、ポリフォニックタイプキュー以外のキュー再生時の前回再生トラックを ステートとして管理する仕組みです。 本関数は、ステート管理領域をリセットしACBロード直後の状態に戻します。
See Also
ResetCueTypeStateByName(ArgString)
キュータイプステートのリセット(キュー名指定)
Declaration
public void ResetCueTypeStateByName(ArgString name)
Parameters
Type | Name | Description |
---|---|---|
ArgString | name | キュー名 |
Remarks
説明: キュー名を指定して、キュータイプステートをリセットします。
注意: リセット対象は指定したキューのステートのみです。キューに含まれるサブシンセやキューリンク先の ステートはリセットされません。
備考: キュータイプステートは、ポリフォニックタイプキュー以外のキュー再生時の前回再生トラックを ステートとして管理する仕組みです。 本関数は、ステート管理領域をリセットしACBロード直後の状態に戻します。
See Also
SetDetectionInGamePreviewDataCallback(delegate* unmanaged[Cdecl]<IntPtr, NativeString, void>, IntPtr)
インゲームプレビュー用データのロード検知コールバック関数の登録
Declaration
public static void SetDetectionInGamePreviewDataCallback(delegate* unmanaged[Cdecl]<IntPtr, NativeString, void> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, NativeString, void> | func | ロード検知コールバック関数 |
IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: インゲームプレビュー用データのロードを検知した場合に呼び出すコールバック関数を登録します。 登録されたコールバック関数は、ACBロード関数内でACBの内容解析を行ったタイミングで実行されます。
注意: 基本的に、コールバック関数内ではAtomライブラリAPIを使用しないでください。 本コールバック関数内で長時間処理をブロックすると、音切れ等の問題が発生しますので、 ご注意ください。 コールバック関数は1つしか登録できません。 登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。 funcにnullを指定することで登録済み関数の登録解除が行えます。