@@ -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