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

Commit a09347c

Browse files
committed
New Control Infrastructure, metaproperties, screen control
This change includes: * Support for metaproperties * Screen control * Infrastructure to support future controls * Most of the diffs are using underscores for internal variables
1 parent 8f7441e commit a09347c

12 files changed

+525
-407
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
}

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
}

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

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public double X
4545
double x = 0;
4646
if (ControlID != null)
4747
{
48-
InternalJoystickState joystickState;
48+
_InternalJoystickState joystickState;
4949
if (InteractivityManager._joystickStates.TryGetValue(ControlID, out joystickState))
5050
{
5151
x = joystickState.X;
@@ -65,7 +65,7 @@ public double Y
6565
double y = 0;
6666
if (ControlID != null)
6767
{
68-
InternalJoystickState joystickState;
68+
_InternalJoystickState joystickState;
6969
if (InteractivityManager._joystickStates.TryGetValue(ControlID, out joystickState))
7070
{
7171
y = joystickState.Y;
@@ -90,7 +90,7 @@ public double Intensity
9090
/// <param name="userID">The ID of the participant who used the input control.</param>
9191
public double GetX(uint userID)
9292
{
93-
return InteractivityManager.SingletonInstance.GetJoystickX(ControlID, userID);
93+
return InteractivityManager.SingletonInstance._GetJoystickX(ControlID, userID);
9494
}
9595

9696
/// <summary>
@@ -99,21 +99,22 @@ public double GetX(uint userID)
9999
/// <param name="userID">The ID of the participant who used the input control.</param>
100100
public double GetY(uint userID)
101101
{
102-
return InteractivityManager.SingletonInstance.GetJoystickY(ControlID, userID);
102+
return InteractivityManager.SingletonInstance._GetJoystickY(ControlID, userID);
103103
}
104104

105-
public InteractiveJoystickControl(string controlID, InteractiveEventType type, bool enabled, string helpText, string eTag, string sceneID) : base(controlID, InteractivityManager.CONTROL_TYPE_JOYSTICK, type, enabled, helpText, eTag, sceneID)
105+
public InteractiveJoystickControl(string controlID, InteractiveEventType type, bool enabled, string helpText, string eTag, string sceneID, Dictionary<string, object> metaproperties) :
106+
base(controlID, InteractivityManager._CONTROL_TYPE_JOYSTICK, type, enabled, helpText, eTag, sceneID, metaproperties)
106107
{
107108
}
108109

109-
internal uint UserID;
110+
internal uint _userID;
110111

111-
private bool TryGetJoystickStateByParticipant(uint userID, string controlID, out InternalJoystickState joystickState)
112+
private bool TryGetJoystickStateByParticipant(uint userID, string controlID, out _InternalJoystickState joystickState)
112113
{
113-
joystickState = new InternalJoystickState();
114+
joystickState = new _InternalJoystickState();
114115
bool joystickExists = false;
115116
bool participantExists = false;
116-
Dictionary<string, InternalJoystickState> participantControls;
117+
Dictionary<string, _InternalJoystickState> participantControls;
117118
participantExists = InteractivityManager._joystickStatesByParticipant.TryGetValue(userID, out participantControls);
118119
if (participantExists)
119120
{

0 commit comments

Comments
 (0)