Skip to content

Commit f1dd69f

Browse files
authored
Add PublishOptions (#14)
1 parent 8fd12ce commit f1dd69f

File tree

1 file changed

+39
-18
lines changed

1 file changed

+39
-18
lines changed

Runtime/Scripts/Room/Participant/LocalParticipant.cs

Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ public class LocalParticipant : Participant
88
[Preserve]
99
internal LocalParticipant(JSHandle handle) : base(handle)
1010
{
11-
1211
}
1312

1413
public JSError LastCameraError()
@@ -39,31 +38,50 @@ public JSError LastMicrophoneError()
3938
return base.GetTrackByName(name) as LocalTrackPublication;
4039
}
4140

42-
public JSPromise<LocalTrackPublication> SetCameraEnabled(bool enabled, VideoCaptureOptions? options = null)
41+
public JSPromise<LocalTrackPublication> SetCameraEnabled(bool enabled, VideoCaptureOptions? options = null,
42+
TrackPublishOptions? publishOptions = null)
4343
{
4444
JSNative.PushBoolean(enabled);
4545
if (options != null)
4646
JSNative.PushStruct(JsonConvert.SerializeObject(options, JSNative.JsonSettings));
47-
47+
else
48+
JSNative.PushUndefined();
49+
50+
if (publishOptions != null)
51+
JSNative.PushStruct(JsonConvert.SerializeObject(publishOptions, JSNative.JsonSettings));
52+
4853
return Acquire<JSPromise<LocalTrackPublication>>(JSNative.CallMethod(NativeHandle, "setCameraEnabled"));
4954
}
5055

51-
public JSPromise<LocalTrackPublication> SetMicrophoneEnabled(bool enabled, AudioCaptureOptions? options = null)
56+
public JSPromise<LocalTrackPublication> SetMicrophoneEnabled(bool enabled, AudioCaptureOptions? options = null,
57+
TrackPublishOptions? publishOptions = null)
5258
{
5359
JSNative.PushBoolean(enabled);
5460
if (options != null)
5561
JSNative.PushStruct(JsonConvert.SerializeObject(options, JSNative.JsonSettings));
56-
62+
else
63+
JSNative.PushUndefined();
64+
65+
if (publishOptions != null)
66+
JSNative.PushStruct(JsonConvert.SerializeObject(publishOptions, JSNative.JsonSettings));
67+
5768
return Acquire<JSPromise<LocalTrackPublication>>(JSNative.CallMethod(NativeHandle, "setMicrophoneEnabled"));
5869
}
5970

60-
public JSPromise<LocalTrackPublication> SetScreenShareEnabled(bool enabled, ScreenShareCaptureOptions? options = null)
71+
public JSPromise<LocalTrackPublication> SetScreenShareEnabled(bool enabled,
72+
ScreenShareCaptureOptions? options = null, TrackPublishOptions? publishOptions = null)
6173
{
6274
JSNative.PushBoolean(enabled);
6375
if (options != null)
6476
JSNative.PushStruct(JsonConvert.SerializeObject(options, JSNative.JsonSettings));
65-
66-
return Acquire<JSPromise<LocalTrackPublication>>(JSNative.CallMethod(NativeHandle, "setScreenShareEnabled"));
77+
else
78+
JSNative.PushUndefined();
79+
80+
if (publishOptions != null)
81+
JSNative.PushStruct(JsonConvert.SerializeObject(publishOptions, JSNative.JsonSettings));
82+
83+
return Acquire<JSPromise<LocalTrackPublication>>(JSNative.CallMethod(NativeHandle,
84+
"setScreenShareEnabled"));
6785
}
6886

6987
public JSPromise EnableCameraAndMicrophone()
@@ -97,7 +115,8 @@ public JSPromise<LocalTrackPublication> PublishTrack(LocalTrack track, TrackPubl
97115
return Acquire<JSPromise<LocalTrackPublication>>(JSNative.CallMethod(NativeHandle, "publishTrack"));
98116
}
99117

100-
public JSPromise<LocalTrackPublication> PublishTrack(MediaStreamTrack track, TrackPublishOptions? options = null)
118+
public JSPromise<LocalTrackPublication> PublishTrack(MediaStreamTrack track,
119+
TrackPublishOptions? options = null)
101120
{
102121
JSNative.PushObject(track.NativeHandle);
103122
if (options != null)
@@ -110,13 +129,13 @@ public LocalTrackPublication UnpublishTrack(LocalTrack track, bool? stopOnUnpubl
110129
{
111130
JSNative.PushObject(track.NativeHandle);
112131

113-
if(stopOnUnpublish != null)
132+
if (stopOnUnpublish != null)
114133
JSNative.PushBoolean(stopOnUnpublish.Value);
115134

116135
var ptr = JSNative.CallMethod(NativeHandle, "unpublishTrack");
117136
if (JSNative.IsObject(ptr))
118137
return null;
119-
138+
120139
return Acquire<LocalTrackPublication>(ptr);
121140
}
122141

@@ -130,7 +149,7 @@ public LocalTrackPublication UnpublishTrack(MediaStreamTrack track, bool? stopOn
130149
var ptr = JSNative.CallMethod(NativeHandle, "unpublishTrack");
131150
if (JSNative.IsObject(ptr))
132151
return null;
133-
152+
134153
return Acquire<LocalTrackPublication>(ptr);
135154
}
136155

@@ -139,15 +158,16 @@ public JSPromise PublishData(byte[] data, DataPacketKind kind, params RemotePart
139158
{
140159
return PublishData(data, 0, data.Length, kind, participants);
141160
}
142-
143-
public JSPromise PublishData(byte[] data, int offset, int size, DataPacketKind kind, params RemoteParticipant[] participants)
161+
162+
public JSPromise PublishData(byte[] data, int offset, int size, DataPacketKind kind,
163+
params RemoteParticipant[] participants)
144164
{
145165
JSArray<RemoteParticipant> arr = null;
146-
if(participants != null)
166+
if (participants != null)
147167
arr = new JSArray<RemoteParticipant>(participants);
148168

149169
JSNative.PushData(data, offset, size);
150-
JSNative.PushNumber((double)kind);
170+
JSNative.PushNumber((double) kind);
151171

152172
if (participants == null)
153173
JSNative.PushUndefined();
@@ -156,8 +176,9 @@ public JSPromise PublishData(byte[] data, int offset, int size, DataPacketKind k
156176

157177
return Acquire<JSPromise>(JSNative.CallMethod(NativeHandle, "publishData"));
158178
}
159-
160-
public void SetTrackSubscriptionPermissions(bool allParticipantsAllowed, ParticipantTrackPermission[] participantTrackPermissions)
179+
180+
public void SetTrackSubscriptionPermissions(bool allParticipantsAllowed,
181+
ParticipantTrackPermission[] participantTrackPermissions)
161182
{
162183
JSNative.PushBoolean(allParticipantsAllowed);
163184
JSNative.PushObject(new JSArray<ParticipantTrackPermission>(participantTrackPermissions).NativeHandle);

0 commit comments

Comments
 (0)