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; }
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; }
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; } }
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); }
internal unsafe SoundBankNotification(RawNotification *rawNotification) : base(rawNotification) { SoundBank = CppObject.FromPointer <SoundBank>(rawNotification->Data.SoundBank.SoundBankPointer); }
internal unsafe GuiNotification(RawNotification *rawNotification) : base(rawNotification) { }
/// <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); }