Esempio n. 1
0
    void OnDestroy()
    {
        /* 初期化カウンタの更新 */
        initializationCount--;
        if (initializationCount != 0)
        {
            return;
        }

        /* CRI Manaライブラリの終了 */
        if (initializesMana)
        {
            CriManaPlugin.FinalizeLibrary();
        }

        /* CRI Atomライブラリの終了 */
        if (initializesAtom)
        {
            /* EstimatorがStop状態になるまでFinalize */
            while (CriAtomExLatencyEstimator.GetCurrentInfo().status != CriAtomExLatencyEstimator.Status.Stop)
            {
                CriAtomExLatencyEstimator.FinalizeModule();
            }

            /* 終了処理の実行 */
            CriAtomPlugin.FinalizeLibrary();
        }

        /* CRI File Systemライブラリの終了 */
        if (initializesFileSystem)
        {
            CriFsPlugin.FinalizeLibrary();
        }
    }
Esempio n. 2
0
    /**
     * <summary>プラグインの終了(手動終了用)</summary>
     * <remarks>
     * <para header='説明'>プラグインを終了します。<br/>
     * デフォルトでは本関数はOnDestroy関数内で自動的に呼び出されるので、アプリケーションが直接呼び出す必要はありません。</para>
     * </remarks>
     */
    public void Shutdown()
    {
        /* 初期化カウンタの更新 */
        initializationCount--;
        if (initializationCount != 0)
        {
            initializationCount = initializationCount < 0 ? 0 : initializationCount;
            return;
        }


        /* CRI Atomライブラリの終了 */
        if (initializesAtom)
        {
            /* EstimatorがStop状態になるまでFinalize */
            while (CriAtomExLatencyEstimator.GetCurrentInfo().status != CriAtomExLatencyEstimator.Status.Stop)
            {
                CriAtomExLatencyEstimator.FinalizeModule();
            }

            /* 終了処理の実行 */
            CriAtomPlugin.FinalizeLibrary();
        }

        /* CRI File Systemライブラリの終了 */
        if (initializesFileSystem)
        {
            CriFsPlugin.FinalizeLibrary();
        }
    }
 protected virtual void InternalFinalize()
 {
     this.isInitialized = false;
     transceiverHn.Dispose();
     transceiverHn = null;
     CriAtomPlugin.FinalizeLibrary();
 }
Esempio n. 4
0
    void OnDestroy()
    {
        /* 初期化カウンタの更新 */
        initializationCount--;
        if (initializationCount != 0)
        {
            return;
        }

        /* CRI Manaライブラリの終了 */
        if (initializesMana)
        {
            CriManaPlugin.FinalizeLibrary();
        }

        /* CRI Atomライブラリの終了 */
        if (initializesAtom)
        {
            /* 終了処理の実行 */
            CriAtomPlugin.FinalizeLibrary();
        }

        /* CRI File Systemライブラリの終了 */
        if (initializesFileSystem)
        {
            CriFsPlugin.FinalizeLibrary();
        }
    }
Esempio n. 5
0
 protected virtual void InternalFinalize()
 {
     this.player.Dispose();
     this.player = null;
     this.source.Dispose();
     this.source = null;
     CriAtomPlugin.FinalizeLibrary();
 }
Esempio n. 6
0
    /**
     * <summary>サウンドオブジェクトの破棄</summary>
     * \par 説明:
     * サウンドオブジェクトを破棄します。<br/>
     * 本関数を実行した時点で、サウンドオブジェクト作成時にDLL内で確保された
     * リソースが全て解放されます。<br/>
     * \sa CriAtomExSoundObject::CriAtomExSoundObject
     */
    public void Dispose()
    {
        criAtomExSoundObject_Destroy(this.handle);
        this.handle = IntPtr.Zero;

        CriAtomPlugin.FinalizeLibrary();
        GC.SuppressFinalize(this);
    }
Esempio n. 7
0
 void OnDisable()
 {
     if (this.internalListener != null)
     {
         this.internalListener.Dispose();
         this.internalListener = null;
         CriAtomPlugin.FinalizeLibrary();
     }
     CriAtomListener.instance = null;
 }
Esempio n. 8
0
 private void Shutdown()
 {
     foreach (var cueCheet in this.cueSheets)
     {
         if (cueCheet.acb != null)
         {
             cueCheet.acb.Dispose();
             cueCheet.acb = null;
         }
     }
     CriAtomPlugin.FinalizeLibrary();
     CriAtom.instance = null;
 }
Esempio n. 9
0
    /**
     * <summary>ASRラックの破棄</summary>
     * \par 説明:
     * ASRラックを破棄します。
     * */
    public void Dispose()
    {
        #if CRIWARE_SUPPORT_ASR
        if (this._rackId == -1)
        {
            return;
        }

        criAtomExAsrRack_Destroy(this._rackId);
        this._rackId = -1;

        CriAtomPlugin.FinalizeLibrary();
        #endif
        GC.SuppressFinalize(this);
    }
