Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
FrameworkDispatcher.cs
Go to the documentation of this file.
1using System;
4using Microsoft.Xna.Framework.Audio;
5using Microsoft.Xna.Framework.Media;
6
8
9public static class FrameworkDispatcher
10{
11 private struct ManagedCallAndArg
12 {
14
15 public uint ManagedCallArg;
16
22
23 public bool IsEqual(ManagedCallType type, uint arg)
24 {
25 if (type == ManagedCallType)
26 {
27 return arg == ManagedCallArg;
28 }
29 return false;
30 }
31 }
32
33 internal static bool UpdateCalledAtLeastOnce;
34
36
38
39 public static void Update()
40 {
44 {
46 {
48 }
49 pendingCalls.Clear();
50 }
52 {
53 switch (item.ManagedCallType)
54 {
55 case ManagedCallType.Media_ActiveSongChanged:
56 MediaPlayer.OnActiveSongChanged(EventArgs.Empty);
57 break;
58 case ManagedCallType.Media_PlayStateChanged:
59 MediaPlayer.OnMediaStateChanged(EventArgs.Empty);
60 break;
61 case ManagedCallType.CaptureBufferReady:
62 Microphone.AllMicrophones.OnBufferReady(item.ManagedCallArg);
63 break;
64 case ManagedCallType.PlaybackBufferNeeded:
65 DynamicSoundEffectInstance.RaiseBufferNeededOnInstance(item.ManagedCallArg);
66 break;
67 case ManagedCallType.System_DeviceChanged:
69 break;
70 }
71 }
72 pendingCallsCopy.Clear();
73 SoundEffect.RecycleStoppedFireAndForgetInstances();
74 }
75
76 internal static void AddNewPendingCall(ManagedCallType callType, uint arg)
77 {
79 {
81 }
83 {
85 {
87 {
88 if (pendingCall.IsEqual(callType, arg))
89 {
90 return;
91 }
92 }
93 }
95 }
96 }
97
99 {
100 if (type != ManagedCallType.CaptureBufferReady && type != ManagedCallType.Media_ActiveSongChanged)
101 {
102 return type == ManagedCallType.Media_PlayStateChanged;
103 }
104 return true;
105 }
106
107 private static void PollForEvents()
108 {
109 }
110}
static void AddNewPendingCall(ManagedCallType callType, uint arg)
static List< ManagedCallAndArg > pendingCallsCopy
static bool IsOncePerUpdateEvent(ManagedCallType type)
static List< ManagedCallAndArg > pendingCalls
static readonly EventArgs Empty
Definition EventArgs.cs:9
static CultureInfo CurrentCulture