Skip to content

Commit

Permalink
Add PublishOptions (#14)
Browse files Browse the repository at this point in the history
  • Loading branch information
theomonnom authored Jul 12, 2022
1 parent 8fd12ce commit f1dd69f
Showing 1 changed file with 39 additions and 18 deletions.
57 changes: 39 additions & 18 deletions Runtime/Scripts/Room/Participant/LocalParticipant.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ public class LocalParticipant : Participant
[Preserve]
internal LocalParticipant(JSHandle handle) : base(handle)
{

}

public JSError LastCameraError()
Expand Down Expand Up @@ -39,31 +38,50 @@ public JSError LastMicrophoneError()
return base.GetTrackByName(name) as LocalTrackPublication;
}

public JSPromise<LocalTrackPublication> SetCameraEnabled(bool enabled, VideoCaptureOptions? options = null)
public JSPromise<LocalTrackPublication> SetCameraEnabled(bool enabled, VideoCaptureOptions? options = null,
TrackPublishOptions? publishOptions = null)
{
JSNative.PushBoolean(enabled);
if (options != null)
JSNative.PushStruct(JsonConvert.SerializeObject(options, JSNative.JsonSettings));

else
JSNative.PushUndefined();

if (publishOptions != null)
JSNative.PushStruct(JsonConvert.SerializeObject(publishOptions, JSNative.JsonSettings));

return Acquire<JSPromise<LocalTrackPublication>>(JSNative.CallMethod(NativeHandle, "setCameraEnabled"));
}

public JSPromise<LocalTrackPublication> SetMicrophoneEnabled(bool enabled, AudioCaptureOptions? options = null)
public JSPromise<LocalTrackPublication> SetMicrophoneEnabled(bool enabled, AudioCaptureOptions? options = null,
TrackPublishOptions? publishOptions = null)
{
JSNative.PushBoolean(enabled);
if (options != null)
JSNative.PushStruct(JsonConvert.SerializeObject(options, JSNative.JsonSettings));

else
JSNative.PushUndefined();

if (publishOptions != null)
JSNative.PushStruct(JsonConvert.SerializeObject(publishOptions, JSNative.JsonSettings));

return Acquire<JSPromise<LocalTrackPublication>>(JSNative.CallMethod(NativeHandle, "setMicrophoneEnabled"));
}

public JSPromise<LocalTrackPublication> SetScreenShareEnabled(bool enabled, ScreenShareCaptureOptions? options = null)
public JSPromise<LocalTrackPublication> SetScreenShareEnabled(bool enabled,
ScreenShareCaptureOptions? options = null, TrackPublishOptions? publishOptions = null)
{
JSNative.PushBoolean(enabled);
if (options != null)
JSNative.PushStruct(JsonConvert.SerializeObject(options, JSNative.JsonSettings));

return Acquire<JSPromise<LocalTrackPublication>>(JSNative.CallMethod(NativeHandle, "setScreenShareEnabled"));
else
JSNative.PushUndefined();

if (publishOptions != null)
JSNative.PushStruct(JsonConvert.SerializeObject(publishOptions, JSNative.JsonSettings));

return Acquire<JSPromise<LocalTrackPublication>>(JSNative.CallMethod(NativeHandle,
"setScreenShareEnabled"));
}

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

public JSPromise<LocalTrackPublication> PublishTrack(MediaStreamTrack track, TrackPublishOptions? options = null)
public JSPromise<LocalTrackPublication> PublishTrack(MediaStreamTrack track,
TrackPublishOptions? options = null)
{
JSNative.PushObject(track.NativeHandle);
if (options != null)
Expand All @@ -110,13 +129,13 @@ public LocalTrackPublication UnpublishTrack(LocalTrack track, bool? stopOnUnpubl
{
JSNative.PushObject(track.NativeHandle);

if(stopOnUnpublish != null)
if (stopOnUnpublish != null)
JSNative.PushBoolean(stopOnUnpublish.Value);

var ptr = JSNative.CallMethod(NativeHandle, "unpublishTrack");
if (JSNative.IsObject(ptr))
return null;

return Acquire<LocalTrackPublication>(ptr);
}

Expand All @@ -130,7 +149,7 @@ public LocalTrackPublication UnpublishTrack(MediaStreamTrack track, bool? stopOn
var ptr = JSNative.CallMethod(NativeHandle, "unpublishTrack");
if (JSNative.IsObject(ptr))
return null;

return Acquire<LocalTrackPublication>(ptr);
}

Expand All @@ -139,15 +158,16 @@ public JSPromise PublishData(byte[] data, DataPacketKind kind, params RemotePart
{
return PublishData(data, 0, data.Length, kind, participants);
}

public JSPromise PublishData(byte[] data, int offset, int size, DataPacketKind kind, params RemoteParticipant[] participants)

public JSPromise PublishData(byte[] data, int offset, int size, DataPacketKind kind,
params RemoteParticipant[] participants)
{
JSArray<RemoteParticipant> arr = null;
if(participants != null)
if (participants != null)
arr = new JSArray<RemoteParticipant>(participants);

JSNative.PushData(data, offset, size);
JSNative.PushNumber((double)kind);
JSNative.PushNumber((double) kind);

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

return Acquire<JSPromise>(JSNative.CallMethod(NativeHandle, "publishData"));
}

public void SetTrackSubscriptionPermissions(bool allParticipantsAllowed, ParticipantTrackPermission[] participantTrackPermissions)

public void SetTrackSubscriptionPermissions(bool allParticipantsAllowed,
ParticipantTrackPermission[] participantTrackPermissions)
{
JSNative.PushBoolean(allParticipantsAllowed);
JSNative.PushObject(new JSArray<ParticipantTrackPermission>(participantTrackPermissions).NativeHandle);
Expand Down

0 comments on commit f1dd69f

Please sign in to comment.