コード例 #1
0
ファイル: ADX2Manager.cpp プロジェクト: setu15/FishLight
// プラットフォーム別の初期化
void ADX2Manager::initPlatformSetting()
{
	// ファイルシステムライブラリを初期化します
	CriFsConfig fsConfig;
	criFs_SetDefaultConfig( &fsConfig );
	fsConfig.num_loaders = 32;
	
#if ( CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 )
	
	// Win32用の初期化
	CriAtomExConfig_PC configPC;
	criAtomEx_SetDefaultConfig_PC( &configPC );
	configPC.atom_ex.fs_config				= &fsConfig;
	configPC.hca_mx.output_sampling_rate	= 32000;
	criAtomEx_Initialize_PC( &configPC, NULL, 0 );
	
#elif ( CC_TARGET_PLATFORM == CC_PLATFORM_MAC )
	
	// Mac用の初期化
	CriAtomExConfig_MACOSX configMacOSX;
	criAtomEx_SetDefaultConfig_MACOSX( &configMacOSX );
	configMacOSX.atom_ex.fs_config				= &fsConfig
	configMacOSX.hca_mx.output_sampling_rate	= 32000;
	criAtomEx_Initialize_MACOSX( &configMacOSX, NULL, 0 );
	
#elif ( CC_TARGET_PLATFORM == CC_PLATFORM_IOS )
	
	// iOS用の初期化
	CriAtomExConfig_IOS configIOS;
	criAtomEx_SetDefaultConfig_IOS( &configIOS );
	configIOS.atom_ex.fs_config				= &fsConfig;
	configIOS.hca_mx.output_sampling_rate	= 32000;
	criAtomEx_Initialize_IOS( &configIOS, NULL, 0 );
	
#elif ( CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID )
	
	// Android用の初期化
	CriAtomExConfig_ANDROID configAndroid;
	criAtomEx_SetDefaultConfig_ANDROID( &configAndroid );
	configAndroid.atom_ex.fs_config				= &fsConfig;
	configAndroid.hca_mx.output_sampling_rate	= 32000;
	criAtomEx_Initialize_ANDROID( &configAndroid, NULL, 0 );
	
#endif
	
#if ( CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID )
	
	// ActivityのContextを取得します
	JniMethodInfo methodInfo;
	JniHelper::getStaticMethodInfo(	methodInfo, "org/cocos2dx/lib/Cocos2dxActivity", "getContext", "()Landroid/content/Context;" );
	
	// assetsフォルダへのアクセスを可能にします
	auto androidContextObject = ( jobject )methodInfo.env->CallStaticObjectMethod( methodInfo.classID, methodInfo.methodID );
	criFs_EnableAssetsAccess_ANDROID( JniHelper::getJavaVM(), androidContextObject );
	
#endif
}
コード例 #2
0
ファイル: Manager.cpp プロジェクト: Clpsplug/CBlocks
    Manager::Manager(CriAtomExPlayerConfig playerConfig,
                             CriAtomExStandardVoicePoolConfig voicePoolConfig)
    {
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
        auto interruptionListener = [](void *userData, UInt32 interruptionState) {
            switch (interruptionState) {
                case kAudioSessionBeginInterruption:
                    criAtomEx_StopSound_IOS();
                    break;
                case kAudioSessionEndInterruption:
                    AudioSessionSetActive(true);
                    criAtomEx_StartSound_IOS();
                    break;
            }
        };
        AudioSessionInitialize(NULL, NULL, interruptionListener, NULL);
        UInt32 category = kAudioSessionCategory_AmbientSound;
        AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(category), &category);
        AudioSessionSetActive(true);
#endif
        auto errorCallback = [](const char *errid, uint32_t p1, uint32_t p2, uint32_t *parray) {
            const CriChar8 *errmsg;
            errmsg = criErr_ConvertIdToMessage(errid, p1, p2);
            cocos2d::log("%s", errmsg);
        };
        criErr_SetCallback(errorCallback);
        
        auto userAlloc = [](void *obj, uint32_t size) {
            return malloc(size);
        };
        
        auto userFree = [] (void *obj, void *ptr) {
            free(ptr);
        };
        
        criAtomEx_SetUserAllocator(userAlloc, userFree, NULL);
        
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
        criAtomEx_Initialize_IOS(NULL, NULL, 0);
#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
        criAtomEx_Initialize_ANDROID(NULL, NULL, 0);
        
        /* ANDROIDの場合で必要な一手間。assetsフォルダへのアクセスを可能にする */
        /* まずはJniHelperでActivityのContextを取得 */
        cocos2d::JniMethodInfo methodInfo;
        cocos2d::JniHelper::getStaticMethodInfo(methodInfo,
                                                "org/cocos2dx/lib/Cocos2dxActivity",
                                                "getContext",
                                                "()Landroid/content/Context;");
        auto android_context_object = (jobject)methodInfo.env->CallStaticObjectMethod( methodInfo.classID, methodInfo.methodID );
        /* 有効化。assetsフォルダはCocosプロジェクトのResource相当なので、ほぼ必須と言って良い手順 */
        criFs_EnableAssetsAccess_ANDROID(cocos2d::JniHelper::getJavaVM(), android_context_object);
#elif (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
        criAtomEx_Initialize_PC(NULL, NULL, 0);
#endif
        
        _dbasID = criAtomDbas_Create(NULL, NULL, 0);
        
        /* 上で作った設定オブジェクトを渡して、ボイスプールを作成 */
        _voicePool = criAtomExVoicePool_AllocateStandardVoicePool(&voicePoolConfig, NULL, 0);
        
        /* Player作成にも設定は必要 */
        criAtomExPlayer_SetDefaultConfig(&playerConfig);
        _player = criAtomExPlayer_Create(&playerConfig, NULL, 0);
    }