CRIWARE for C#
Search Results for

    Show / Hide Table of Contents

    Class CriAtom

    CriAtom API

    Inheritance
    object
    CriAtom
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: CriWare
    Assembly: CriWare.CriAtom.dll
    Syntax
    public static class CriAtom

    Fields

    DefaultOutputSamplingRate

    Declaration
    public const int DefaultOutputSamplingRate = 48000
    Field Value
    Type Description
    int

    FormatAdx

    Declaration
    public const int FormatAdx = 1
    Field Value
    Type Description
    int
    Remarks

    ADX

    FormatAiff

    Declaration
    public const int FormatAiff = 7
    Field Value
    Type Description
    int
    Remarks

    AIFF

    FormatAudioBuffer

    Declaration
    public const int FormatAudioBuffer = 9
    Field Value
    Type Description
    int
    Remarks

    AudioBuffer

    FormatHca

    Declaration
    public const int FormatHca = 3
    Field Value
    Type Description
    int
    Remarks

    HCA

    FormatHcaMx

    Declaration
    public const int FormatHcaMx = 4
    Field Value
    Type Description
    int
    Remarks

    HCA-MX

    FormatHw1

    Declaration
    public const int FormatHw1 = 65537
    Field Value
    Type Description
    int
    Remarks

    ハードウェア固有

    FormatHw2

    Declaration
    public const int FormatHw2 = 65538
    Field Value
    Type Description
    int
    Remarks

    ハードウェア固有

    FormatHw3

    Declaration
    public const int FormatHw3 = 65539
    Field Value
    Type Description
    int
    Remarks

    ハードウェア固有

    FormatRawPcm

    Declaration
    public const int FormatRawPcm = 6
    Field Value
    Type Description
    int
    Remarks

    Raw PCM

    FormatVibration

    Declaration
    public const int FormatVibration = 8
    Field Value
    Type Description
    int
    Remarks

    振動

    FormatWave

    Declaration
    public const int FormatWave = 5
    Field Value
    Type Description
    int
    Remarks

    Wave

    HcaMxMaxOutputChannels

    HCA-MXの出力チャンネル数の最大値

    Declaration
    public const int HcaMxMaxOutputChannels = 8
    Field Value
    Type Description
    int
    Remarks

    説明: HCA-MXの出力チャンネル数の最大値です。 CriAtomHcaMx.Config::output_channels の値は、この値以下に設定する必要があります。

    See Also
    CriAtomHcaMx.Config

    SoundRendererDefault

    Declaration
    public const CriAtom.SoundRendererType SoundRendererDefault = Asr
    Field Value
    Type Description
    CriAtom.SoundRendererType

    StreamingCacheIllegalId

    不正なストリーミングキャッシュID値

    Declaration
    public const int StreamingCacheIllegalId = 0
    Field Value
    Type Description
    int
    Remarks

    説明: CriAtomStreamingCache(in Config) 関数に失敗した際に返る値です。

    See Also
    CriAtomStreamingCache(in Config)
    Dispose()

    Properties

    AudioFrameEndCallback

    コールバックイベントオブジェクト

    Declaration
    public static CriAtom.AudioFrameEndCbFunc AudioFrameEndCallback { get; }
    Property Value
    Type Description
    CriAtom.AudioFrameEndCbFunc
    See Also
    SetAudioFrameEndCallback(delegate* unmanaged[Cdecl]<IntPtr, void>, IntPtr)

    AudioFrameStartCallback

    コールバックイベントオブジェクト

    Declaration
    public static CriAtom.AudioFrameStartCbFunc AudioFrameStartCallback { get; }
    Property Value
    Type Description
    CriAtom.AudioFrameStartCbFunc
    See Also
    SetAudioFrameStartCallback(delegate* unmanaged[Cdecl]<IntPtr, void>, IntPtr)

    DeviceUpdateCallback

    コールバックイベントオブジェクト

    Declaration
    public static CriAtom.DeviceUpdateCbFunc DeviceUpdateCallback { get; }
    Property Value
    Type Description
    CriAtom.DeviceUpdateCbFunc
    See Also
    SetDeviceUpdateCallback(delegate* unmanaged[Cdecl]<IntPtr, void>, IntPtr)

    Methods

    AttachPerformanceMonitor()

    LE Pro

    パフォーマンスモニター機能の追加

    Declaration
    • C#
    • C
    public static void AttachPerformanceMonitor()
    void CRIAPI criAtom_AttachPerformanceMonitor(void)
    Remarks

    説明: パフォーマンス計測機能を追加し、パフォーマンス計測処理を開始します。 本関数を実行後、 GetPerformanceInfo(out PerformanceInfo) 関数を実行することで、 サーバー処理の負荷や、サーバー処理の実行間隔等、ライブラリのパフォーマンス情報を 取得することが可能です。

    See Also
    GetPerformanceInfo(out PerformanceInfo)
    DetachPerformanceMonitor()

    CalculateAdxBitrate(int, int)

    LE Pro

    ADXデータのビットレート計算

    Declaration
    • C#
    • C
    public static int CalculateAdxBitrate(int numChannels, int samplingRate)
    CriSint32 CRIAPI criAtom_CalculateAdxBitrate(CriSint32 num_channels, CriSint32 sampling_rate)
    Parameters
    Type Name Description
    int numChannels

    データのチャンネル数

    int samplingRate

    データのサンプリングレート

    Returns
    Type Description
    int

    CriSint32 ビットレート[bps]

    Remarks

    説明: ADXデータのビットレートを計算します。 計算に失敗すると本関数は-1を返します。 計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。

    CalculateHcaBitrate(int, int, EncodeQuality)

    LE Pro

    HCAデータのビットレート計算

    Declaration
    • C#
    • C
    public static int CalculateHcaBitrate(int numChannels, int samplingRate, CriAtom.EncodeQuality quality)
    CriSint32 CRIAPI criAtom_CalculateHcaBitrate(CriSint32 num_channels, CriSint32 sampling_rate, CriAtomEncodeQuality quality)
    Parameters
    Type Name Description
    int numChannels

    データのチャンネル数

    int samplingRate

    データのサンプリングレート

    CriAtom.EncodeQuality quality

    データのエンコード品質

    Returns
    Type Description
    int

    CriSint32 ビットレート[bps]

    Remarks

    説明: HCAデータのビットレートを計算します。 計算に失敗すると本関数は-1を返します。 計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。

    備考: qualityにはCRI Atom CraftまたはCRI Atom Encoderで設定したエンコード品質を指定します。

    CalculateHcaMxBitrate(int, int, EncodeQuality)

    LE Pro

    HCA-MXデータのビットレート計算

    Declaration
    • C#
    • C
    public static int CalculateHcaMxBitrate(int numChannels, int samplingRate, CriAtom.EncodeQuality quality)
    CriSint32 CRIAPI criAtom_CalculateHcaMxBitrate(CriSint32 num_channels, CriSint32 sampling_rate, CriAtomEncodeQuality quality)
    Parameters
    Type Name Description
    int numChannels

    データのチャンネル数

    int samplingRate

    データのサンプリングレート

    CriAtom.EncodeQuality quality

    データのエンコード品質

    Returns
    Type Description
    int

    CriSint32 ビットレート[bps]

    Remarks

    説明: HCA-MXデータのビットレートを計算します。 計算に失敗すると本関数は-1を返します。 計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。

    備考: qualityにはCRI Atom CraftまたはCRI Atom Encoderで設定したエンコード品質を指定します。

    CalculateWorkSize(in Config)

    LE Pro

    ライブラリ初期化用ワーク領域サイズの計算

    Declaration
    • C#
    • C
    public static int CalculateWorkSize(in CriAtom.Config config)
    CriSint32 CRIAPI criAtom_CalculateWorkSize(const CriAtomConfig *config)
    Parameters
    Type Name Description
    CriAtom.Config config

    初期化用コンフィグ構造体

    Returns
    Type Description
    int

    CriSint32 ワーク領域サイズ

    Remarks

    説明: CRI Atomライブラリを使用するために必要な、ワーク領域のサイズを取得します。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。

    備考: CRI Atomライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtom.Config )の内容によって変化します。 引数にnullを指定した場合、デフォルト設定 ( SetDefaultConfig(out Config) 適用時と同じパラメーター)で ワーク領域サイズを計算します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。

    See Also
    CriAtom.Config
    Initialize(in Config)

    CalculateWorkSizeIOS(in ConfigIOS)

    LE Pro

    ライブラリ初期化用ワーク領域サイズの計算

    Declaration
    • C#
    • C
    public static int CalculateWorkSizeIOS(in CriAtom.ConfigIOS config)
    CriSint32 CRIAPI criAtom_CalculateWorkSize_IOS(const CriAtomConfig_IOS *config)
    Parameters
    Type Name Description
    CriAtom.ConfigIOS config

    初期化用コンフィグ構造体

    Returns
    Type Description
    int

    CriSint32 ワーク領域サイズ

    Remarks

    説明: ライブラリを使用するために必要な、ワーク領域のサイズを取得します。

    備考: ライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtom.ConfigIOS )の内容によって変化します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。

    注意: 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに CalculateWorkSizeIOS(in ConfigIOS) 関数をご利用ください。

    See Also
    CriAtom.ConfigIOS
    InitializeIOS(in ConfigIOS)

    CalculateWorkSizeMACOSX(in ConfigMACOSX)

    LE Pro

    ライブラリ初期化用ワーク領域サイズの計算

    Declaration
    • C#
    • C
    public static int CalculateWorkSizeMACOSX(in CriAtom.ConfigMACOSX config)
    CriSint32 CRIAPI criAtom_CalculateWorkSize_MACOSX(const CriAtomConfig_MACOSX *config)
    Parameters
    Type Name Description
    CriAtom.ConfigMACOSX config

    初期化用コンフィグ構造体

    Returns
    Type Description
    int

    CriSint32 ワーク領域サイズ

    Remarks

    説明: ライブラリを使用するために必要な、ワーク領域のサイズを取得します。

    備考: ライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtom.ConfigMACOSX )の内容によって変化します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。

    注意: 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに CalculateWorkSizeMACOSX(in ConfigMACOSX) 関数をご利用ください。

    See Also
    CriAtom.ConfigMACOSX
    InitializeMACOSX(in ConfigMACOSX)

    CalculateWorkSizePC(in ConfigPC)

    LE Pro

    ライブラリ初期化用ワーク領域サイズの計算

    Declaration
    • C#
    • C
    public static int CalculateWorkSizePC(in CriAtom.ConfigPC config)
    CriSint32 CRIAPI criAtom_CalculateWorkSize_PC(const CriAtomConfig_PC *config)
    Parameters
    Type Name Description
    CriAtom.ConfigPC config

    初期化用コンフィグ構造体

    Returns
    Type Description
    int

    CriSint32 ワーク領域サイズ

    Remarks

    説明: ライブラリを使用するために必要な、ワーク領域のサイズを取得します。

    備考: ライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtom.ConfigPC )の内容によって変化します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。

    注意: 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに CalculateWorkSizePC(in ConfigPC) 関数をご利用ください。

    See Also
    CriAtom.ConfigPC
    InitializePC(in ConfigPC)

    CalculateWorkSizePULSE(in ConfigPULSE)

    Pro

    ライブラリ初期化用ワーク領域サイズの計算

    Declaration
    • C#
    • C
    public static int CalculateWorkSizePULSE(in CriAtom.ConfigPULSE config)
    CriSint32 CRIAPI criAtom_CalculateWorkSize_PULSE(const CriAtomConfig_PULSE *config)
    Parameters
    Type Name Description
    CriAtom.ConfigPULSE config

    初期化用コンフィグ構造体

    Returns
    Type Description
    int

    CriSint32 ワーク領域サイズ

    Remarks

    説明: ライブラリを使用するために必要な、ワーク領域のサイズを取得します。

    備考: ライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtom.ConfigPULSE )の内容によって変化します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。

    注意: 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに CalculateWorkSizePULSE(in ConfigPULSE) 関数をご利用ください。

    See Also
    CriAtom.ConfigPULSE
    InitializePULSE(in ConfigPULSE)

    CalculateWorkSizeWASAPI(in ConfigWASAPI)

    LE Pro

    ライブラリ初期化用ワーク領域サイズの計算

    Declaration
    • C#
    • C
    public static int CalculateWorkSizeWASAPI(in CriAtom.ConfigWASAPI config)
    CriSint32 CRIAPI criAtom_CalculateWorkSize_WASAPI(const CriAtomConfig_WASAPI *config)
    Parameters
    Type Name Description
    CriAtom.ConfigWASAPI config

    初期化用コンフィグ構造体

    Returns
    Type Description
    int

    CriSint32 ワーク領域サイズ

    Remarks

    説明: ライブラリを使用するために必要な、ワーク領域のサイズを取得します。

    備考: ライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtom.ConfigWASAPI )の内容によって変化します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。

    注意: 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに CalculateWorkSizeWASAPI(in ConfigWASAPI) 関数をご利用ください。

    See Also
    CriAtom.ConfigWASAPI
    InitializeWASAPI(in ConfigWASAPI)

    ChangeDefaultChannelConfig(int, ChannelConfig)

    LE Pro

    チャンネルコンフィグのデフォルト値変更

    Declaration
    • C#
    • C
    public static void ChangeDefaultChannelConfig(int numChannels, CriAtom.ChannelConfig channelConfig)
    void CRIAPI criAtom_ChangeDefaultChannelConfig(CriSint32 num_channels, CriAtomChannelConfig channel_config)
    Parameters
    Type Name Description
    int numChannels

    チャンネル数

    CriAtom.ChannelConfig channelConfig

    チャンネルコンフィグ

    Remarks

    説明: 音声データの各チャンネルと出力スピーカーの対応付けを変更します。 Atomライブラリは、デフォルト状態では音声データが以下のチャンネル構成であると想定して動作します。

    チャンネル数 想定されるチャンネル構成
    1 Mono
    2 Stereo
    3 _3Lrc
    4 Quad
    5 _5
    6 _5_1
    7 _6_1
    8 _7_1
    9 Ambisonics2p
    10 _7_1_2
    12 _7_1_4
    16 _7_1_4_4
    25 Ambisonics4p
    36 Ambisonics5p
    49 Ambisonics6p
    64 Ambisonics7p
    再生する音声データのチャンネル構成が上記と異なる場合には、本関数を使用してチャンネル構成を変更する必要があります。

    備考: 本関数では現状16ch以下のチャンネル構成のみが変更可能です。

    注意: 構成変更の影響は、第一引数(num_channels)で指定したチャンネルの音声データにのみ影響します。 そのため、異なるチャンネル数の音声データが混在する場合、各チャンネル数に対してそれぞれチャンネル構成の変更を行う必要があります。 例えば、4ch音声と8ch音声の両方についてチャンネル構成を変更したい場合、num_channelsが4のケースと8のケースの2パターンのチャンネル構成を指定する必要があります。 再生中の音声がデフォルト値を参照するタイミングはユーザーの操作に依存します。 そのため、再生中にデフォルト値を変更した場合、意図したタイミングで変更が反映されるとは限りません。 本関数を使用する場合、初期化時など音声を再生する前に実行してください。

    注意: 16chを超えるチャンネル数に対しては現状チャンネルコンフィグを変更することができません。

    ChangeDefaultChannelOrder(int, in int)

    LE Pro

    チャンネル順序のデフォルト値変更

    Declaration
    • C#
    • C
    public static void ChangeDefaultChannelOrder(int numChannels, in int channelOrder)
    void CRIAPI criAtom_ChangeDefaultChannelOrder(CriSint32 num_channels, const CriSint32 *channel_order)
    Parameters
    Type Name Description
    int numChannels

    チャンネル数

    int channelOrder

    チャンネル順序

    Remarks

    説明: 指定したチャンネル数の音声データについて、チャンネルの読み込み順序を変更します。 Atomライブラリは、デフォルト状態では音声データが以下のチャンネル順序でインターリーブされていると想定して動作します。

    チャンネル番号 想定されるチャンネル
    0 レフト
    1 ライト
    2 センター
    3 LFE
    4 サラウンドレフト
    5 サラウンドライト
    6 サラウンドバックレフト
    7 サラウンドバックライト
    8 トップフロントレフト
    9 トップフロントライト
    10 トップバックレフト
    11 トップバックライト
    再生する音声データの並び順が上記と異なる場合には、本関数を使用してチャンネルの読み込み順序を変更する必要があります。 例えば、入力音声のサラウンドバック成分がサラウンド成分より前にある7.1chの音声データ (4、5チャンネル目と6、7チャンネル目とが入れ替わった音声データ)を使用する場合、 以下のようなコードでチャンネル並び順を指定する必要があります。

    補足: モノラル音声はセンターチャンネルと解釈されます。 ただし、デフォルト状態ではレフトスピーカーとライトスピーカーを使用した、いわゆるファントムセンターで出力されます。 (モノラル音声をセンタースピーカーから出力するには、パンスピーカータイプを変更する必要があります。) 5.1.2chの音声データは、デフォルトで以下のチャンネル順序と解釈されます。

    チャンネル番号 想定されるチャンネル
    0 レフト
    1 ライト
    2 センター
    3 LFE
    4 サラウンドレフト
    5 サラウンドライト
    6 トップレフト
    7 トップトライト

    注意: 順序変更の影響は、第一引数(num_channels)で指定したチャンネルの音声データにのみ影響します。 そのため、異なるチャンネル数の音声データが混在する場合、各チャンネル数に対してそれぞれチャンネル順序の変更を行う必要があります。 例えば、7.1ch音声と7.1.4ch音声の両方についてチャンネル順序を変更したい場合、num_channelsが8のケースと12のケースの2パターンのチャンネル順序を指定する必要があります。 再生中の音声がデフォルト値を参照するタイミングはユーザーの操作に依存します。 そのため、再生中にデフォルト値を変更した場合、意図したタイミングで変更が反映されるとは限りません。 本関数を使用する場合、初期化時など音声を再生する前に実行してください。

    DetachPerformanceMonitor()

    LE Pro

    パフォーマンスモニター機能の削除

    Declaration
    • C#
    • C
    public static void DetachPerformanceMonitor()
    void CRIAPI criAtom_DetachPerformanceMonitor(void)
    Remarks

    説明: パフォーマンス計測処理を終了し、パフォーマンス計測機能を削除します。

    注意: 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。

    EnumAudioEndpointsWASAPI(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)

    LE Pro

    オーディオエンドポイントの列挙

    Declaration
    • C#
    • C
    public static int EnumAudioEndpointsWASAPI(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> callback, IntPtr @object)
    CriSint32 CRIAPI criAtom_EnumAudioEndpoints_WASAPI(CriAtomAudioEndpointCbFunc_WASAPI callback, void *object)
    Parameters
    Type Name Description
    delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> callback

    オーディオエンドポイントコールバック関数

    IntPtr object

    ユーザ指定オブジェクト

    Returns
    Type Description
    int

    CriSint32 列挙されたACBオブジェクトの数

    Remarks

    説明: オーディオエンドポイントを列挙します。 本関数を実行すると、第 1 引数( callback ) でセットされたコールバック関数がオーディオエンドポイント数分だけ呼び出されます。 コールバック関数には、IMMDeviceインスタンスが引数として渡されます。

    備考: 第 2 引数( object )にセットした値は、コールバック関数の引数として渡されます。 コールバック関数のその他の引数については、 別途 CriAtom.AudioEndpointCbFuncWASAPI の説明をご参照ください。 戻り値は列挙されたオーディオエンドポイントの数(登録したコールバック関数が呼び出された回数)です。 オーディオエンドポイントが存在しない場合、本関数は 0 を返します。 エラーが発生した際には -1 を返します。

    注意: IMMDeviceインスタンスをコールバック関数内で破棄してはいけません。

    See Also
    CriAtom.AudioEndpointCbFuncWASAPI

    ExecuteAudioProcess()

    LE Pro

    ユーザーマルチスレッド用サーバー処理の実行

    Declaration
    • C#
    • C
    public static void ExecuteAudioProcess()
    void CRIAPI criAtom_ExecuteAudioProcess(void)
    Remarks

    説明: CRI Atomライブラリのみを更新します。 スレッドモデルがUserMultiの場合、 アプリケーションは、この関数を定期的に実行する必要があります。

    CriAtom.Config

    備考: Single に設定した場合、サーバー処理の排他制御が行われないので、 複数のスレッドから呼び出さないようにしてください。

    ファイルの読み込み管理や、データのデコード、音声の出力等、 音声再生に必要な処理のほぼ全てが本関数内で実行されます。 そのため、ライブラリ初期化時に指定したサーバー処理の実行頻度( 構造体の server_frequency )を下回る頻度で本関数を実行した場合、音切れ等の問題が発生する可能性 があります。 また、本関数はExecuteMain() 関数と異なり、CRI File Systemライブラリのサーバー処理を実行しません。 アプリケーションが必要なサーバー処理を正しい順序で実行してください。

    See Also
    ExecuteMain()

    ExecuteMain()

    LE Pro

    マルチスレッド用サーバー処理の実行

    Declaration
    • C#
    • C
    public static void ExecuteMain()
    void CRIAPI criAtom_ExecuteMain(void)
    Remarks

    説明: CRI Atomライブラリの内部状態を更新します。 アプリケーションは、この関数を定期的に実行する必要があります。 サーバー処理を実行すべき回数は、ライブラリ初期化時のパラメーターに依存します。 ライブラリ初期化時にスレッドモデルを Multi に設定した場合、 本関数の呼び出し頻度は少なくても問題は発生しません。 なぜなら、リアルタイム性を要求される処理は全てCRI Atomライブラリ内で 定期的に自動実行されるためです。 (最低でも毎秒1回程度実行されていれば、音切れ等の問題が発生することはありません。) ライブラリ初期化時にスレッドモデルを Single や UserMulti に設定した場合、ファイルの読み込み管理や、 データのデコード、音声の出力等、音声再生に必要な処理のほぼ全てが本関数内で実行されます。 また、音声再生処理に同期して、CRI File Systemライブラリのファイルアクセスとデータ展開処理を実行します。 そのため、以下の場合は音切れなどの問題が発生する可能性があるので注意してください。 ・ライブラリ初期化時に指定したサーバー処理の実行頻度 ( CriAtom.Config 構造体のserver_frequency )を下回る頻度で本関数を実行した場合 ・大きいデータの読み込み、圧縮ファイルの読み込み等を行う場合

    備考: ライブラリ初期化時にスレッドモデルを Multi に設定した場合でも、 本関数を実行する必要があります。 (スレッドモデルを Multi に設定した場合、ステータス更新等、ごく一部の 処理のみを行うため、本関数内で長時間処理がブロックされることはありません。) CRI File Systemライブラリのサーバー処理は、CRI Atomライブラリ内部で実行されます。 そのため、本関数を実行している場合、アプリケーション側で別途CRI File Systemライブラリ のサーバー処理を呼び出す必要はありません。

    See Also
    ExecuteAudioProcess()

    Finalize()

    LE Pro

    ライブラリの終了

    Declaration
    • C#
    • C
    public static void Finalize()
    void CRIAPI criAtom_Finalize(void)
    Remarks

    説明: CRI Atomライブラリを終了します。

    注意: Initialize(in Config) 関数実行前に本関数を実行することはできません。

    See Also
    Initialize(in Config)

    FinalizeIOS()

    LE Pro

    ライブラリの終了

    Declaration
    • C#
    • C
    public static void FinalizeIOS()
    void CRIAPI criAtom_Finalize_IOS(void)
    Remarks

    説明: ライブラリを終了します。

    注意: 本関数は内部的に以下の関数を実行します。

    • Finalize()
    • Finalize()
    • Finalize() 本関数を実行する場合、上記関数を実行しないでください。 InitializeIOS(in ConfigIOS) 関数実行前に本関数を実行することはできません。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに FinalizeIOS() 関数をご利用ください。
    See Also
    InitializeIOS(in ConfigIOS)

    FinalizeMACOSX()

    LE Pro

    ライブラリの終了

    Declaration
    • C#
    • C
    public static void FinalizeMACOSX()
    void CRIAPI criAtom_Finalize_MACOSX(void)
    Remarks

    説明: ライブラリを終了します。

    注意: 本関数は内部的に以下の関数を実行します。

    • Finalize()
    • Finalize()
    • Finalize()
    InitializeMACOSX(in ConfigMACOSX) FinalizeMACOSX()

    本関数を実行する場合、上記関数を実行しないでください。 関数実行前に本関数を実行することはできません。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに 関数をご利用ください。

    See Also
    InitializeMACOSX(in ConfigMACOSX)

    FinalizePC()

    LE Pro

    ライブラリの終了

    Declaration
    • C#
    • C
    public static void FinalizePC()
    void CRIAPI criAtom_Finalize_PC(void)
    Remarks

    説明: ライブラリを終了します。

    注意: 本関数は内部的に以下の関数を実行します。

    • Finalize()
    • Finalize()
    • Finalize() 本関数を実行する場合、上記関数を実行しないでください。 InitializePC(in ConfigPC) 関数実行前に本関数を実行することはできません。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに FinalizePC() 関数をご利用ください。
    See Also
    InitializePC(in ConfigPC)

    FinalizePULSE()

    Pro

    ライブラリの終了

    Declaration
    • C#
    • C
    public static void FinalizePULSE()
    void CRIAPI criAtom_Finalize_PULSE(void)
    Remarks

    説明: ライブラリを終了します。

    注意: 本関数は内部的に以下の関数を実行します。

    • Finalize()
    • Finalize()
    • Finalize() 本関数を実行する場合、上記関数を実行しないでください。 InitializePULSE(in ConfigPULSE) 関数実行前に本関数を実行することはできません。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに FinalizePULSE() 関数をご利用ください。
    See Also
    InitializePULSE(in ConfigPULSE)

    FinalizeWASAPI()

    LE Pro

    ライブラリの終了

    Declaration
    • C#
    • C
    public static void FinalizeWASAPI()
    void CRIAPI criAtom_Finalize_WASAPI(void)
    Remarks

    説明: ライブラリを終了します。

    注意: 本関数は内部的に以下の関数を実行します。

    • Finalize()
    • Finalize()
    • Finalize() 本関数を実行する場合、上記関数を実行しないでください。 InitializeWASAPI(in ConfigWASAPI) 関数実行前に本関数を実行することはできません。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに FinalizeWASAPI() 関数をご利用ください。
    See Also
    InitializeWASAPI(in ConfigWASAPI)

    GetAudioClientIsFormatSupportedWASAPI(IntPtr)

    LE Pro

    指定したフォーマットが利用可能かどうかチェック

    Declaration
    • C#
    • C
    public static bool GetAudioClientIsFormatSupportedWASAPI(IntPtr format)
    CriBool CRIAPI criAtom_GetAudioClientIsFormatSupported_WASAPI(const WAVEFORMATEX *format)
    Parameters
    Type Name Description
    IntPtr format

    使用するフォーマット

    Returns
    Type Description
    bool

    CriBool 指定されたフォーマットが利用可能かどうか( true = 利用可能、false = 利用不可能)

    Remarks

    説明: 引数で指定したフォーマットが、排他モードで利用可能かどうかをチェックします。

    備考: 本関数は IAudioClient::IsFormatSupported 関数のラッパーです。 本関数を実行すると、関数内で AudioClient を作成し、IsFormatSupported 関数を実行します。

    注意: 本関数はライブラリ初期化前にのみ使用可能です。 一部のデバイス/パラメーターについて、本関数が成功するにもかかわらず、 WASAPI の初期化に失敗するケースが確認されています。 本関数が true を返したにもかかわらず、ライブラリの初期化に失敗する場合には、 指定するフォーマットを変更するか、または共有モードをご使用ください。

    GetAudioClientMixFormatWASAPI(IntPtr)

    LE Pro

    ミキサフォーマットの取得

    Declaration
    • C#
    • C
    public static bool GetAudioClientMixFormatWASAPI(IntPtr format)
    CriBool CRIAPI criAtom_GetAudioClientMixFormat_WASAPI(WAVEFORMATEXTENSIBLE *format)
    Parameters
    Type Name Description
    IntPtr format

    ミキサのフォーマット

    Returns
    Type Description
    bool

    CriBool ミキサのフォーマットが取得できたかどうか( true = 成功、false = 失敗)

    Remarks

    説明: 共有モード時に使用されるミキサのフォーマットを取得します。

    備考: 本関数は IAudioClient::GetMixFormat 関数のラッパーです。 本関数を実行すると、関数内で AudioClient を作成し、GetMixFormat 関数を実行します。

    注意: 本関数はライブラリ初期化前にのみ使用可能です。 共有モードと排他モードとでは、使用できるフォーマットが異なります。 本関数で取得する WAVEFORMATEXTENSIBLE 構造体は IEEE float 形式のPCMデータフォーマットを返しますが、 このフォーマットは排他モードではほとんどの場合使用できません。

    GetAudioClientShareModeWASAPI()

    LE Pro

    共有方式の取得

    Declaration
    • C#
    • C
    public static int GetAudioClientShareModeWASAPI()
    AUDCLNT_SHAREMODE CRIAPI criAtom_GetAudioClientShareMode_WASAPI(void)
    Returns
    Type Description
    int

    AUDCLNT_SHAREMODE 共有方式

    Remarks

    説明: 現在指定されている共有方式を取得します。

    See Also
    SetAudioClientShareModeWASAPI(int)

    GetAudioClientWASAPI()

    LE Pro

    AudioClientの取得

    Declaration
    • C#
    • C
    public static IntPtr GetAudioClientWASAPI()
    IAudioClient* CRIAPI criAtom_GetAudioClient_WASAPI(void)
    Returns
    Type Description
    IntPtr

    IAudioClient AudioClient

    Remarks

    説明: Atomライブラリ内で作成されたAudioClientを取得します。

    備考: サウンドデバイスが搭載されていないPCで本関数を実行した場合、 本関数はnullを返します。

    注意: 本関数を実行する前に、ライブラリを初期化する必要があります。

    GetDeviceIdWASAPI(SoundRendererType, IntPtr, int, out NativeBool)

    LE Pro

    サウンドデバイスのID取得

    Declaration
    • C#
    • C
    public static bool GetDeviceIdWASAPI(CriAtom.SoundRendererType type, IntPtr deviceId, int count, out NativeBool isDefaultDevice)
    CriBool CRIAPI criAtom_GetDeviceId_WASAPI(CriAtomSoundRendererType type, LPWSTR device_id, CriSint32 count, CriBool *is_default_device)
    Parameters
    Type Name Description
    CriAtom.SoundRendererType type

    サウンドレンダラタイプ

    IntPtr deviceId

    デバイスID格納領域

    int count

    デバイスID格納領域のサイズ(文字数)

    NativeBool isDefaultDevice

    デフォルトデバイスかどうか

    Returns
    Type Description
    bool

    CriBool デバイスIDが取得できたかどうか

    Remarks

    説明: サウンドレンダラタイプに紐づけられたサウンドデバイスのIDを取得します。 type には、以下の値が指定可能です。

    • Hw1(Nativeと同じ値)
    • Hw2
    • Hw3
    • Hw4 第2引数(device_id)にはデバイスID文字列を受け取るためのメモリ領域を指定します。 この領域は本関数を呼び出すアプリケーション側で確保する必要があります。 第3引数(count)には、第2引数で指定したメモリ領域に格納可能な最大文字数を指定します。 指定したサウンドレンダラに対応するデバイスがデフォルトデバイスの場合、 第4引数(is_default_device)には true がセットされます。 指定したサウンドレンダラに対応するデバイスが SetDeviceIdWASAPI(SoundRendererType, IntPtr) 関数で 指定されたデバイスの場合、第4引数(is_default_device)には false がセットされます。 サウンドデバイスのIDが取得できた場合、本関数は true を返します。 本関数が false を返した場合、以下のいずれかに該当しています。

    GetPerformanceInfo(out PerformanceInfo)

    LE Pro

    パフォーマンス情報の取得

    Declaration
    • C#
    • C
    public static void GetPerformanceInfo(out CriAtom.PerformanceInfo info)
    void CRIAPI criAtom_GetPerformanceInfo(CriAtomPerformanceInfo *info)
    Parameters
    Type Name Description
    CriAtom.PerformanceInfo info

    パフォーマンス情報

    Remarks

    説明: パフォーマンス情報を取得します。 本関数は、 AttachPerformanceMonitor() 関数実行後から DetachPerformanceMonitor() 関数を実行するまでの間、利用可能です。

    See Also
    AttachPerformanceMonitor()
    DetachPerformanceMonitor()

    GetStreamingInfo(out StreamingInfo)

    LE Pro

    ストリーミング情報の取得

    Declaration
    • C#
    • C
    public static bool GetStreamingInfo(out CriAtom.StreamingInfo streamingInfo)
    CriBool CRIAPI criAtom_GetStreamingInfo(CriAtomStreamingInfo *streaming_info)
    Parameters
    Type Name Description
    CriAtom.StreamingInfo streamingInfo

    ストリーミング情報保存先のポインタ

    Returns
    Type Description
    bool
    Remarks

    説明: CRI Atomライブラリのストリーミング管理モジュールからストリーミング情報を取得します。 本関数は、呼び出された時点のストリーミング情報を streaming_info に保存します。

    注意: Atomサーバー内の処理と一部排他制御しているため、 優先度逆転によりAtomサーバーを止めてしまわないように注意してください。 一部のプラットフォームでは、ストリーミング情報を取得できません。 本関数の戻り値を確認してください。 エラーが原因でストリーミング情報を取得できなかった場合については、 エラーコールバックが発生していないかを確認してください。

    See Also
    CriAtom.StreamingInfo

    GetThreadAffinityMaskPC()

    LE Pro

    サーバー処理スレッドのアフィニティマスクの取得

    Declaration
    • C#
    • C
    public static IntPtr GetThreadAffinityMaskPC()
    DWORD_PTR CRIAPI criAtom_GetThreadAffinityMask_PC(void)
    Returns
    Type Description
    IntPtr

    DWORD_PTR スレッドアフィニティマスク

    Remarks

    説明: サーバー処理(ライブラリの内部処理)を行うスレッドのアフィニティマスクを取得します。 取得に成功すると、本関数はサーバー処理を行うスレッドのアフィニティマスクを返します。 取得に失敗した場合、本関数は 0 を返します。

    注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数はエラー値を返します。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行した場合、本関数はエラー値を返します。 (エラーコールバックが発生します。)

    See Also
    InitializePC(in ConfigPC)
    SetThreadAffinityMaskPC(IntPtr)

    GetThreadPriorityPC()

    LE Pro

    サーバー処理スレッドのプライオリティ取得

    Declaration
    • C#
    • C
    public static int GetThreadPriorityPC()
    int CRIAPI criAtom_GetThreadPriority_PC(void)
    Returns
    Type Description
    int

    int スレッドプライオリティ

    Remarks

    説明: サーバー処理(ライブラリの内部処理)を行うスレッドのプライオリティを取得します。 取得に成功すると、本関数はサーバー処理を行うスレッドのプライオリティを返します。 取得に失敗した場合、本関数は THREAD_PRIORITY_ERROR_RETURN を返します。

    注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数はエラー値を返します。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行した場合、本関数はエラー値を返します。 (エラーコールバックが発生します。)

    See Also
    InitializePC(in ConfigPC)
    SetThreadPriorityPC(int)

    GetVersionString()

    LE Pro

    ライブラリのバージョン番号やビルド情報を返します。

    Declaration
    • C#
    • C
    public static NativeString GetVersionString()
    const CriChar8* CRIAPI criAtom_GetVersionString(void)
    Returns
    Type Description
    NativeString

    const CriChar8* ライブラリ情報文字列

    Remarks

    説明: ライブラリのバージョン、ビルドした日時、プラットフォームの情報が表示されます。

    Initialize(in Config)

    LE Pro

    ライブラリの初期化

    Declaration
    • C#
    • C
    public static void Initialize(in CriAtom.Config config)
    void CRIAPI criAtom_Initialize(const CriAtomConfig *config, void *work, CriSint32 work_size)
    Parameters
    Type Name Description
    CriAtom.Config config

    初期化用コンフィグ構造体

    Remarks

    説明: CRI Atomライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 Finalize() 関数を実行するまでの間、 利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ワーク領域を確保する方法には、以下の2通りの方法があります。 (a) User Allocator方式:メモリの確保/解放に、ユーザが用意した関数を使用する方法。 (b) Fixed Memory方式:必要なメモリ領域を直接ライブラリに渡す方法。 User Allocator方式を用いる場合、ユーザはCRI Atomライブラリにメモリ確保関数を登録しておきます。 workにnull、work_sizeに0を指定して本関数を呼び出すことで、 ライブラリは登録済みのメモリ確保関数を使用して必要なメモリを自動的に確保します。 ユーザがワーク領域を用意する必要はありません。 初期化時に確保されたメモリは、終了処理時( Finalize() 関数実行時)に解放されます。 Fixed Memory方式を用いる場合、ワーク領域として別途確保済みのメモリ領域を本関数に 設定する必要があります。 ワーク領域のサイズは CalculateWorkSize(in Config) 関数で取得可能です。 初期化処理の前に CalculateWorkSize(in Config) 関数で取得したサイズ分のメモリを予め 確保しておき、本関数に設定してください。 尚、Fixed Memory方式を用いた場合、ワーク領域はライブラリの終了処理( Finalize() 関数) を行うまでの間、ライブラリ内で利用され続けます。 ライブラリの終了処理を行う前に、ワーク領域のメモリを解放しないでください。

    例: 【User Allocator方式によるライブラリの初期化】 User Allocator方式を用いる場合、ライブラリの初期化/終了の手順は以下の通りです。

    1. 初期化処理実行前に、 SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, IntPtr) 関数と SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) 関数を用いてメモリ確保/解放関数を登録する。
    2. 初期化用コンフィグ構造体にパラメーターをセットする。
    3. Initialize(in Config) 関数で初期化処理を行う。 (workにはnull、work_sizeには0を指定する。)
    4. アプリケーション終了時に Finalize() 関数で終了処理を行う。

    具体的なコードは以下のとおりです。 【Fixed Memory方式によるライブラリの初期化】 Fixed Memory方式を用いる場合、ライブラリの初期化/終了の手順は以下の通りです。

    InitializeIOS(in ConfigIOS)

    LE Pro

    ライブラリの初期化

    Declaration
    • C#
    • C
    public static void InitializeIOS(in CriAtom.ConfigIOS config)
    void CRIAPI criAtom_Initialize_IOS(const CriAtomConfig_IOS *config, void *work, CriSint32 work_size)
    Parameters
    Type Name Description
    CriAtom.ConfigIOS config

    初期化用コンフィグ構造体

    Remarks

    説明: ライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 FinalizeIOS() 関数を実行するまでの間、 利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。 ワーク領域サイズの計算には、 CalculateWorkSizeIOS(in ConfigIOS) 関数を使用してください。

    備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケータを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケータ から必要なワーク領域サイズ分のメモリが動的に確保されます。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。

    注意: 本関数は内部的に以下の関数を実行します。

    • Initialize(in Config)
    • Initialize(in Config)
    • Initialize(in Config) 本関数を実行する場合、上記関数を実行しないでください。 本関数を実行後、必ず対になる FinalizeIOS() 関数を実行してください。 また、 FinalizeIOS() 関数を実行するまでは、本関数を再度実行しないでください。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに InitializeIOS(in ConfigIOS) 関数をご利用ください。
    See Also
    CriAtom.ConfigIOS
    FinalizeIOS()
    SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)
    CalculateWorkSizeIOS(in ConfigIOS)

    InitializeMACOSX(in ConfigMACOSX)

    LE Pro

    ライブラリの初期化

    Declaration
    • C#
    • C
    public static void InitializeMACOSX(in CriAtom.ConfigMACOSX config)
    void CRIAPI criAtom_Initialize_MACOSX(const CriAtomConfig_MACOSX *config, void *work, CriSint32 work_size)
    Parameters
    Type Name Description
    CriAtom.ConfigMACOSX config

    初期化用コンフィグ構造体

    Remarks

    説明: ライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 FinalizeMACOSX() 関数を実行するまでの間、 利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。 ワーク領域サイズの計算には、 CalculateWorkSizeMACOSX(in ConfigMACOSX) 関数を使用してください。

    備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケータを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケータ から必要なワーク領域サイズ分のメモリが動的に確保されます。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。

    注意: 本関数は内部的に以下の関数を実行します。

    • Initialize(in Config)
    • Initialize(in Config)
    • Initialize(in Config)
    FinalizeMACOSX() FinalizeMACOSX() InitializeMACOSX(in ConfigMACOSX)

    本関数を実行する場合、上記関数を実行しないでください。 本関数を実行後、必ず対になる 関数を実行してください。 また、 関数を実行するまでは、本関数を再度実行しないでください。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに 関数をご利用ください。

    See Also
    CriAtom.ConfigMACOSX
    FinalizeMACOSX()
    SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)
    CalculateWorkSizeMACOSX(in ConfigMACOSX)

    InitializePC(in ConfigPC)

    LE Pro

    ライブラリの初期化

    Declaration
    • C#
    • C
    public static void InitializePC(in CriAtom.ConfigPC config)
    void CRIAPI criAtom_Initialize_PC(const CriAtomConfig_PC *config, void *work, CriSint32 work_size)
    Parameters
    Type Name Description
    CriAtom.ConfigPC config

    初期化用コンフィグ構造体

    Remarks

    説明: ライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 FinalizePC() 関数を実行するまでの間、 利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。 ワーク領域サイズの計算には、 CalculateWorkSizePC(in ConfigPC) 関数を使用してください。

    備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケーター から必要なワーク領域サイズ分のメモリが動的に確保されます。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。

    注意: 本関数は内部的に以下の関数を実行します。

    • Initialize(in Config)
    • Initialize(in Config)
    • Initialize(in Config) 本関数を実行する場合、上記関数を実行しないでください。 本関数を実行後、必ず対になる FinalizePC() 関数を実行してください。 また、 FinalizePC() 関数を実行するまでは、本関数を再度実行しないでください。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに InitializePC(in ConfigPC) 関数をご利用ください。
    See Also
    CriAtom.ConfigPC
    FinalizePC()
    SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)
    CalculateWorkSizePC(in ConfigPC)

    InitializePULSE(in ConfigPULSE)

    Pro

    ライブラリの初期化

    Declaration
    • C#
    • C
    public static void InitializePULSE(in CriAtom.ConfigPULSE config)
    void CRIAPI criAtom_Initialize_PULSE(const CriAtomConfig_PULSE *config, void *work, CriSint32 work_size)
    Parameters
    Type Name Description
    CriAtom.ConfigPULSE config

    初期化用コンフィグ構造体

    Remarks

    説明: ライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 FinalizePULSE() 関数を実行するまでの間、 利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。 ワーク領域サイズの計算には、 CalculateWorkSizePULSE(in ConfigPULSE) 関数を使用してください。

    備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケータを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケータ から必要なワーク領域サイズ分のメモリが動的に確保されます。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。

    注意: 本関数は内部的に以下の関数を実行します。

    • Initialize(in Config)
    • Initialize(in Config)
    • Initialize(in Config) 本関数を実行する場合、上記関数を実行しないでください。 本関数を実行後、必ず対になる FinalizePULSE() 関数を実行してください。 また、 FinalizePULSE() 関数を実行するまでは、本関数を再度実行しないでください。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに InitializePULSE(in ConfigPULSE) 関数をご利用ください。
    See Also
    CriAtom.ConfigPULSE
    FinalizePULSE()
    SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)
    CalculateWorkSizePULSE(in ConfigPULSE)

    InitializeWASAPI(in ConfigWASAPI)

    LE Pro

    ライブラリの初期化

    Declaration
    • C#
    • C
    public static void InitializeWASAPI(in CriAtom.ConfigWASAPI config)
    void CRIAPI criAtom_Initialize_WASAPI(const CriAtomConfig_WASAPI *config, void *work, CriSint32 work_size)
    Parameters
    Type Name Description
    CriAtom.ConfigWASAPI config

    初期化用コンフィグ構造体

    Remarks

    説明: ライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 FinalizeWASAPI() 関数を実行するまでの間、 利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。 ワーク領域サイズの計算には、 CalculateWorkSizeWASAPI(in ConfigWASAPI) 関数を使用してください。

    備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケーター から必要なワーク領域サイズ分のメモリが動的に確保されます。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。

    注意: 本関数は内部的に以下の関数を実行します。

    • Initialize(in Config)
    • Initialize(in Config)
    • Initialize(in Config) 本関数を実行する場合、上記関数を実行しないでください。 本関数を実行後、必ず対になる FinalizeWASAPI() 関数を実行してください。 また、 FinalizeWASAPI() 関数を実行するまでは、本関数を再度実行しないでください。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに InitializeWASAPI(in ConfigWASAPI) 関数をご利用ください。
    See Also
    CriAtom.ConfigWASAPI
    FinalizeWASAPI()
    SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)
    CalculateWorkSizeWASAPI(in ConfigWASAPI)

    IsAudioOutputActive()

    LE Pro

    オーディオ出力が有効かどうかのチェック

    Declaration
    • C#
    • C
    public static bool IsAudioOutputActive()
    CriBool CRIAPI criAtom_IsAudioOutputActive(void)
    Returns
    Type Description
    bool

    CriBool オーディオ出力が有効かどうか

    Remarks

    説明: オーディオ出力が有効化どうかをチェックします。 CRI Atomライブラリ初期化時、サウンドデバイスが利用可能であった場合、 本関数はtrueを返します。 CRI Atomライブラリ初期化時に、サウンドデバイスが利用不可能であった場合、 本関数はfalseを返します。

    補足: サウンドデバイスが無効な場合でも、Atomライブラリは音声を出力せずに動作します。 (音声データ消費量をタイマーを元に計算し、可能な限り音声出力が有効な場合と同等の動作をエミュレートします。) そのため、音声出力デバイスが使用できないケースであっても、 アプリケーション側でAtomライブラリのAPI呼び出しを回避する必要はありません。 (PC環境等、ユーザがサウンドデバイスを無効化しているケースに対し通知を行いたい場合に、 本関数を使用してください。)

    注意: 本関数は、「Atomライブラリ初期化時点でオーディオデバイスが利用可能だったかどうか」を返します。 ライブラリ初期化後にユーザがサウンドデバイスを抜き差しするケースについては、本関数では検知できません。 (各機種固有のAPIを使用する必要があります。) オーディオ出力が無効な状態でAtomライブラリを初期化後、 ユーザがオーディオデバイスを有効化したとしても、Atomライブラリは音声出力を行いません。 (オーディオデバイスが接続されたことをAtomライブラリが自動で検出することはありません。) アプリケーション実行中にオーディオデバイスを有効化したい場合には、 Atomライブラリの初期化処理をやり直す必要があります。

    See Also
    Initialize(in Config)

    IsDeviceInvalidatedWASAPI()

    LE Pro

    デバイスが無効化されたかどうかのチェック

    Declaration
    • C#
    • C
    public static bool IsDeviceInvalidatedWASAPI()
    CriBool CRIAPI criAtom_IsDeviceInvalidated_WASAPI(void)
    Returns
    Type Description
    bool

    CriBool デバイスが無効化されたかどうか(true = 無効化された、false = 正常に動作中)

    Remarks

    説明: サウンドデバイスが無効化されたかどうかを返します。

    備考: 本関数がtrueを返すのは、アプリケーション実行中にサウンドデバイスを無効化した場合のみです。 元々サウンドデバイスが搭載されていないPCで本関数を実行した場合、本関数はfalseを返します。 (サウンドデバイスの有無は別途 GetAudioClientWASAPI() 関数でチェックする必要があります。)

    See Also
    GetAudioClientWASAPI()

    IsInitializationSucceededIOS()

    LE Pro

    サウンドの初期化に成功したか否か

    Declaration
    • C#
    • C
    public static bool IsInitializationSucceededIOS()
    CriBool CRIAPI criAtom_IsInitializationSucceeded_IOS(void)
    Returns
    Type Description
    bool
    Remarks

    説明: サウンドライブラリの初期化に成功したか否かを返す関数です。 iOSでは、アプリがバックグラウンドにある状態でサウンドライブラリの初期化を行った場合に 内部的にAudioSessionの初期化等に失敗している場合があります。 本関数で初期化が失敗していることを確認した場合は、アプリがフォアグラウンドにある状態で 再度ライブラリの初期化を行うか、 RecoverSoundIOS() を用いて サウンドの復旧を行う必要があります。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに IsInitializationSucceededIOS() 関数をご利用ください。

    IsInitialized()

    LE Pro

    ライブラリ初期化状態の取得

    Declaration
    • C#
    • C
    public static bool IsInitialized()
    CriBool CRIAPI criAtom_IsInitialized(void)
    Returns
    Type Description
    bool

    CriBool 初期化中かどうか

    Remarks

    説明: CRI Atomライブラリが既に初期化されているかどうかをチェックします。

    See Also
    Initialize(in Config)
    Finalize()

    IsSpatialAudioEnabledWASAPI(SoundRendererType)

    LE Pro

    スペーシャルオーディオ機能が有効かどうかのチェック

    Declaration
    • C#
    • C
    public static bool IsSpatialAudioEnabledWASAPI(CriAtom.SoundRendererType type)
    CriBool CRIAPI criAtom_IsSpatialAudioEnabled_WASAPI(CriAtomSoundRendererType type)
    Parameters
    Type Name Description
    CriAtom.SoundRendererType type

    サウンドレンダラタイプ

    Returns
    Type Description
    bool

    CriBool 機能が有効かどうか(true = 有効、false = 無効)

    Remarks

    説明: スペーシャルオーディオ機能が有効になっているかどうかをチェックします。 引数の type には、スペーシャルオーディオ機能が有効化どうかをチェックしたいサウンドレンダラを指定します。

    Lock()

    LE Pro

    サーバー処理の割り込みを防止

    Declaration
    • C#
    • C
    public static void Lock()
    void CRIAPI criAtom_Lock(void)
    Remarks

    説明: サーバー処理の割り込みを防止します。 本関数実行後、Unlock() 関数実行までの間、サーバー処理の動作を防止します。 複数のAPIを同一オーディオフレーム内で確実に実行したい場合には、本関数でサーバー処理の 割り込みを防止し、それらの関数を実行してください。

    注意: 上記の例のように、複数のプレーヤーで同時に再生をスタートする場合でも、 ストリーム再生時は同時に発音が開始されるとは限りません。 (バッファリングに伴う再生遅延があるため。) 本関数実行後、長時間Unlock() 関数を呼ばない場合、音声再生が途切れる恐れがあります。 サーバー処理の割り込みを防止する区間は、最小限に抑える必要があります。

    See Also
    Unlock()

    RecoverSoundIOS()

    LE Pro

    サウンドの復旧

    Declaration
    • C#
    • C
    public static void RecoverSoundIOS()
    void CRIAPI criAtom_RecoverSound_IOS(void)
    Remarks

    説明: AudioSessionAddPropertyListener Callback関数から呼び出すための関数です。 ライブラリ内部のボイスを復旧します。 iOSのデーモンであるmediaserverdが死亡した際には、ライブラリ内のボイスが無効なボイスになり、 再生成が必要になります。 このように、ボイスの復旧が必要な際に呼び出してください。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに RecoverSoundIOS() 関数をご利用ください。

    ResetPerformanceMonitor()

    LE Pro

    パフォーマンスモニターのリセット

    Declaration
    • C#
    • C
    public static void ResetPerformanceMonitor()
    void CRIAPI criAtom_ResetPerformanceMonitor(void)
    Remarks

    説明: 現在までの計測結果を破棄します。 パフォーマンスモニターは、 AttachPerformanceMonitor() 関数実行直後 からパフォーマンス情報の取得を開始し、計測結果を累積します。 これから計測する区間に対し、以前の計測結果を以降の計測結果に含めたくない場合には、 本関数を実行し、累積された計測結果を一旦破棄する必要があります。

    SetAmbisonicsInputFormat(AmbisonicsFormat)

    LE Pro

    Ambisonics音声のフォーマット指定

    Declaration
    • C#
    • C
    public static void SetAmbisonicsInputFormat(CriAtom.AmbisonicsFormat format)
    void CRIAPI criAtom_SetAmbisonicsInputFormat(CriAtomAmbisonicsFormat format)
    Parameters
    Type Name Description
    CriAtom.AmbisonicsFormat format

    フォーマット

    Remarks

    説明: Ambisonics音声データのチャンネル並び順と正規化方式を指定します。 デフォルトのフォーマットは CRIATOM_AMBISONICS_ACN_SN3D です。

    SetAudioClientBufferDurationWASAPI(long)

    LE Pro

    バッファリング時間の指定

    Declaration
    • C#
    • C
    public static void SetAudioClientBufferDurationWASAPI(long refTime)
    void CRIAPI criAtom_SetAudioClientBufferDuration_WASAPI(REFERENCE_TIME ref_time)
    Parameters
    Type Name Description
    long refTime

    バッファリング時間

    Remarks

    説明: WASAPI 初期化時に指定するバッファリング時間を指定します。 Atomライブラリは、本関数で指定された時間分のデータを保持可能なサイズのサウンドバッファーを確保します。

    備考: 本関数に指定した値が IAudioClient::Initialize 関数に渡されます。 ref_timeに0を指定した場合や、本関数を使用しない場合、 Atomライブラリは初期化時に指定されるサーバー処理周波数の値から、 適切なバッファリング時間を計算します。 PC環境ではハードウェア性能にばらつきがあるため、 ワースト性能のハードウェアに合わせてデフォルトのバッファリング量が多めに設定されています。 (デフォルト状態では4V分のバッファーを持っています。)

    注意: 本関数はライブラリの初期化よりも先に実行しておく必要があります。 バッファリング時間を小さくしすぎると、音途切れ等の問題が発生します。 PC環境ではハードウェアに依存して必要なバッファリング量が異なるため、 本関数を使用した場合、テスト環境でうまく動作していても、 ユーザの環境によっては音途切れが発生する可能性があります。 そのため、バッファリング量を変更する場合には、 ユーザが設定値を変更できる仕組み(オプション画面等)を提供することもご検討ください。

    SetAudioClientFormatWASAPI(IntPtr)

    LE Pro

    出力フォーマットの指定

    Declaration
    • C#
    • C
    public static void SetAudioClientFormatWASAPI(IntPtr format)
    void CRIAPI criAtom_SetAudioClientFormat_WASAPI(const WAVEFORMATEX *format)
    Parameters
    Type Name Description
    IntPtr format

    使用するフォーマット

    Remarks

    説明:

    説明: 排他モードで使用するフォーマットを指定します。

    備考: 本関数に指定したフォーマットが、 IAudioClient::Initialize 関数に渡されます。

    注意: 本関数はライブラリの初期化よりも先に実行しておく必要があります。 排他モードを使用する場合、本関数でのモード指定に加え、 SetAudioClientShareModeWASAPI(int) 関数によるモード指定が必要です。

    See Also
    SetAudioClientShareModeWASAPI(int)

    SetAudioClientShareModeWASAPI(int)

    LE Pro

    共有方式の指定

    Declaration
    • C#
    • C
    public static void SetAudioClientShareModeWASAPI(int mode)
    void CRIAPI criAtom_SetAudioClientShareMode_WASAPI(AUDCLNT_SHAREMODE mode)
    Parameters
    Type Name Description
    int mode

    使用するモード

    Remarks

    説明: WASAPIを共有モードで使用するか、排他モードで使用するかを指定します。 本関数を実行しない場合や、 AUDCLNT_SHAREMODE_SHARED を指定して実行した場合、 Atomライブラリは WASAPI を共有モードで初期化します。 AUDCLNT_SHAREMODE_EXCLUSIVE を指定して本関数を実行した場合、 Atomライブラリは WASAPI を排他モードで初期化します。

    注意: 本関数はライブラリの初期化よりも先に実行しておく必要があります。 排他モードを使用する場合、本関数でのモード指定に加え、 SetAudioClientFormatWASAPI(IntPtr) 関数によるフォーマットの指定が必要です。

    See Also
    SetAudioClientFormatWASAPI(IntPtr)

    SetAudioFrameEndCallback(delegate* unmanaged[Cdecl]<IntPtr, void>, IntPtr)

    LE Pro

    オーディオフレーム終了コールバック関数の登録

    Declaration
    • C#
    • C
    public static void SetAudioFrameEndCallback(delegate* unmanaged[Cdecl]<IntPtr, void> func, IntPtr obj)
    void CRIAPI criAtom_SetAudioFrameEndCallback(CriAtomAudioFrameEndCbFunc func, void *obj)
    Parameters
    Type Name Description
    delegate* unmanaged[Cdecl]<IntPtr, void> func

    オーディオフレーム終了コールバック関数

    IntPtr obj

    ユーザ指定オブジェクト

    Remarks

    説明: CRI Atomライブラリにオーディオフレーム終了コールバックを登録します。 オーディオフレームは、CRI Atomライブラリ内でサーバー処理を実行するタイミングを示します。 本関数で登録したコールバック関数は、オーディオフレームの終了時(サーバー処理終了直後)に 実行されます。

    備考: ライブラリ初期化時にスレッドモデルをマルチスレッド( Multi ) に設定した場合、コールバック関数はCRI Atomライブラリ内で作成されたスレッドから 呼び出されます。 ライブラリ初期化時にスレッドモデルをユーザマルチスレッド( UserMulti )、 またはシングルスレッド( Single )に設定した場合、コールバック関数 ExecuteMain() 関数内で呼び出されます。 引数の obj に指定した値は、 CriAtom.AudioFrameEndCbFunc に引数として渡されます。

    注意: コールバック関数は1つしか登録できません。 登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。 funcにnullを指定することで登録済み関数の登録解除が行えます。

    SetAudioFrameStartCallback(delegate* unmanaged[Cdecl]<IntPtr, void>, IntPtr)

    LE Pro

    オーディオフレーム開始コールバック関数の登録

    Declaration
    • C#
    • C
    public static void SetAudioFrameStartCallback(delegate* unmanaged[Cdecl]<IntPtr, void> func, IntPtr obj)
    void CRIAPI criAtom_SetAudioFrameStartCallback(CriAtomAudioFrameStartCbFunc func, void *obj)
    Parameters
    Type Name Description
    delegate* unmanaged[Cdecl]<IntPtr, void> func

    オーディオフレーム開始コールバック関数

    IntPtr obj

    ユーザ指定オブジェクト

    Remarks

    説明: CRI Atomライブラリにオーディオフレーム開始コールバックを登録します。 オーディオフレームは、CRI Atomライブラリ内でサーバー処理を実行するタイミングを示します。 本関数で登録したコールバック関数は、オーディオフレームの開始時(サーバー処理開始直前)に 実行されます。

    備考: ライブラリ初期化時にスレッドモデルをマルチスレッド( Multi ) に設定した場合、コールバック関数はCRI Atomライブラリ内で作成されたスレッドから 呼び出されます。 ライブラリ初期化時にスレッドモデルをユーザマルチスレッド( UserMulti )、 またはシングルスレッド( Single )に設定した場合、コールバック関数 ExecuteMain() 関数内で呼び出されます。 引数の obj に指定した値は、 CriAtom.AudioFrameStartCbFunc に引数として渡されます。

    注意: コールバック関数は1つしか登録できません。 登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。 funcにnullを指定することで登録済み関数の登録解除が行えます。

    SetDefaultConfig(out Config)

    LE Pro

    CriAtom.Configへのデフォルトパラメーターをセット

    Declaration
    • C#
    • C
    public static void SetDefaultConfig(out CriAtom.Config pConfig)
    void criAtom_SetDefaultConfig_(CriAtomConfig *p_config)
    Parameters
    Type Name Description
    CriAtom.Config pConfig

    初期化用コンフィグ構造体へのポインタ

    Remarks

    説明: Initialize(in Config) 関数に設定するコンフィグ構造体( CriAtom.Config )に、 デフォルトの値をセットします。

    See Also
    CriAtom.Config

    SetDefaultDeviceRoleWASAPI(int)

    LE Pro

    デフォルトデバイス種別の指定

    Declaration
    • C#
    • C
    public static void SetDefaultDeviceRoleWASAPI(int role)
    void CRIAPI criAtom_SetDefaultDeviceRole_WASAPI(ERole role)
    Parameters
    Type Name Description
    int role

    デフォルトデバイスとして使用するデバイスの種別

    Remarks

    説明: デフォルトデバイスの種別を指定します。 roleにeConsoleを指定した場合、Atomライブラリは既定のデバイスを使用して音声を出力します。 roleにeCommunicationsを指定した場合、Atomライブラリは既定の通信デバイスを使用して音声を出力します。

    注意: 本関数はライブラリ初期化前に使用する必要があります。

    SetDeviceIdWASAPI(SoundRendererType, IntPtr)

    LE Pro

    サウンドデバイスの指定

    Declaration
    • C#
    • C
    public static void SetDeviceIdWASAPI(CriAtom.SoundRendererType type, IntPtr deviceId)
    void CRIAPI criAtom_SetDeviceId_WASAPI(CriAtomSoundRendererType type, LPCWSTR device_id)
    Parameters
    Type Name Description
    CriAtom.SoundRendererType type

    サウンドレンダラタイプ

    IntPtr deviceId

    デバイスID

    Remarks

    説明: サウンドレンダラタイプとサウンドデバイスの紐づけを行います。 本関数でサウンドレンダラに対してデバイスIDを設定すると、 当該サウンドレンダラを指定して出力した音声は、 全て指定したIDに合致するサウンドデバイスから出力されます。 type には、以下の値が指定可能です。

    • Hw1(Nativeと同じ値)
    • Hw2
    • Hw3
    • Hw4 第2引数(device_id)にnullまたは長さ0の文字列を指定した場合、 当該サウンドレンダラとデバイスIDの紐づけが解除されます。 (既定のデバイスから音声を出力するよう、動作が変更されます。)

    備考: サウンドデバイスのIDは IMMDevice::GetId で取得する必要があります。 指定されたIDに一致するサウンドデバイスが見つからない場合、 当該デバイスを指定して再生された音声は、既定のデバイスから出力されます。

    SetDeviceUpdateCallback(delegate* unmanaged[Cdecl]<IntPtr, void>, IntPtr)

    LE Pro

    デバイス更新通知の登録

    Declaration
    • C#
    • C
    public static void SetDeviceUpdateCallback(delegate* unmanaged[Cdecl]<IntPtr, void> func, IntPtr obj)
    void CRIAPI criAtom_SetDeviceUpdateCallback(CriAtomDeviceUpdateCbFunc func, void *obj)
    Parameters
    Type Name Description
    delegate* unmanaged[Cdecl]<IntPtr, void> func

    デバイス更新通知コールバック関数

    IntPtr obj

    ユーザ指定オブジェクト

    Remarks

    説明: デバイスの更新通知を受け取るためのコールバックを設定します。 本関数を実行すると、デバイスが更新された際、第 1 引数( callback ) でセットされたコールバック関数が呼び出されます。

    備考: 第 2 引数( object )にセットした値は、コールバック関数の引数として渡されます。

    SetDeviceUpdateCallbackWASAPI(delegate* unmanaged[Cdecl]<IntPtr, void>, IntPtr)

    LE Pro

    デバイス更新通知の登録

    Declaration
    • C#
    • C
    public static void SetDeviceUpdateCallbackWASAPI(delegate* unmanaged[Cdecl]<IntPtr, void> callback, IntPtr @object)
    void CRIAPI criAtom_SetDeviceUpdateCallback_WASAPI(CriAtomDeviceUpdateCbFunc_WASAPI callback, void *object)
    Parameters
    Type Name Description
    delegate* unmanaged[Cdecl]<IntPtr, void> callback

    デバイス更新通知コールバック関数

    IntPtr object

    ユーザ指定オブジェクト

    Remarks

    説明: デバイスの更新通知を受け取るためのコールバックを設定します。 本関数を実行すると、デバイスが更新された際、第 1 引数( callback ) でセットされたコールバック関数が呼び出されます。

    備考: 第 2 引数( object )にセットした値は、コールバック関数の引数として渡されます。

    See Also
    CriAtom.AudioEndpointCbFuncWASAPI

    SetFreeTimeBufferingFlagForDefaultDevice(NativeBool)

    LE Pro

    ファイルI/Oの空き時間を使ったストリーミング読み込みを行うかどうか

    Declaration
    • C#
    • C
    public static bool SetFreeTimeBufferingFlagForDefaultDevice(NativeBool flag)
    CriBool CRIAPI criAtom_SetFreeTimeBufferingFlagForDefaultDevice(CriBool flag)
    Parameters
    Type Name Description
    NativeBool flag

    CRI_TRUE=ファイルI/Oの空き時間を使って読み込む

    Returns
    Type Description
    bool
    Remarks

    説明: CRI Atomライブラリのストリーミング管理モジュールに対して、 ファイルI/Oの空き時間を使ってストリーミング読み込みを行うかどうかを設定します。 trueを設定すると、CRI Atomライブラリのストリーミング管理モジュールは ファイルI/Oの空き時間を使って、空きバッファーに対してデータを余分に読み込みます。 falseを設定すると、CRI Atomライブラリのストリーミング管理モジュールは ファイルI/Oの空き時間を使わなくなり、余分なストリーミング読み込みを行わなくなります。 デフォルトではtrueを設定した状態です。

    備考: ファイルI/Oの空き時間を使い、空きバッファーに対してデータを余分に読み込んでおくことで、 シークの発生頻度を減らす事ができ、総合的なファイルI/Oの効率が向上します。 一方、通常ファイルのロード処理は、ストリーミングの読み込みよりも優先度が低いため、 空きバッファーが大きすぎると通常ファイルのロード処理を大幅に遅延させてしまいます。

    注意: Atomサーバー内の処理と一部排他制御しているため、 優先度逆転によりAtomサーバーを止めてしまわないように注意してください。

    SetServerThreadPriorityIOS(int)

    LE Pro

    サーバスレッドプライオリティの設定

    Declaration
    • C#
    • C
    public static void SetServerThreadPriorityIOS(int prio)
    void CRIAPI criAtom_SetServerThreadPriority_IOS(int prio)
    Parameters
    Type Name Description
    int prio

    スレッドのプライオリティ

    Remarks

    説明: CRIサーバスレッドのプライオリティを設定します。 引数 prio は pthread のプライオリティ設定値として使用します。 プライオリティ設定値はメインスレッドからの相対値になります。 アプリケーションのメインスレッド(0)よりも高いプライオリティを指定してください。 プライオリティのデフォルト値は16です。

    注意: InitializeIOS(in ConfigIOS) 関数実行前に本関数を実行することはできません。 サーバ処理スレッドは、CRI File Systemライブラリでも利用されています。 すでにCRI File SystemライブラリのAPIでサーバ処理スレッドの設定を変更している場合 本関数により設定が上書きされますのでご注意ください。

    SetServerThreadPriorityMACOSX(int)

    LE Pro

    サーバスレッドプライオリティの設定

    Declaration
    • C#
    • C
    public static void SetServerThreadPriorityMACOSX(int prio)
    void CRIAPI criAtom_SetServerThreadPriority_MACOSX(int prio)
    Parameters
    Type Name Description
    int prio

    スレッドのプライオリティ

    Remarks

    説明: CRIサーバスレッドのプライオリティを設定します。 引数 prio は pthread のプライオリティ設定値として使用します。 指定できる値の範囲は通常 -16~99で、数字が大きい方が優先度が高くなります。 アプリケーションのメインスレッド(0)よりも高いプライオリティを指定してください。 プライオリティのデフォルト値は10です。

    注意: InitializeMACOSX(in ConfigMACOSX) 関数実行前に本関数を実行することはできません。 サーバ処理スレッドは、CRI File Systemライブラリでも利用されています。 すでにCRI File SystemライブラリのAPIでサーバ処理スレッドの設定を変更している場合 本関数により設定が上書きされますのでご注意ください。

    SetSpatialAudioEnabledWASAPI(SoundRendererType, NativeBool)

    LE Pro

    スペーシャルオーディオ機能の有効化

    Declaration
    • C#
    • C
    public static void SetSpatialAudioEnabledWASAPI(CriAtom.SoundRendererType type, NativeBool sw)
    void CRIAPI criAtom_SetSpatialAudioEnabled_WASAPI(CriAtomSoundRendererType type, CriBool sw)
    Parameters
    Type Name Description
    CriAtom.SoundRendererType type

    サウンドレンダラタイプ

    NativeBool sw

    機能を有効にするかどうか(CRI_TRUE = 有効化、CRI_FALSE = 無効化)

    Remarks

    説明: スペーシャルオーディオ機能(Microsoft Spatial Sound)を有効にします。 引数の type には、スペーシャルオーディオ機能を有効(又は無効)にするサウンドレンダラを指定します。

    備考: 現行のライブラリでは、スペーシャルオーディオ機能はデフォルトで有効です。 そのため、スペーシャルオーディオ機能を無効にしたい場合を除き、本関数を明示的に呼び出す必要はありません。

    注意: 本関数はライブラリ初期化前に使用する必要があります。

    SetThreadAffinityMaskPC(IntPtr)

    LE Pro

    サーバー処理スレッドのアフィニティマスク変更

    Declaration
    • C#
    • C
    public static void SetThreadAffinityMaskPC(IntPtr mask)
    void CRIAPI criAtom_SetThreadAffinityMask_PC(DWORD_PTR mask)
    Parameters
    Type Name Description
    IntPtr mask

    スレッドアフィニティマスク

    Remarks

    説明: サーバー処理(ライブラリの内部処理)を行うスレッドのアフィニティマスクを変更します。 デフォルト状態(本関数を実行しない場合)では、サーバー処理が動作するプロセッサは 一切制限されません。

    注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数は何も処理を行いません。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行しても、効果はありません。 (エラーコールバックが発生します。) サーバー処理スレッドは、CRI File Systemライブラリでも利用されています。 すでにCRI File SystemライブラリのAPIでサーバー処理スレッドの設定を変更している場合 本関数により設定が上書きされますのでご注意ください。

    See Also
    InitializePC(in ConfigPC)
    GetThreadAffinityMaskPC()

    SetThreadPriorityPC(int)

    LE Pro

    サーバー処理スレッドのプライオリティ変更

    Declaration
    • C#
    • C
    public static void SetThreadPriorityPC(int prio)
    void CRIAPI criAtom_SetThreadPriority_PC(int prio)
    Parameters
    Type Name Description
    int prio

    スレッドプライオリティ

    Remarks

    説明: サーバー処理(ライブラリの内部処理)を行うスレッドのプライオリティを変更します。 デフォルト状態(本関数を実行しない場合)では、サーバー処理スレッドのプライオリティは THREAD_PRIORITY_HIGHEST に設定されます。

    注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数は何も処理を行いません。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行しても、効果はありません。 (エラーコールバックが発生します。) サーバー処理スレッドは、CRI File Systemライブラリでも利用されています。 すでにCRI File SystemライブラリのAPIでサーバー処理スレッドの設定を変更している場合 本関数により設定が上書きされますのでご注意ください。

    See Also
    InitializePC(in ConfigPC)
    GetThreadPriorityPC()

    SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)

    LE Pro

    ユーザアロケーターの登録

    Declaration
    • C#
    • C
    public static void SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr> pMallocFunc, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> pFreeFunc, IntPtr pObj)
    void criAtom_SetUserAllocator_(CriAtomMallocFunc p_malloc_func, CriAtomFreeFunc p_free_func, void *p_obj)
    Parameters
    Type Name Description
    delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr> pMallocFunc

    メモリ確保関数

    delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> pFreeFunc

    メモリ解放関数

    IntPtr pObj

    ユーザ指定オブジェクト

    Remarks

    説明: CRI Atom ライブラリにメモリアロケーター(メモリの確保/解放関数)を登録します。 本メソッドでアロケーターを登録すると、Atomライブラリがワーク領域を必要とするタイミングで、 ユーザが登録したメモリ確保/解放処理が呼び出されることになります。 その結果、ワーク領域を必要とする関数( CreateAdxPlayer(in AdxPlayerConfig) 関数等)に対し、 個別にワーク領域をセットする処理を省略することが可能になります。 (ワーク領域に null ポインタ、ワーク領域サイズに 0 バイトを指定した場合でも、 アロケーターからの動的メモリ確保によりライブラリが問題なく動作するようになります。)

    注意: メモリ確保/解放関数のポインタに null を指定することで、 アロケーターの登録を解除することも可能です。 ただし、未解放のメモリ領域が残っている状態で登録を解除すると、 エラーコールバックが返され、登録の解除に失敗します。 (引き続き登録済みのアロケーターが呼び出されることになります。) 本メソッドは内部的に SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, IntPtr) 関数と SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) 関数を呼び出します。 本関数とこれらの API を併用しないようご注意ください。 (本関数の呼び出しにより、上記 API にセットした内容が上書きされます。) また、登録されたメモリアロケーター関数はマルスレッドモード時に複数のスレッドからコール されることがあります。従って、メモリアロケート処理がスレッドセーフでない場合は独自に メモリアロケート処理を排他制御する必要があります。

    SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)

    LE Pro

    メモリ解放関数の登録

    Declaration
    • C#
    • C
    public static void SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> func, IntPtr obj)
    void CRIAPI criAtom_SetUserFreeFunction(CriAtomFreeFunc func, void *obj)
    Parameters
    Type Name Description
    delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> func

    メモリ解放関数

    IntPtr obj

    ユーザ指定オブジェクト

    Remarks

    説明: CRI Atomライブラリにメモリ解放関数を登録します。 CRI Atomライブラリ内がライブラリ内で行うメモリ解放処理を、 ユーザ独自のメモリ解放処理に置き換えたい場合に使用します。 本関数の使用手順は以下のとおりです。 (1) CriAtom.FreeFunc インターフェースに副ったメモリ解放関数を用意する。 (2) SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) 関数を使用し、CRI Atomライブラリに対して メモリ解放関数を登録する。

    備考: 引数の obj に指定した値は、 CriAtom.FreeFunc に引数として渡されます。 メモリ確保時にメモリマネージャー等を参照する必要がある場合には、 当該オブジェクトを本関数の引数にセットしておき、コールバック関数で引数を経由 して参照してください。

    注意: メモリ解放関数を登録する際には、合わせてメモリ確保関数( CriAtom.MallocFunc )を 登録する必要があります。

    See Also
    CriAtom.FreeFunc
    SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, IntPtr)

    SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, IntPtr)

    LE Pro

    メモリ確保関数の登録

    Declaration
    • C#
    • C
    public static void SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr> func, IntPtr obj)
    void CRIAPI criAtom_SetUserMallocFunction(CriAtomMallocFunc func, void *obj)
    Parameters
    Type Name Description
    delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr> func

    メモリ確保関数

    IntPtr obj

    ユーザ指定オブジェクト

    Remarks

    説明: CRI Atomライブラリにメモリ確保関数を登録します。 CRI Atomライブラリ内がライブラリ内で行うメモリ確保処理を、 ユーザ独自のメモリ確保処理に置き換えたい場合に使用します。 本関数の使用手順は以下のとおりです。 (1) CriAtom.MallocFunc インターフェースに副ったメモリ確保関数を用意する。 (2) SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, IntPtr) 関数を使用し、CRI Atomライブラリに対して メモリ確保関数を登録する。

    備考: 引数の obj に指定した値は、 CriAtom.MallocFunc に引数として渡されます。 メモリ確保時にメモリマネージャー等を参照する必要がある場合には、 当該オブジェクトを本関数の引数にセットしておき、コールバック関数で引数を経由 して参照してください。

    注意: メモリ確保関数を登録する際には、合わせてメモリ解放関数( CriAtom.FreeFunc )を 登録する必要があります。

    See Also
    CriAtom.MallocFunc
    SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)

    SetupAudioSessionIOS(in AudioSessionConfigIOS)

    LE Pro

    AudioSessionの設定

    Declaration
    • C#
    • C
    public static void SetupAudioSessionIOS(in CriAtom.AudioSessionConfigIOS config)
    void CRIAPI criAtom_SetupAudioSession_IOS(CriAtomAudioSessionConfig_IOS *config)
    Parameters
    Type Name Description
    CriAtom.AudioSessionConfigIOS config

    コンフィグ構造体

    Remarks

    説明: コンフィグに従ってAudioSessionの設定を行います。 より詳細な設定を行いたい場合はこの関数を呼び出さず、AudioSessionの各種APIを用いて設定してください。

    StartSoundIOS()

    LE Pro

    サウンド処理の再開

    Declaration
    • C#
    • C
    public static void StartSoundIOS()
    void CRIAPI criAtom_StartSound_IOS(void)
    Remarks

    説明: AudioSessionのInterruption Callbak関数から呼び出すための関数です。 サウンド処理を再開します。 本関数を呼び出す前に、AudioSessionのパメラータ設定とアクティベイトを行ってください。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに StartSoundIOS() 関数をご利用ください。

    注意: InitializeIOS(in ConfigIOS) 関数実行前に本関数を実行することはできません。

    See Also
    StopSoundIOS()

    StopSoundIOS()

    LE Pro

    サウンド処理の停止

    Declaration
    • C#
    • C
    public static void StopSoundIOS()
    void CRIAPI criAtom_StopSound_IOS(void)
    Remarks

    説明: AudioSessionのInterruption Callbak関数から呼び出すための関数です。 サウンド処理を停止します。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに StopSoundIOS() 関数をご利用ください。

    注意: InitializeIOS(in ConfigIOS) 関数実行前に本関数を実行することはできません。

    See Also
    StartSoundIOS()

    Unlock()

    LE Pro

    サーバー処理の割り込み防止を解除

    Declaration
    • C#
    • C
    public static void Unlock()
    void CRIAPI criAtom_Unlock(void)
    Remarks

    説明: Lock() 関数による、サーバー処理の割り込み防止を解除します。

    See Also
    Lock()
    In this article
    Back to top Generated by DocFX