Esempio n. 10
0
    public static void InitializeLibrary()
    {
        /* 初期化カウンタの更新 */
        CriAtomPlugin.initializationCount++;
        if (CriAtomPlugin.initializationCount != 1)
        {
            return;
        }

        /* シーン実行前に初期化済みの場合は終了させる */
        if (CriAtomPlugin.IsLibraryInitialized() == true)
        {
            CriAtomPlugin.FinalizeLibrary();
            CriAtomPlugin.initializationCount = 1;
        }

        /* 初期化パラメータが設定済みかどうかを確認 */
        if (CriAtomPlugin.isConfigured == false)
        {
            Debug.Log("[CRIWARE] Atom initialization parameters are not configured. "
                      + "Initializes Atom by default parameters.");
        }

        /* 依存ライブラリの初期化 */
        CriFsPlugin.InitializeLibrary();

        /* ライブラリの初期化 */
        CriAtomPlugin.criAtomUnity_Initialize();


        /* CriAtomServerのインスタンスを生成 */
                #if UNITY_EDITOR
        /* ゲームプレビュー時のみ生成する */
        if (UnityEngine.Application.isPlaying)
        {
            CriAtomServer.CreateInstance();
        }
                #else
        CriAtomServer.CreateInstance();
                #endif

        /* CriAtomListenerが存在しない場合のためのダミーリスナーを生成 */
        CriAtomListener.CreateDummyNativeListener();
    }
Esempio n. 11
0
 private void Shutdown()
 {
     foreach (var cueSheet in this.cueSheets)
     {
         if (cueSheet.acb != null)
         {
             cueSheet.acb.Dispose();
             cueSheet.acb = null;
         }
             #if (!UNITY_EDITOR || UNITY_EDITOR_OSX) && UNITY_WEBGL
         if (cueSheet.async != null)
         {
             cueSheet.async.Dispose();
             cueSheet.async = null;
         }
             #endif
     }
     CriAtomPlugin.FinalizeLibrary();
     CriAtom.instance = null;
 }
Esempio n. 12
0
    public static void FinalizeLibrary()
    {
        /* 初期化カウンタの更新 */
        CriManaPlugin.initializationCount--;
        if (CriManaPlugin.initializationCount < 0)
        {
            Debug.LogError("[CRIWARE] ERROR: Mana library is already finalized.");
            return;
        }
        if (CriManaPlugin.initializationCount != 0)
        {
            return;
        }

        /* ライブラリの終了 */
        CriManaPlugin.criManaUnity_Finalize();

        /* RendererResourceFactoryのインスタンスを破棄 */
        CriMana.Detail.RendererResourceFactory.DisposeAllFactories();

        /* 依存ライブラリの終了 */
        CriAtomPlugin.FinalizeLibrary();
        CriFsPlugin.FinalizeLibrary();
    }
Esempio n. 13
0
    /**
     * <summary>プラグインの初期化(手動初期化用)</summary>
     * <remarks>
     * <para header='説明'>プラグインの初期化を行います。<br/>
     * デフォルトでは本関数はAwake関数内で自動的に呼び出されるので、アプリケーションが直接呼び出す必要はありません。<br/>
     * <br/>
     * 初期化パラメタをスクリプトから動的に変更して初期化を行いたい場合、本関数を使用してください。<br/></para>
     * <para header='注意'>本関数を使用する場合は、 自動初期化を無効にするため、
     * ::CriWareInitializer::dontInitializeOnAwake プロパティをインスペクタ上でチェックしてください。<br/>
     * また、本関数を呼び出すタイミングは全てのプラグインAPIよりも前である必要があります。
     * Script Execution Orderが高いスクリプト上で行ってください。</para>
     * </remarks>
     *
     */
    public void Initialize()
    {
        /* 初期化カウンタの更新 */
        initializationCount++;
        if (initializationCount != 1)
        {
            /* CriWareInitializer自身による多重初期化は許可しない */
            GameObject.Destroy(this);
            return;
        }

        /* 非実行時にライブラリ機能を使用していた場合は一度終了処理を行う */
        if ((CriFsPlugin.IsLibraryInitialized() == true && CriAtomPlugin.IsLibraryInitialized() == true && CriManaPlugin.IsLibraryInitialized() == true) ||
            (CriFsPlugin.IsLibraryInitialized() == true && CriAtomPlugin.IsLibraryInitialized() == true && CriManaPlugin.IsLibraryInitialized() == false) ||
            (CriFsPlugin.IsLibraryInitialized() == true && CriAtomPlugin.IsLibraryInitialized() == false && CriManaPlugin.IsLibraryInitialized() == false))
        {
#if UNITY_EDITOR || (!UNITY_PS3)
            /* CRI Manaライブラリの終了 */
            if (initializesMana)
            {
                CriManaPlugin.FinalizeLibrary();
            }
#endif

            /* CRI Atomライブラリの終了 */
            if (initializesAtom)
            {
                /* EstimatorがStop状態になるまでFinalize */
                while (CriAtomExLatencyEstimator.GetCurrentInfo().status != CriAtomExLatencyEstimator.Status.Stop)
                {
                    CriAtomExLatencyEstimator.FinalizeModule();
                }

                /* 終了処理の実行 */
                CriAtomPlugin.FinalizeLibrary();
            }

            /* CRI File Systemライブラリの終了 */
            if (initializesFileSystem)
            {
                CriFsPlugin.FinalizeLibrary();
            }
        }

        /* CRI File Systemライブラリの初期化 */
        if (initializesFileSystem)
        {
            InitializeFileSystem(fileSystemConfig);
        }


        /* CRI Atomライブラリの初期化 */
        if (initializesAtom)
        {
            switch (atomConfig.inGamePreviewMode)
            {
            case CriAtomConfig.InGamePreviewSwitchMode.Disable:
                atomConfig.usesInGamePreview = false;
                break;

            case CriAtomConfig.InGamePreviewSwitchMode.Enable:
                atomConfig.usesInGamePreview = true;
                break;

            case CriAtomConfig.InGamePreviewSwitchMode.FollowBuildSetting:
                atomConfig.usesInGamePreview = UnityEngine.Debug.isDebugBuild;
                break;

            default:
                /* 既に設定されたフラグに従う */
                break;
            }
            InitializeAtom(atomConfig);
        }


        /* シーンチェンジ後もオブジェクトを維持するかどうかの設定 */
        if (dontDestroyOnLoad)
        {
            DontDestroyOnLoad(transform.gameObject);
            DontDestroyOnLoad(CriWare.Common.managerObject);
        }
    }
