public static AKRESULT PrepareGameSyncs(PreparationType in_PreparationType, AkGroupType in_eGameSyncType, uint in_GroupID, uint[] in_paGameSyncID, uint in_uNumGameSyncs, AkCallbackManager.BankCallback in_pfnBankCallback, object in_pCookie) {
		in_pCookie = new AkCallbackManager.BankCallbackPackage(in_pfnBankCallback, in_pCookie);
    {
      AKRESULT ret = (AKRESULT)AkSoundEnginePINVOKE.CSharp_PrepareGameSyncs__SWIG_3((int)in_PreparationType, (int)in_eGameSyncType, in_GroupID, in_paGameSyncID, in_uNumGameSyncs, (IntPtr)0, (IntPtr)in_pCookie.GetHashCode());

      return ret;
    }
  }
  public static AKRESULT PrepareEvent(PreparationType in_PreparationType, uint[] in_pEventID, uint in_uNumEvent, AkCallbackManager.BankCallback in_pfnBankCallback, object in_pCookie) {
		in_pCookie = new AkCallbackManager.BankCallbackPackage(in_pfnBankCallback, in_pCookie);
    {
      AKRESULT ret = (AKRESULT)AkSoundEnginePINVOKE.CSharp_PrepareEvent__SWIG_3((int)in_PreparationType, in_pEventID, in_uNumEvent, (IntPtr)0, (IntPtr)in_pCookie.GetHashCode());

      return ret;
    }
  }
  public static AKRESULT PrepareGameSyncs(PreparationType in_PreparationType, AkGroupType in_eGameSyncType, string in_pszGroupName, string [] in_ppszGameSyncName, uint in_uNumGameSyncs, AkCallbackManager.BankCallback in_pfnBankCallback, object in_pCookie) {
			
		//Find the required size
		int size = 0;
		foreach(string s in in_ppszGameSyncName)
			size += s.Length + 1;
				
		int sizeofChar = 2;	//Unicode
		IntPtr pMem = Marshal.AllocHGlobal(size * sizeofChar);
		
		//Write the length of array
		Marshal.WriteInt16(pMem, (short)in_ppszGameSyncName.Length);
		IntPtr pCurrent = (IntPtr)(pMem.ToInt64() + sizeofChar);
		
		//Copy the strings one after the other.
		foreach(string s in in_ppszGameSyncName)
		{
			Marshal.Copy(s.ToCharArray(), 0, pCurrent, s.Length);
			pCurrent = (IntPtr)(pCurrent.ToInt64() + sizeofChar * s.Length);
			Marshal.WriteInt16(pCurrent, 0);	//Null-terminated string
			pCurrent = (IntPtr)(pCurrent.ToInt64() + sizeofChar);
		}		
		
		in_pCookie = new AkCallbackManager.BankCallbackPackage(in_pfnBankCallback, in_pCookie);
    try {
      AKRESULT ret = (AKRESULT)AkSoundEnginePINVOKE.CSharp_PrepareGameSyncs__SWIG_2((int)in_PreparationType, (int)in_eGameSyncType, in_pszGroupName, pMem, in_uNumGameSyncs, (IntPtr)0, (IntPtr)in_pCookie.GetHashCode());

      return ret;
    } finally {
	Marshal.FreeHGlobal(pMem);
    }
  }
  public static AKRESULT PrepareBank(PreparationType in_PreparationType, string in_pszString, AkCallbackManager.BankCallback in_pfnBankCallback, object in_pCookie) {
		in_pCookie = new AkCallbackManager.BankCallbackPackage(in_pfnBankCallback, in_pCookie);
    {
      AKRESULT ret = (AKRESULT)AkSoundEnginePINVOKE.CSharp_PrepareBank__SWIG_7((int)in_PreparationType, in_pszString, (IntPtr)0, (IntPtr)in_pCookie.GetHashCode());

      return ret;
    }
  }
  public static AKRESULT PrepareBank(PreparationType in_PreparationType, uint in_bankID, AkCallbackManager.BankCallback in_pfnBankCallback, object in_pCookie, AkBankContent in_uFlags) {
		in_pCookie = new AkCallbackManager.BankCallbackPackage(in_pfnBankCallback, in_pCookie);
    {
      AKRESULT ret = (AKRESULT)AkSoundEnginePINVOKE.CSharp_PrepareBank__SWIG_10((int)in_PreparationType, in_bankID, (IntPtr)0, (IntPtr)in_pCookie.GetHashCode(), (int)in_uFlags);

      return ret;
    }
  }
  public static AKRESULT LoadBank(IntPtr in_pInMemoryBankPtr, uint in_uInMemoryBankSize, AkCallbackManager.BankCallback in_pfnBankCallback, object in_pCookie, out uint out_bankID) {
		in_pCookie = new AkCallbackManager.BankCallbackPackage(in_pfnBankCallback, in_pCookie);
    {
      AKRESULT ret = (AKRESULT)AkSoundEnginePINVOKE.CSharp_LoadBank__SWIG_5(in_pInMemoryBankPtr, in_uInMemoryBankSize, (IntPtr)0, (IntPtr)in_pCookie.GetHashCode(), out out_bankID);

      return ret;
    }
  }
  public static AKRESULT UnloadBank(uint in_bankID, IntPtr in_pInMemoryBankPtr, AkCallbackManager.BankCallback in_pfnBankCallback, object in_pCookie) {
		in_pCookie = new AkCallbackManager.BankCallbackPackage(in_pfnBankCallback, in_pCookie);
    {
      AKRESULT ret = (AKRESULT)AkSoundEnginePINVOKE.CSharp_UnloadBank__SWIG_8(in_bankID, in_pInMemoryBankPtr, (IntPtr)0, (IntPtr)in_pCookie.GetHashCode());

      return ret;
    }
  }
  public static AKRESULT LoadBank(uint in_bankID, AkCallbackManager.BankCallback in_pfnBankCallback, object in_pCookie, int in_memPoolId) {
		in_pCookie = new AkCallbackManager.BankCallbackPackage(in_pfnBankCallback, in_pCookie);
    {
      AKRESULT ret = (AKRESULT)AkSoundEnginePINVOKE.CSharp_LoadBank__SWIG_4(in_bankID, (IntPtr)0, (IntPtr)in_pCookie.GetHashCode(), in_memPoolId);

      return ret;
    }
  }
