コード例 #1
0
        //-----------------------------------------------------------------------------------------
        // Sound Engine initialization.
        //-----------------------------------------------------------------------------------------
        AKRESULT Init( 
            AkMemSettings *     in_pMemSettings,
            AkStreamMgrSettings * in_pStmSettings,
            AkDeviceSettings *  in_pDefaultDeviceSettings,
            AkInitSettings *    in_pSettings,
            AkPlatformInitSettings * in_pPlatformSettings,
			AkMusicSettings *	in_pMusicSettings
            )
        {
            // Check required arguments.
            if ( !in_pMemSettings ||
                 !in_pStmSettings ||
                 !in_pDefaultDeviceSettings )
            {
                assert( !"Invalid arguments" );
                return AK_InvalidParameter;
            }

            // Create and initialise an instance of our memory manager.
            if ( MemoryMgr::Init( in_pMemSettings ) != AK_Success )
            {
                assert( !"Could not create the memory manager." );
                return AK_Fail;
            }

            // Create and initialise an instance of the default stream manager.
			if ( !StreamMgr::Create( *in_pStmSettings ) )
            {
                assert( !"Could not create the Stream Manager" );
                return AK_Fail;
            }

            // Create an IO device.
			if ( m_lowLevelIO.Init( *in_pDefaultDeviceSettings ) != AK_Success )
            {
                assert( !"Cannot create streaming I/O device" );
                return AK_Fail;
            }
            
			// Initialize sound engine.
			if ( SoundEngine::Init( in_pSettings, in_pPlatformSettings ) != AK_Success )
            {
                assert( !"Cannot initialize sound engine" );
                return AK_Fail;
            }

			// Initialize music engine.
			if ( MusicEngine::Init( in_pMusicSettings ) != AK_Success )
            {
                assert( !"Cannot initialize music engine" );
                return AK_Fail;
            }

#ifndef AK_OPTIMIZED
			// Initialize communication.
			AkCommSettings settingsComm;
			AK::Comm::GetDefaultInitSettings( settingsComm );
			if ( AK::Comm::Init( settingsComm ) != AK_Success )
			{
				assert( !"Cannot initialize music communication" );
				return AK_Fail;
			}
#endif // AK_OPTIMIZED

			// Register Vorbis codec
			SoundEngine::RegisterCodec( AKCOMPANYID_AUDIOKINETIC, 
				AKCODECID_VORBIS, 
				CreateVorbisFilePlugin, 
				CreateVorbisBankPlugin );

			return AK_Success;
        }
コード例 #2
0
	AKRESULT Init( 
		AkMemSettings *     in_pMemSettings,
		AkStreamMgrSettings * in_pStmSettings,
		AkDeviceSettings *  in_pDefaultDeviceSettings,
		AkInitSettings *    in_pSettings,
		AkPlatformInitSettings * in_pPlatformSettings,
		AkMusicSettings *	in_pMusicSettings
		)
	{
		// Check required arguments.
		if ( !in_pMemSettings ||
			 !in_pStmSettings ||
			 !in_pDefaultDeviceSettings )
		{
			AKASSERT( !"Invalid arguments" );
			return AK_InvalidParameter;
		}

		// Create and initialise an instance of our memory manager.
		if ( AK::MemoryMgr::Init( in_pMemSettings ) != AK_Success )
		{
			AKASSERT( !"Could not create the memory manager." );
			return AK_Fail;
		}

		// Create and initialise an instance of the default stream manager.
		if ( !AK::StreamMgr::Create( *in_pStmSettings ) )
		{
			AKASSERT( !"Could not create the Stream Manager" );
			return AK_Fail;
		}

		// Create an IO device.
#ifdef AK_ANDROID
		if (g_assetManager == NULL)
		{
			AKASSERT( !"Could not find Android asset manager" );
			return AK_Fail;
		}

		g_lowLevelIO.SetAssetManager(g_assetManager);
#endif 

		if ( g_lowLevelIO.Init( *in_pDefaultDeviceSettings ) != AK_Success )
		{
			AKASSERT( !"Cannot create streaming I/O device" );
			return AK_Fail;
		}

#ifdef AK_ANDROID
		in_pPlatformSettings->pJavaVM = java_vm;
#endif

#ifdef AK_IOS
		in_pPlatformSettings->bAppListensToInterruption = true;
#endif // #ifdef AK_IOS
		// Initialize sound engine.
		if (  AK::SoundEngine::Init( in_pSettings, in_pPlatformSettings ) != AK_Success )
		{
			AKASSERT( !"Cannot initialize sound engine" );
			return AK_Fail;
		}

		// Initialize music engine.
		if ( AK::MusicEngine::Init( in_pMusicSettings ) != AK_Success )
		{
			AKASSERT( !"Cannot initialize music engine" );
			return AK_Fail;
		}

#ifndef AK_OPTIMIZED
	#ifndef AK_METRO
		// Initialize communication.
		AkCommSettings settingsComm;
		AK::Comm::GetDefaultInitSettings( settingsComm );
		if ( AK::Comm::Init( settingsComm ) != AK_Success )
		{
			AKASSERT( !"Cannot initialize music communication" );
		}
	#endif // #ifndef AK_METRO
#endif // AK_OPTIMIZED
		
		// Register plugins
		if ( AK::SoundEngine::RegisterAllPlugins( ) != AK_Success )
		{
			AKASSERT( !"Error while registering plug-ins" );
			return AK_Fail;
		}

		return AK_Success;
	}