Esempio n. 14
0
 public static void Dispose()
 {
     CriAtomPlugin.FinalizeLibrary();
 }
Esempio n. 15
0
 protected virtual void InternalFinalize()
 {
     region3dHn.Dispose();
     region3dHn = null;
     CriAtomPlugin.FinalizeLibrary();
 }
Esempio n. 16
0
    /**
     * <summary>プラグインの初期化(手動初期化用)</summary>
     * \par 説明:
     * プラグインの初期化を行います。<br/>
     * デフォルトでは本関数はAwake関数内で自動的に呼び出されるので、アプリケーションが直接呼び出す必要はありません。<br/>
     * <br/>
     * 初期化パラメタをスクリプトから動的に変更して初期化を行いたい場合、本関数を使用してください。<br/>
     * \par 注意:
     * 本関数を使用する場合は、 自動初期化を無効にするため、 ::CriWareInitializer::dontInitializeOnAwake プロパティをインスペクタ上でチェックしてください。<br/>
     * また、本関数を呼び出すタイミングは全てのプラグインAPIよりも前に呼び出す必要があります。Script Execution Orderが高いスクリプト上で行ってください。
     *
     */
    public void Initialize()
    {
        /* 初期化カウンタの更新 */
        initializationCount++;
        if (initializationCount != 1)
        {
            /* CriWareInitializer自身による多重初期化は許可しない */
            GameObject.Destroy(this);
            return;
        }

        /* 非実行時にライブラリ機能を使用していた場合は一度終了処理を行う */
        if ((CriFsPlugin.IsLibraryInitialized() == true && CriAtomPlugin.IsLibraryInitialized() == true && CriManaPlugin.IsLibraryInitialized() == true) ||
            (CriFsPlugin.IsLibraryInitialized() == true && CriAtomPlugin.IsLibraryInitialized() == true && CriManaPlugin.IsLibraryInitialized() == false) ||
            (CriFsPlugin.IsLibraryInitialized() == true && CriAtomPlugin.IsLibraryInitialized() == false && CriManaPlugin.IsLibraryInitialized() == false))
        {
            /* CRI Manaライブラリの終了 */
            if (initializesMana)
            {
                CriManaPlugin.FinalizeLibrary();
            }

            /* CRI Atomライブラリの終了 */
            if (initializesAtom)
            {
                /* EstimatorがStop状態になるまでFinalize */
                while (CriAtomExLatencyEstimator.GetCurrentInfo().status != CriAtomExLatencyEstimator.Status.Stop)
                {
                    CriAtomExLatencyEstimator.FinalizeModule();
                }

                /* 終了処理の実行 */
                CriAtomPlugin.FinalizeLibrary();
            }

            /* CRI File Systemライブラリの終了 */
            if (initializesFileSystem)
            {
                CriFsPlugin.FinalizeLibrary();
            }
        }

        /* CRI File Systemライブラリの初期化 */
        if (initializesFileSystem)
        {
            InitializeFileSystem(fileSystemConfig);
        }

        /* CRI Atomライブラリの初期化 */
        if (initializesAtom)
        {
            InitializeAtom(atomConfig);
        }

        /* シーンチェンジ後もオブジェクトを維持するかどうかの設定 */
        if (dontDestroyOnLoad)
        {
            DontDestroyOnLoad(transform.gameObject);
            DontDestroyOnLoad(CriWare.managerObject);
        }
    }