Example #9
0
    public static AKRESULT UnloadBank(string in_pszString, IntPtr in_pInMemoryBankPtr, AkCallbackManager.BankCallback in_pfnBankCallback, object in_pCookie)
    {
        in_pCookie = new AkCallbackManager.BankCallbackPackage(in_pfnBankCallback, in_pCookie);
        {
          AKRESULT ret = (AKRESULT)AkSoundEnginePINVOKE.CSharp_UnloadBank__SWIG_6(in_pszString, in_pInMemoryBankPtr, (IntPtr)0, in_pCookie != null ? (IntPtr)in_pCookie.GetHashCode() : (IntPtr)0);

          return ret;
        }
    }
Example #10
0
    public static AKRESULT LoadBank(string in_pszString, AkCallbackManager.BankCallback in_pfnBankCallback, object in_pCookie, int in_memPoolId, out uint out_bankID)
    {
        in_pCookie = new AkCallbackManager.BankCallbackPackage(in_pfnBankCallback, in_pCookie);
        {
          AKRESULT ret = (AKRESULT)AkSoundEnginePINVOKE.CSharp_LoadBank__SWIG_4(in_pszString, (IntPtr)0, in_pCookie != null ? (IntPtr)in_pCookie.GetHashCode() : (IntPtr)0, in_memPoolId, out out_bankID);

          return ret;
        }
    }
 private static bool SafeExtractCallbackPackages(AkCallbackManager.AkCommonCallback commonCB, out AkCallbackManager.EventCallbackPackage eventPkg, out AkCallbackManager.BankCallbackPackage bankPkg)
 {
     eventPkg = null;
     bankPkg  = null;
     if (commonCB.eType == AkCallbackType.AK_AudioInterruption || commonCB.eType == AkCallbackType.AK_AudioSourceChange || commonCB.eType == AkCallbackType.AK_Monitoring)
     {
         return(true);
     }
     if (AkCallbackManager.m_mapEventCallbacks.TryGetValue((int)commonCB.pPackage, ref eventPkg))
     {
         return(true);
     }
     if (AkCallbackManager.m_mapBankCallbacks.TryGetValue((int)commonCB.pPackage, ref bankPkg))
     {
         AkCallbackManager.m_mapBankCallbacks.Remove((int)commonCB.pPackage);
         return(true);
     }
     return(false);
 }
    public static void PostCallbacks()
    {
        if (AkCallbackManager.m_pNotifMem == IntPtr.Zero)
        {
            return;
        }
        IntPtr intPtr = AkCallbackSerializer.Lock();

        if (intPtr == IntPtr.Zero)
        {
            AkCallbackSerializer.Unlock();
            return;
        }
        AkCallbackManager.AkCommonCallback commonCB;
        commonCB.eType    = (AkCallbackType)0;
        commonCB.pPackage = IntPtr.Zero;
        commonCB.pNext    = IntPtr.Zero;
        IntPtr intPtr2 = intPtr;

        commonCB          = default(AkCallbackManager.AkCommonCallback);
        commonCB.pPackage = Marshal.ReadIntPtr(intPtr);
        AkCallbackManager.GotoEndOfCurrentStructMember_IntPtr(ref intPtr);
        commonCB.pNext = Marshal.ReadIntPtr(intPtr);
        AkCallbackManager.GotoEndOfCurrentStructMember_IntPtr(ref intPtr);
        commonCB.eType = (AkCallbackType)Marshal.ReadInt32(intPtr);
        AkCallbackManager.GotoEndOfCurrentStructMember_EnumType <AkCallbackType>(ref intPtr);
        AkCallbackManager.EventCallbackPackage eventCallbackPackage = null;
        AkCallbackManager.BankCallbackPackage  bankCallbackPackage  = null;
        if (!AkCallbackManager.SafeExtractCallbackPackages(commonCB, out eventCallbackPackage, out bankCallbackPackage))
        {
            AkCallbackSerializer.Unlock();
            return;
        }
        intPtr = intPtr2;
        while (true)
        {
            intPtr = (IntPtr)(intPtr.ToInt64() + (long)Marshal.SizeOf(typeof(AkCallbackManager.AkCommonCallback)));
            AkCallbackType eType = commonCB.eType;
            switch (eType)
            {
            case AkCallbackType.AK_EndOfEvent:
            {
                AkCallbackManager.AkEventCallbackInfo akEventCallbackInfo = default(AkCallbackManager.AkEventCallbackInfo);
                akEventCallbackInfo.pCookie = Marshal.ReadIntPtr(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_IntPtr(ref intPtr);
                akEventCallbackInfo.gameObjID = Marshal.ReadIntPtr(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_IntPtr(ref intPtr);
                akEventCallbackInfo.playingID = (uint)Marshal.ReadInt32(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <uint>(ref intPtr);
                akEventCallbackInfo.eventID = (uint)Marshal.ReadInt32(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <uint>(ref intPtr);
                if (eventCallbackPackage.m_bNotifyEndOfEvent)
                {
                    eventCallbackPackage.m_Callback(eventCallbackPackage.m_Cookie, commonCB.eType, akEventCallbackInfo);
                }
                AkCallbackManager.m_mapEventCallbacks.Remove(eventCallbackPackage.GetHashCode());
                goto IL_84D;
            }

            case AkCallbackType.AK_EndOfDynamicSequenceItem:
            {
                AkCallbackManager.AkDynamicSequenceItemCallbackInfo akDynamicSequenceItemCallbackInfo = default(AkCallbackManager.AkDynamicSequenceItemCallbackInfo);
                akDynamicSequenceItemCallbackInfo.pCookie = Marshal.ReadIntPtr(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_IntPtr(ref intPtr);
                akDynamicSequenceItemCallbackInfo.playingID = (uint)Marshal.ReadInt32(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <uint>(ref intPtr);
                akDynamicSequenceItemCallbackInfo.audioNodeID = (uint)Marshal.ReadInt32(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <uint>(ref intPtr);
                akDynamicSequenceItemCallbackInfo.pCustomInfo = Marshal.ReadIntPtr(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_IntPtr(ref intPtr);
                eventCallbackPackage.m_Callback(eventCallbackPackage.m_Cookie, commonCB.eType, akDynamicSequenceItemCallbackInfo);
                goto IL_84D;
            }

            case (AkCallbackType)3:
            case (AkCallbackType)5:
            case (AkCallbackType)6:
            case (AkCallbackType)7:
            {
IL_104:
                if (eType == AkCallbackType.AK_MusicPlayStarted || eType == AkCallbackType.AK_MusicSyncBeat || eType == AkCallbackType.AK_MusicSyncBar || eType == AkCallbackType.AK_MusicSyncEntry || eType == AkCallbackType.AK_MusicSyncExit || eType == AkCallbackType.AK_MusicSyncGrid || eType == AkCallbackType.AK_MusicSyncUserCue || eType == AkCallbackType.AK_MusicSyncPoint)
                {
                    AkCallbackManager.AkMusicSyncCallbackInfo akMusicSyncCallbackInfo = new AkCallbackManager.AkMusicSyncCallbackInfo();
                    akMusicSyncCallbackInfo.pCookie = Marshal.ReadIntPtr(intPtr);
                    AkCallbackManager.GotoEndOfCurrentStructMember_IntPtr(ref intPtr);
                    akMusicSyncCallbackInfo.gameObjID = Marshal.ReadIntPtr(intPtr);
                    AkCallbackManager.GotoEndOfCurrentStructMember_IntPtr(ref intPtr);
                    akMusicSyncCallbackInfo.playingID = (uint)Marshal.ReadInt32(intPtr);
                    AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <uint>(ref intPtr);
                    akMusicSyncCallbackInfo.musicSyncType = (AkCallbackType)Marshal.ReadInt32(intPtr);
                    AkCallbackManager.GotoEndOfCurrentStructMember_EnumType <AkCallbackType>(ref intPtr);
                    akMusicSyncCallbackInfo.fBeatDuration = AkCallbackManager.MarshalFloat32(intPtr);
                    AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <float>(ref intPtr);
                    akMusicSyncCallbackInfo.fBarDuration = AkCallbackManager.MarshalFloat32(intPtr);
                    AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <float>(ref intPtr);
                    akMusicSyncCallbackInfo.fGridDuration = AkCallbackManager.MarshalFloat32(intPtr);
                    AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <float>(ref intPtr);
                    akMusicSyncCallbackInfo.fGridOffset = AkCallbackManager.MarshalFloat32(intPtr);
                    AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <float>(ref intPtr);
                    akMusicSyncCallbackInfo.pszUserCueName = Marshal.PtrToStringAnsi(intPtr);
                    eventCallbackPackage.m_Callback(eventCallbackPackage.m_Cookie, commonCB.eType, akMusicSyncCallbackInfo);
                    goto IL_84D;
                }
                if (eType == AkCallbackType.AK_MidiEvent)
                {
                    AkCallbackManager.AkMidiEventCallbackInfo akMidiEventCallbackInfo = default(AkCallbackManager.AkMidiEventCallbackInfo);
                    akMidiEventCallbackInfo.pCookie = Marshal.ReadIntPtr(intPtr);
                    AkCallbackManager.GotoEndOfCurrentStructMember_IntPtr(ref intPtr);
                    akMidiEventCallbackInfo.gameObjID = Marshal.ReadIntPtr(intPtr);
                    AkCallbackManager.GotoEndOfCurrentStructMember_IntPtr(ref intPtr);
                    akMidiEventCallbackInfo.playingID = (uint)Marshal.ReadInt32(intPtr);
                    AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <uint>(ref intPtr);
                    akMidiEventCallbackInfo.eventID = (uint)Marshal.ReadInt32(intPtr);
                    AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <uint>(ref intPtr);
                    akMidiEventCallbackInfo.byType = Marshal.ReadByte(intPtr);
                    AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <byte>(ref intPtr);
                    akMidiEventCallbackInfo.byChan = Marshal.ReadByte(intPtr);
                    AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <byte>(ref intPtr);
                    byte byType = akMidiEventCallbackInfo.byType;
                    if (byType != 128 && byType != 144)
                    {
                        if (byType != 160)
                        {
                            if (byType != 176)
                            {
                                if (byType != 192)
                                {
                                    if (byType != 208)
                                    {
                                        if (byType != 224)
                                        {
                                            AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <byte>(ref intPtr);
                                            AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <byte>(ref intPtr);
                                        }
                                        else
                                        {
                                            akMidiEventCallbackInfo.byValueLsb = Marshal.ReadByte(intPtr);
                                            AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <byte>(ref intPtr);
                                            akMidiEventCallbackInfo.byValueMsb = Marshal.ReadByte(intPtr);
                                            AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <byte>(ref intPtr);
                                        }
                                    }
                                    else
                                    {
                                        akMidiEventCallbackInfo.byChanAftertouchValue = Marshal.ReadByte(intPtr);
                                        AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <byte>(ref intPtr);
                                        AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <byte>(ref intPtr);
                                    }
                                }
                                else
                                {
                                    akMidiEventCallbackInfo.byProgramNum = Marshal.ReadByte(intPtr);
                                    AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <byte>(ref intPtr);
                                    AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <byte>(ref intPtr);
                                }
                            }
                            else
                            {
                                akMidiEventCallbackInfo.byCc = Marshal.ReadByte(intPtr);
                                AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <byte>(ref intPtr);
                                akMidiEventCallbackInfo.byCcValue = Marshal.ReadByte(intPtr);
                                AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <byte>(ref intPtr);
                            }
                        }
                        else
                        {
                            akMidiEventCallbackInfo.byAftertouchNote = Marshal.ReadByte(intPtr);
                            AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <byte>(ref intPtr);
                            akMidiEventCallbackInfo.byNoteAftertouchValue = Marshal.ReadByte(intPtr);
                            AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <byte>(ref intPtr);
                        }
                    }
                    else
                    {
                        akMidiEventCallbackInfo.byOnOffNote = Marshal.ReadByte(intPtr);
                        AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <byte>(ref intPtr);
                        akMidiEventCallbackInfo.byVelocity = Marshal.ReadByte(intPtr);
                        AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <byte>(ref intPtr);
                    }
                    eventCallbackPackage.m_Callback(eventCallbackPackage.m_Cookie, commonCB.eType, akMidiEventCallbackInfo);
                    goto IL_84D;
                }
                if (eType == AkCallbackType.AK_Monitoring)
                {
                    AkCallbackManager.AkMonitoringMsg akMonitoringMsg = default(AkCallbackManager.AkMonitoringMsg);
                    akMonitoringMsg.errorCode = (AkErrorCode)Marshal.ReadInt32(intPtr);
                    AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <int>(ref intPtr);
                    akMonitoringMsg.errorLevel = (ErrorLevel)Marshal.ReadInt32(intPtr);
                    AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <int>(ref intPtr);
                    akMonitoringMsg.playingID = (uint)Marshal.ReadInt32(intPtr);
                    AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <uint>(ref intPtr);
                    akMonitoringMsg.gameObjID = Marshal.ReadIntPtr(intPtr);
                    AkCallbackManager.GotoEndOfCurrentStructMember_IntPtr(ref intPtr);
                    akMonitoringMsg.msg = AkCallbackManager.SafeMarshalString(intPtr);
                    if (AkCallbackManager.m_MonitoringCB != null)
                    {
                        AkCallbackManager.m_MonitoringCB(akMonitoringMsg.errorCode, akMonitoringMsg.errorLevel, akMonitoringMsg.playingID, akMonitoringMsg.gameObjID, akMonitoringMsg.msg);
                    }
                    goto IL_84D;
                }
                if (eType != AkCallbackType.AK_Bank)
                {
                    goto Block_14;
                }
                AkCallbackManager.AkBankInfo akBankInfo = default(AkCallbackManager.AkBankInfo);
                akBankInfo.bankID = (uint)Marshal.ReadInt32(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <uint>(ref intPtr);
                akBankInfo.inMemoryBankPtr = Marshal.ReadIntPtr(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <IntPtr>(ref intPtr);
                akBankInfo.eLoadResult = (AKRESULT)Marshal.ReadInt32(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_EnumType <AKRESULT>(ref intPtr);
                akBankInfo.memPoolId = (uint)Marshal.ReadInt32(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <uint>(ref intPtr);
                if (bankCallbackPackage != null && bankCallbackPackage.m_Callback != null)
                {
                    bankCallbackPackage.m_Callback(akBankInfo.bankID, akBankInfo.inMemoryBankPtr, akBankInfo.eLoadResult, akBankInfo.memPoolId, bankCallbackPackage.m_Cookie);
                }
                goto IL_84D;
            }

            case AkCallbackType.AK_Marker:
            {
                AkCallbackManager.AkMarkerCallbackInfo akMarkerCallbackInfo = default(AkCallbackManager.AkMarkerCallbackInfo);
                akMarkerCallbackInfo.pCookie = Marshal.ReadIntPtr(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_IntPtr(ref intPtr);
                akMarkerCallbackInfo.gameObjID = Marshal.ReadIntPtr(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_IntPtr(ref intPtr);
                akMarkerCallbackInfo.playingID = (uint)Marshal.ReadInt32(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <uint>(ref intPtr);
                akMarkerCallbackInfo.eventID = (uint)Marshal.ReadInt32(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <uint>(ref intPtr);
                akMarkerCallbackInfo.uIdentifier = (uint)Marshal.ReadInt32(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <uint>(ref intPtr);
                akMarkerCallbackInfo.uPosition = (uint)Marshal.ReadInt32(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <uint>(ref intPtr);
                akMarkerCallbackInfo.strLabel = AkCallbackManager.SafeMarshalMarkerString(intPtr);
                eventCallbackPackage.m_Callback(eventCallbackPackage.m_Cookie, commonCB.eType, akMarkerCallbackInfo);
                goto IL_84D;
            }

            case AkCallbackType.AK_Duration:
            {
                AkCallbackManager.AkDurationCallbackInfo akDurationCallbackInfo = default(AkCallbackManager.AkDurationCallbackInfo);
                akDurationCallbackInfo.pCookie = Marshal.ReadIntPtr(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_IntPtr(ref intPtr);
                akDurationCallbackInfo.gameObjID = Marshal.ReadIntPtr(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_IntPtr(ref intPtr);
                akDurationCallbackInfo.playingID = (uint)Marshal.ReadInt32(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <uint>(ref intPtr);
                akDurationCallbackInfo.eventID = (uint)Marshal.ReadInt32(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <uint>(ref intPtr);
                akDurationCallbackInfo.fDuration = AkCallbackManager.MarshalFloat32(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <float>(ref intPtr);
                akDurationCallbackInfo.fEstimatedDuration = AkCallbackManager.MarshalFloat32(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <float>(ref intPtr);
                akDurationCallbackInfo.audioNodeID = (uint)Marshal.ReadInt32(intPtr);
                AkCallbackManager.GotoEndOfCurrentStructMember_ValueType <uint>(ref intPtr);
                eventCallbackPackage.m_Callback(eventCallbackPackage.m_Cookie, commonCB.eType, akDurationCallbackInfo);
                goto IL_84D;
            }
            }
            goto IL_104;
IL_84D:
            if (!(commonCB.pNext != IntPtr.Zero))
            {
                goto IL_8D3;
            }
            intPtr            = commonCB.pNext;
            intPtr2           = intPtr;
            commonCB          = default(AkCallbackManager.AkCommonCallback);
            commonCB.pPackage = Marshal.ReadIntPtr(intPtr);
            AkCallbackManager.GotoEndOfCurrentStructMember_IntPtr(ref intPtr);
            commonCB.pNext = Marshal.ReadIntPtr(intPtr);
            AkCallbackManager.GotoEndOfCurrentStructMember_IntPtr(ref intPtr);
            commonCB.eType = (AkCallbackType)Marshal.ReadInt32(intPtr);
            AkCallbackManager.GotoEndOfCurrentStructMember_EnumType <AkCallbackType>(ref intPtr);
            eventCallbackPackage = null;
            bankCallbackPackage  = null;
            if (!AkCallbackManager.SafeExtractCallbackPackages(commonCB, out eventCallbackPackage, out bankCallbackPackage))
            {
                goto Block_27;
            }
            intPtr = intPtr2;
        }
Block_14:
        Debug.LogError(string.Format("WwiseUnity: PostCallbacks aborted due to error: Undefined callback type found. Callback object possibly corrupted.", new object[0]));
        AkCallbackSerializer.Unlock();
        return;

Block_27:
        AkCallbackSerializer.Unlock();
        return;

IL_8D3:
        AkCallbackSerializer.Unlock();
    }