Skip to content
This repository was archived by the owner on Jul 16, 2020. It is now read-only.

Commit ce3858a

Browse files
authored
Merge pull request #77 from mixer/new-control-infrastructure
New control infrastructure
2 parents 56ea9dd + 818eed7 commit ce3858a

17 files changed

+1101
-373
lines changed

Source/InteractiveSDK/Assets/MixerInteractive/Source/Scripts/InteractiveButtonControl.cs

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public int RemainingCooldown
6262
get
6363
{
6464
Int64 now = (Int64)DateTime.UtcNow.ToUniversalTime().Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds;
65-
int timeRemaining = (int)(cooldownExpirationTime - now);
65+
int timeRemaining = (int)(_cooldownExpirationTime - now);
6666
if (timeRemaining < 0)
6767
{
6868
timeRemaining = 0;
@@ -90,7 +90,7 @@ public bool ButtonDown
9090
bool isDown = false;
9191
if (ControlID != null)
9292
{
93-
InternalButtonCountState ButtonCountState;
93+
_InternalButtonCountState ButtonCountState;
9494
if (InteractivityManager._buttonStates.TryGetValue(ControlID, out ButtonCountState))
9595
{
9696
isDown = ButtonCountState.CountOfButtonDownEvents > 0;
@@ -110,7 +110,7 @@ public bool ButtonPressed
110110
bool isPressed = false;
111111
if (ControlID != null)
112112
{
113-
InternalButtonCountState ButtonCountState;
113+
_InternalButtonCountState ButtonCountState;
114114
if (InteractivityManager._buttonStates.TryGetValue(ControlID, out ButtonCountState))
115115
{
116116
isPressed = ButtonCountState.CountOfButtonPressEvents > 0;
@@ -130,7 +130,7 @@ public bool ButtonUp
130130
bool isUp = false;
131131
if (ControlID != null)
132132
{
133-
InternalButtonCountState ButtonCountState;
133+
_InternalButtonCountState ButtonCountState;
134134
if (InteractivityManager._buttonStates.TryGetValue(ControlID, out ButtonCountState))
135135
{
136136
isUp = ButtonCountState.CountOfButtonUpEvents > 0;
@@ -150,7 +150,7 @@ public uint CountOfButtonDowns
150150
uint countOfButtonDownEvents = 0;
151151
if (ControlID != null)
152152
{
153-
InternalButtonCountState ButtonCountState;
153+
_InternalButtonCountState ButtonCountState;
154154
if (InteractivityManager._buttonStates.TryGetValue(ControlID, out ButtonCountState))
155155
{
156156
countOfButtonDownEvents = ButtonCountState.CountOfButtonDownEvents;
@@ -170,7 +170,7 @@ public uint CountOfButtonPresses
170170
uint countOfButtonPressEvents = 0;
171171
if (ControlID != null)
172172
{
173-
InternalButtonCountState ButtonCountState;
173+
_InternalButtonCountState ButtonCountState;
174174
if (InteractivityManager._buttonStates.TryGetValue(ControlID, out ButtonCountState))
175175
{
176176
countOfButtonPressEvents = ButtonCountState.CountOfButtonPressEvents;
@@ -190,7 +190,7 @@ public uint CountOfButtonUps
190190
uint countOfButtonPressEvents = 0;
191191
if (ControlID != null)
192192
{
193-
InternalButtonCountState ButtonCountState;
193+
_InternalButtonCountState ButtonCountState;
194194
if (InteractivityManager._buttonStates.TryGetValue(ControlID, out ButtonCountState))
195195
{
196196
countOfButtonPressEvents = ButtonCountState.CountOfButtonUpEvents;
@@ -206,9 +206,9 @@ public uint CountOfButtonUps
206206
/// <param name="progress">Value from 0.0 to 1.0.</param>
207207
public void SetProgress(float progress)
208208
{
209-
InteractivityManager.SingletonInstance.SendSetButtonControlProperties(
209+
InteractivityManager.SingletonInstance._SendSetButtonControlProperties(
210210
ControlID,
211-
InteractivityManager.WS_MESSAGE_KEY_PROGRESS,
211+
InteractivityManager._WS_MESSAGE_KEY_PROGRESS,
212212
false,
213213
progress,
214214
string.Empty,
@@ -221,9 +221,9 @@ public void SetProgress(float progress)
221221
/// <param name="text">String to display on the button.</param>
222222
public void SetText(string text)
223223
{
224-
InteractivityManager.SingletonInstance.SendSetButtonControlProperties(
224+
InteractivityManager.SingletonInstance._SendSetButtonControlProperties(
225225
ControlID,
226-
InteractivityManager.WS_MESSAGE_KEY_TEXT,
226+
InteractivityManager._WS_MESSAGE_KEY_TEXT,
227227
false,
228228
0,
229229
text,
@@ -236,9 +236,9 @@ public void SetText(string text)
236236
/// <param name="cost">The number of sparks for this action.</param>
237237
public void SetCost(uint cost)
238238
{
239-
InteractivityManager.SingletonInstance.SendSetButtonControlProperties(
239+
InteractivityManager.SingletonInstance._SendSetButtonControlProperties(
240240
ControlID,
241-
InteractivityManager.WS_MESSAGE_KEY_COST,
241+
InteractivityManager._WS_MESSAGE_KEY_COST,
242242
false,
243243
0,
244244
string.Empty,
@@ -251,7 +251,7 @@ public void SetCost(uint cost)
251251
/// <param name="userID">The ID of the user who used the input control.</param>
252252
public bool GetButtonDown(uint userID)
253253
{
254-
return InteractivityManager.SingletonInstance.GetButtonDown(ControlID, userID);
254+
return InteractivityManager.SingletonInstance._GetButtonDown(ControlID, userID);
255255
}
256256

257257
/// <summary>
@@ -260,7 +260,7 @@ public bool GetButtonDown(uint userID)
260260
/// <param name="userID">The ID of the user who used the input control.</param>
261261
public bool GetButtonPressed(uint userID)
262262
{
263-
return InteractivityManager.SingletonInstance.GetButtonPressed(ControlID, userID);
263+
return InteractivityManager.SingletonInstance._GetButtonPressed(ControlID, userID);
264264
}
265265

266266
/// <summary>
@@ -269,7 +269,7 @@ public bool GetButtonPressed(uint userID)
269269
/// <param name="userID">The ID of the user who used the input control.</param>
270270
public bool GetButtonUp(uint userID)
271271
{
272-
return InteractivityManager.SingletonInstance.GetButtonUp(ControlID, userID);
272+
return InteractivityManager.SingletonInstance._GetButtonUp(ControlID, userID);
273273
}
274274

275275
/// <summary>
@@ -278,7 +278,7 @@ public bool GetButtonUp(uint userID)
278278
/// <param name="userID">The ID of the user who used the input control.</param>
279279
public uint GetCountOfButtonDowns(uint userID)
280280
{
281-
return InteractivityManager.SingletonInstance.GetCountOfButtonDowns(ControlID, userID);
281+
return InteractivityManager.SingletonInstance._GetCountOfButtonDowns(ControlID, userID);
282282
}
283283

284284
/// <summary>
@@ -287,7 +287,7 @@ public uint GetCountOfButtonDowns(uint userID)
287287
/// <param name="userID">The ID of the user who used the input control.</param>
288288
public uint GetCountOfButtonPresses(uint userID)
289289
{
290-
return InteractivityManager.SingletonInstance.GetCountOfButtonPresses(ControlID, userID);
290+
return InteractivityManager.SingletonInstance._GetCountOfButtonPresses(ControlID, userID);
291291
}
292292

293293
/// <summary>
@@ -296,7 +296,7 @@ public uint GetCountOfButtonPresses(uint userID)
296296
/// <param name="userID">The ID of the user who used the input control.</param>
297297
public uint GetCountOfButtonUps(uint userID)
298298
{
299-
return InteractivityManager.SingletonInstance.GetCountOfButtonUps(ControlID, userID);
299+
return InteractivityManager.SingletonInstance._GetCountOfButtonUps(ControlID, userID);
300300
}
301301

302302
/// <summary>
@@ -308,8 +308,9 @@ public void TriggerCooldown(int cooldown)
308308
InteractivityManager.SingletonInstance.TriggerCooldown(ControlID, cooldown);
309309
}
310310

311-
internal Int64 cooldownExpirationTime;
312-
public InteractiveButtonControl(string controlID, InteractiveEventType type, bool disabled, string helpText, uint cost, string eTag, string sceneID) : base(controlID, InteractivityManager.CONTROL_TYPE_BUTTON, type, disabled, helpText, eTag, sceneID)
311+
internal Int64 _cooldownExpirationTime;
312+
public InteractiveButtonControl(string controlID, InteractiveEventType type, bool disabled, string helpText, uint cost, string eTag, string sceneID, Dictionary<string, object> metaproperties) :
313+
base(controlID, InteractivityManager._CONTROL_TYPE_BUTTON, type, disabled, helpText, eTag, sceneID, metaproperties)
313314
{
314315
Cost = cost;
315316
}

Source/InteractiveSDK/Assets/MixerInteractive/Source/Scripts/InteractiveControl.cs

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
2323
* DEALINGS IN THE SOFTWARE.
2424
*/
25+
using System.Collections.Generic;
26+
2527
namespace Microsoft.Mixer
2628
{
2729
/// Base class for Interactivity controls. All controls are created and
@@ -59,10 +61,19 @@ public string HelpText
5961
private set;
6062
}
6163

62-
internal string ETag;
63-
internal string SceneID;
64-
internal string Kind;
65-
internal InteractiveEventType Type;
64+
/// <summary>
65+
/// Returns a read only dictionary of name, value pairs for the control's metadata.
66+
/// </summary>
67+
public IDictionary<string, object> MetaProperties
68+
{
69+
get;
70+
private set;
71+
}
72+
73+
internal string _eTag;
74+
internal string _sceneID;
75+
internal string _kind;
76+
internal InteractiveEventType _type;
6677
internal int participantID;
6778

6879
/// <summary>
@@ -72,9 +83,9 @@ public string HelpText
7283
public void SetDisabled(bool disabled)
7384
{
7485
Disabled = disabled;
75-
InteractivityManager.SingletonInstance.SendSetButtonControlProperties(
86+
InteractivityManager.SingletonInstance._SendSetButtonControlProperties(
7687
ControlID,
77-
InteractivityManager.WS_MESSAGE_VALUE_DISABLED,
88+
InteractivityManager._WS_MESSAGE_VALUE_DISABLED,
7889
disabled,
7990
0,
8091
string.Empty,
@@ -89,28 +100,28 @@ public void SetDisabled(bool disabled)
89100
public void SetProperty(InteractiveControlProperty name, bool value)
90101
{
91102
SetPropertyImpl(
92-
InteractivityManager.SingletonInstance.InteractiveControlPropertyToString(name),
103+
InteractivityManager.SingletonInstance._InteractiveControlPropertyToString(name),
93104
value
94105
);
95106
}
96107
public void SetProperty(InteractiveControlProperty name, double value)
97108
{
98109
SetPropertyImpl(
99-
InteractivityManager.SingletonInstance.InteractiveControlPropertyToString(name),
110+
InteractivityManager.SingletonInstance._InteractiveControlPropertyToString(name),
100111
value
101112
);
102113
}
103114
public void SetProperty(InteractiveControlProperty name, string value)
104115
{
105116
SetPropertyImpl(
106-
InteractivityManager.SingletonInstance.InteractiveControlPropertyToString(name),
117+
InteractivityManager.SingletonInstance._InteractiveControlPropertyToString(name),
107118
value
108119
);
109120
}
110121
public void SetProperty(InteractiveControlProperty name, object value)
111122
{
112123
SetPropertyImpl(
113-
InteractivityManager.SingletonInstance.InteractiveControlPropertyToString(name),
124+
InteractivityManager.SingletonInstance._InteractiveControlPropertyToString(name),
114125
value
115126
);
116127
}
@@ -139,31 +150,32 @@ public void SetProperty(string name, object value)
139150

140151
private void SetPropertyImpl(string name, bool value)
141152
{
142-
InteractivityManager.SingletonInstance._QueuePropertyUpdate(SceneID, ControlID, name, value);
153+
InteractivityManager.SingletonInstance._QueuePropertyUpdate(_sceneID, ControlID, name, value);
143154
}
144155
private void SetPropertyImpl(string name, double value)
145156
{
146-
InteractivityManager.SingletonInstance._QueuePropertyUpdate(SceneID, ControlID, name, value);
157+
InteractivityManager.SingletonInstance._QueuePropertyUpdate(_sceneID, ControlID, name, value);
147158
}
148159
private void SetPropertyImpl(string name, string value)
149160
{
150-
InteractivityManager.SingletonInstance._QueuePropertyUpdate(SceneID, ControlID, name, value);
161+
InteractivityManager.SingletonInstance._QueuePropertyUpdate(_sceneID, ControlID, name, value);
151162
}
152163
private void SetPropertyImpl(string name, object value)
153164
{
154-
InteractivityManager.SingletonInstance._QueuePropertyUpdate(SceneID, ControlID, name, value);
165+
InteractivityManager.SingletonInstance._QueuePropertyUpdate(_sceneID, ControlID, name, value);
155166
}
156167

157-
internal InteractiveControl(string controlID, string kind, InteractiveEventType type, bool disabled, string helpText, string eTag, string sceneID)
168+
internal InteractiveControl(string controlID, string kind, InteractiveEventType type, bool disabled, string helpText, string eTag, string sceneID, Dictionary<string, object> metaProperties)
158169
{
159170
ControlID = controlID;
160-
Kind = kind;
161-
Type = type;
171+
_kind = kind;
172+
_type = type;
162173
Disabled = disabled;
163174
HelpText = helpText;
164-
ETag = eTag;
165-
SceneID = sceneID;
175+
_eTag = eTag;
176+
_sceneID = sceneID;
166177
participantID = -1;
178+
MetaProperties = metaProperties;
167179
}
168180
}
169181
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
using UnityEngine;
2+
3+
namespace Microsoft.Mixer
4+
{
5+
public class InteractiveCoordinatesChangedEventArgs : InteractiveEventArgs
6+
{
7+
public string ControlID
8+
{
9+
get;
10+
private set;
11+
}
12+
13+
public InteractiveParticipant Participant
14+
{
15+
get;
16+
private set;
17+
}
18+
19+
public Vector3 Position
20+
{
21+
get;
22+
private set;
23+
}
24+
25+
internal InteractiveCoordinatesChangedEventArgs(
26+
string id,
27+
InteractiveParticipant participant,
28+
Vector3 position) : base(InteractiveEventType.Coordinates)
29+
{
30+
ControlID = id;
31+
Participant = participant;
32+
Position = position;
33+
}
34+
}
35+
}

Source/InteractiveSDK/Assets/MixerInteractive/Source/Scripts/InteractiveCoordinatesChangedEventArgs.cs.meta

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Source/InteractiveSDK/Assets/MixerInteractive/Source/Scripts/InteractiveEventType.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,16 @@ public enum InteractiveEventType
6161
/// </summary>
6262
Joystick,
6363

64+
/// <summary>
65+
/// Events representing mouse button input.
66+
/// </summary>
67+
MouseButton,
68+
69+
/// <summary>
70+
/// Events representing coordinate input, where input are x, y, z values from 0 to 1.
71+
/// </summary>
72+
Coordinates,
73+
6474
/// <summary>
6575
/// Events representing text input.
6676
/// </summary>

Source/InteractiveSDK/Assets/MixerInteractive/Source/Scripts/InteractiveGroup.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public List<InteractiveParticipant> Participants
6161
List<InteractiveParticipant> allParticipants = InteractivityManager.SingletonInstance.Participants as List<InteractiveParticipant>;
6262
foreach (InteractiveParticipant participant in allParticipants)
6363
{
64-
if (participant.groupID == GroupID)
64+
if (participant._groupID == GroupID)
6565
{
6666
participantsInGroup.Add(participant);
6767
}
@@ -85,10 +85,10 @@ public string SceneID
8585
public void SetScene(string sceneID)
8686
{
8787
SceneID = sceneID;
88-
InteractivityManager.SingletonInstance.SetCurrentSceneInternal(this, sceneID);
88+
InteractivityManager.SingletonInstance._SetCurrentSceneInternal(this, sceneID);
8989
}
9090

91-
internal string etag;
91+
internal string _etag;
9292

9393
/// <summary>
9494
/// Function to construct a InteractiveGroup object.
@@ -102,7 +102,7 @@ public InteractiveGroup(string groupID)
102102
}
103103

104104
GroupID = groupID;
105-
InteractivityManager.SingletonInstance.SendCreateGroupsMessage(GroupID, InteractivityManager.WS_MESSAGE_VALUE_DEFAULT_SCENE_ID);
105+
InteractivityManager.SingletonInstance._SendCreateGroupsMessage(GroupID, InteractivityManager._WS_MESSAGE_VALUE_DEFAULT_SCENE_ID);
106106
}
107107

108108
/// <summary>
@@ -118,12 +118,12 @@ public InteractiveGroup(string groupID, string sceneID)
118118

119119
GroupID = groupID;
120120
SceneID = sceneID;
121-
InteractivityManager.SingletonInstance.SendCreateGroupsMessage(GroupID, SceneID);
121+
InteractivityManager.SingletonInstance._SendCreateGroupsMessage(GroupID, SceneID);
122122
}
123123

124124
internal InteractiveGroup(string newEtag, string sceneID, string groupID)
125125
{
126-
etag = newEtag;
126+
_etag = newEtag;
127127
SceneID = sceneID;
128128
GroupID = groupID;
129129
}

0 commit comments

Comments
 (0)