davidliu
Committed by GitHub

Add Room.setRoomOptions (#399)

@@ -86,23 +86,7 @@ object LiveKit { @@ -86,23 +86,7 @@ object LiveKit {
86 .create(ctx, overrides) 86 .create(ctx, overrides)
87 87
88 val room = component.roomFactory().create(ctx) 88 val room = component.roomFactory().create(ctx)
89 -  
90 - options.audioTrackCaptureDefaults?.let {  
91 - room.audioTrackCaptureDefaults = it  
92 - }  
93 - options.videoTrackCaptureDefaults?.let {  
94 - room.videoTrackCaptureDefaults = it  
95 - }  
96 -  
97 - options.audioTrackPublishDefaults?.let {  
98 - room.audioTrackPublishDefaults = it  
99 - }  
100 - options.videoTrackPublishDefaults?.let {  
101 - room.videoTrackPublishDefaults = it  
102 - }  
103 - room.adaptiveStream = options.adaptiveStream  
104 - room.dynacast = options.dynacast  
105 - room.e2eeOptions = options.e2eeOptions 89 + room.setRoomOptions(options)
106 90
107 return room 91 return room
108 } 92 }
@@ -410,6 +410,32 @@ constructor( @@ -410,6 +410,32 @@ constructor(
410 } 410 }
411 411
412 /** 412 /**
  413 + * Copies all the options to the Room object.
  414 + *
  415 + * Any null values in [options] will not overwrite existing values.
  416 + * To clear existing values on the Room object, explicitly set the value
  417 + * directly instead of using this method.
  418 + */
  419 + fun setRoomOptions(options: RoomOptions) {
  420 + options.audioTrackCaptureDefaults?.let {
  421 + audioTrackCaptureDefaults = it
  422 + }
  423 + options.videoTrackCaptureDefaults?.let {
  424 + videoTrackCaptureDefaults = it
  425 + }
  426 +
  427 + options.audioTrackPublishDefaults?.let {
  428 + audioTrackPublishDefaults = it
  429 + }
  430 + options.videoTrackPublishDefaults?.let {
  431 + videoTrackPublishDefaults = it
  432 + }
  433 + adaptiveStream = options.adaptiveStream
  434 + dynacast = options.dynacast
  435 + e2eeOptions = options.e2eeOptions
  436 + }
  437 +
  438 + /**
413 * Release all resources held by this object. 439 * Release all resources held by this object.
414 * 440 *
415 * Once called, this room object must not be used to connect to a server and a new one 441 * Once called, this room object must not be used to connect to a server and a new one