Exemple #1
0
 internal unsafe MarkerNotification(RawNotification *rawNotification)
     : base(rawNotification)
 {
     CueIndex  = rawNotification->Data.Marker.CueIndex;
     SoundBank = CppObject.FromPointer <SoundBank>(rawNotification->Data.Marker.SoundBankPointer);
     Cue       = CppObject.FromPointer <Cue>(rawNotification->Data.Marker.CuePointer);
     Marker    = rawNotification->Data.Marker.Marker;
 }
Exemple #2
0
 internal unsafe WaveNotification(RawNotification *rawNotification)
     : base(rawNotification)
 {
     WaveBank  = CppObject.FromPointer <WaveBank>(rawNotification->Data.Wave.WaveBankPointer);
     WaveIndex = rawNotification->Data.Wave.WaveIndex;
     CueIndex  = rawNotification->Data.Wave.CueIndex;
     SoundBank = CppObject.FromPointer <SoundBank>(rawNotification->Data.Wave.SoundBankPointer);
     Cue       = CppObject.FromPointer <Cue>(rawNotification->Data.Wave.CuePointer);
     Wave      = CppObject.FromPointer <Wave>(rawNotification->Data.Wave.WavePointer);
 }
 internal unsafe VariableNotification(RawNotification *rawNotification)
     : base(rawNotification)
 {
     CueIndex      = rawNotification->Data.Variable.CueIndex;
     SoundBank     = CppObject.FromPointer <SoundBank>(rawNotification->Data.Variable.SoundBankPointer);
     Cue           = CppObject.FromPointer <Cue>(rawNotification->Data.Variable.CuePointer);
     VariableIndex = rawNotification->Data.Variable.VariableIndex;
     VariableValue = rawNotification->Data.Variable.VariableValue;
     IsLocal       = rawNotification->Data.Variable.Local;
 }
Exemple #4
0
        private static unsafe void NotificationCallbackDelegateImpl(RawNotification *rawNotification)
        {
            if (rawNotification == (void *)0 || rawNotification->ContextPointer == IntPtr.Zero)
            {
                return;
            }

            var callback = (ManagedNotificationCallback)Marshal.GetDelegateForFunctionPointer(rawNotification->ContextPointer, typeof(ManagedNotificationCallback));

            switch (rawNotification->Type)
            {
            case NotificationType.CueDestroyed:
            case NotificationType.CuePlay:
            case NotificationType.CuePrepared:
            case NotificationType.CueStop:
                callback(new CueNotification(rawNotification));
                break;

            case NotificationType.WaveBankDestroyed:
            case NotificationType.WaveBankPrepared:
            case NotificationType.WaveBankStreamingInvalidContent:
                callback(new WaveBankNotification(rawNotification));
                break;

            case NotificationType.WaveDestroyed:
            case NotificationType.WaveLooped:
            case NotificationType.WavePlay:
            case NotificationType.WavePrepared:
            case NotificationType.WaveStop:
                callback(new WaveNotification(rawNotification));
                break;

            case NotificationType.Marker:
                callback(new MarkerNotification(rawNotification));
                break;

            case NotificationType.GuiConnected:
            case NotificationType.GuiDisconnected:
                callback(new GuiNotification(rawNotification));
                break;

            case NotificationType.GlobalVariableChanged:
            case NotificationType.LocalVariableChanged:
                callback(new VariableNotification(rawNotification));
                break;

            case NotificationType.SoundBankDestroyed:
                callback(new SoundBankNotification(rawNotification));
                break;
            }
        }
Exemple #5
0
 internal unsafe CueNotification(RawNotification *rawNotification) : base(rawNotification)
 {
     CueIndex  = rawNotification->Data.Cue.CueIndex;
     Cue       = CppObject.FromPointer <Cue>(rawNotification->Data.Cue.CuePointer);
     SoundBank = CppObject.FromPointer <SoundBank>(rawNotification->Data.Cue.SoundBankPointer);
 }
Exemple #6
0
 internal unsafe SoundBankNotification(RawNotification *rawNotification)
     : base(rawNotification)
 {
     SoundBank = CppObject.FromPointer <SoundBank>(rawNotification->Data.SoundBank.SoundBankPointer);
 }
Exemple #7
0
 internal unsafe GuiNotification(RawNotification *rawNotification)
     : base(rawNotification)
 {
 }
Exemple #8
0
 /// <summary>Initializes a new instance of the <see cref="Notification"/> class.</summary>
 /// <param name="rawNotification">The raw notification.</param>
 internal unsafe Notification(RawNotification *rawNotification)
 {
     Type      = rawNotification->Type;
     TimeStamp = rawNotification->TimeStamp;
 }
 internal unsafe WaveBankNotification(RawNotification *rawNotification)
     : base(rawNotification)
 {
     WaveBank = CppObject.FromPointer <WaveBank>(rawNotification->Data.WaveBank.WaveBankPointer);
 }