diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..c6cbe56 --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,8 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..0c4eacf --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,50 @@ +group 'io.livekit.plugin' +version '1.0-SNAPSHOT' + +buildscript { + ext.kotlin_version = '1.3.50' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:4.1.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +rootProject.allprojects { + repositories { + google() + mavenCentral() + } +} + +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' + +android { + compileSdkVersion 30 + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' + } + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + defaultConfig { + minSdkVersion 16 + } +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..94adc3a --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..3c9d085 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..e6aa3e7 --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'livekit' diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml new file mode 100644 index 0000000..c735362 --- /dev/null +++ b/android/src/main/AndroidManifest.xml @@ -0,0 +1,3 @@ + + diff --git a/android/src/main/kotlin/io/livekit/plugin/LiveKitPlugin.kt b/android/src/main/kotlin/io/livekit/plugin/LiveKitPlugin.kt new file mode 100644 index 0000000..aaf543a --- /dev/null +++ b/android/src/main/kotlin/io/livekit/plugin/LiveKitPlugin.kt @@ -0,0 +1,32 @@ +package io.livekit.plugin + +import androidx.annotation.NonNull + +import io.flutter.embedding.engine.plugins.FlutterPlugin +import io.flutter.plugin.common.MethodCall +import io.flutter.plugin.common.MethodChannel +import io.flutter.plugin.common.MethodChannel.MethodCallHandler +import io.flutter.plugin.common.MethodChannel.Result + +/** LiveKitPlugin */ +class LiveKitPlugin: FlutterPlugin, MethodCallHandler { + /// The MethodChannel that will the communication between Flutter and native Android + /// + /// This local reference serves to register the plugin with the Flutter Engine and unregister it + /// when the Flutter Engine is detached from the Activity + private lateinit var channel : MethodChannel + + override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) { + channel = MethodChannel(flutterPluginBinding.binaryMessenger, "livekit_client") + channel.setMethodCallHandler(this) + } + + override fun onMethodCall(@NonNull call: MethodCall, @NonNull result: Result) { + // no-op for now + result.notImplemented() + } + + override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) { + channel.setMethodCallHandler(null) + } +} diff --git a/example/lib/exts.dart b/example/lib/exts.dart index 5068044..ece86d9 100644 --- a/example/lib/exts.dart +++ b/example/lib/exts.dart @@ -24,7 +24,8 @@ extension LKExampleExt on BuildContext { context: this, builder: (ctx) => AlertDialog( title: const Text('UnPublish'), - content: const Text('Would you like to un-publish your Camera & Mic ?'), + content: + const Text('Would you like to un-publish your Camera & Mic ?'), actions: [ TextButton( onPressed: () => Navigator.pop(ctx, false), @@ -92,7 +93,8 @@ extension LKExampleExt on BuildContext { context: this, builder: (ctx) => AlertDialog( title: const Text('Send data'), - content: const Text('This will send a sample data to all participants in the room'), + content: const Text( + 'This will send a sample data to all participants in the room'), actions: [ TextButton( onPressed: () => Navigator.pop(ctx, false), diff --git a/example/lib/pages/connect.dart b/example/lib/pages/connect.dart index 3bbc960..e04c65a 100644 --- a/example/lib/pages/connect.dart +++ b/example/lib/pages/connect.dart @@ -65,7 +65,8 @@ class _ConnectPageState extends State { // Save for next time await _writePrefs(); - print('Connecting with url: ${_uriCtrl.text}, token: ${_tokenCtrl.text}...'); + print( + 'Connecting with url: ${_uriCtrl.text}, token: ${_tokenCtrl.text}...'); final room = await LiveKitClient.connect( _uriCtrl.text, @@ -113,7 +114,8 @@ class _ConnectPageState extends State { decoration: BoxDecoration( color: Theme.of(context).cardColor, borderRadius: BorderRadius.circular(8), - border: Border.all(color: Theme.of(context).colorScheme.secondary), + border: + Border.all(color: Theme.of(context).colorScheme.secondary), ), constraints: const BoxConstraints( maxWidth: 320, diff --git a/example/lib/pages/room.dart b/example/lib/pages/room.dart index 53b4181..77f8d9d 100644 --- a/example/lib/pages/room.dart +++ b/example/lib/pages/room.dart @@ -50,7 +50,8 @@ class _RoomPageState extends State { void _setUpListeners() => _listener ..on((_) async { - WidgetsBinding.instance?.addPostFrameCallback((timeStamp) => Navigator.pop(context)); + WidgetsBinding.instance + ?.addPostFrameCallback((timeStamp) => Navigator.pop(context)); }) ..on((event) { String decoded = 'Failed to decode'; @@ -120,7 +121,8 @@ class _RoomPageState extends State { } // joinedAt - return a.joinedAt.millisecondsSinceEpoch - b.joinedAt.millisecondsSinceEpoch; + return a.joinedAt.millisecondsSinceEpoch - + b.joinedAt.millisecondsSinceEpoch; }); if (participants.length > 1) { @@ -138,8 +140,9 @@ class _RoomPageState extends State { body: Column( children: [ Expanded( - child: - participants.isNotEmpty ? ParticipantWidget(participants.first) : Container()), + child: participants.isNotEmpty + ? ParticipantWidget(participants.first) + : Container()), SizedBox( height: 100, child: ListView.builder( @@ -149,7 +152,8 @@ class _RoomPageState extends State { width: 100, height: 100, padding: const EdgeInsets.all(2), - child: ParticipantWidget(participants[index + 1], quality: VideoQuality.LOW), + child: ParticipantWidget(participants[index + 1], + quality: VideoQuality.LOW), ), ), ), diff --git a/example/lib/theme.dart b/example/lib/theme.dart index fbb96df..5be4c38 100644 --- a/example/lib/theme.dart +++ b/example/lib/theme.dart @@ -32,7 +32,8 @@ class LiveKitTheme { foregroundColor: MaterialStateProperty.all(Colors.white), // backgroundColor: MaterialStateProperty.all(accentColor), backgroundColor: MaterialStateProperty.resolveWith((states) { - if (states.contains(MaterialState.disabled)) return accentColor.withOpacity(0.5); + if (states.contains(MaterialState.disabled)) + return accentColor.withOpacity(0.5); return accentColor; }), ), diff --git a/example/lib/widgets/controls.dart b/example/lib/widgets/controls.dart index 63f4975..93fec83 100644 --- a/example/lib/widgets/controls.dart +++ b/example/lib/widgets/controls.dart @@ -89,7 +89,8 @@ class _ControlsWidgetState extends State { void _toggleCamera() async { // - final track = participant.videoTracks.firstOrNull?.track as LocalVideoTrack?; + final track = + participant.videoTracks.firstOrNull?.track as LocalVideoTrack?; if (track == null) return; try { @@ -113,7 +114,8 @@ class _ControlsWidgetState extends State { } try { - final screenTrack = await LocalVideoTrack.createScreenTrack(); // Defaults to camera + final screenTrack = + await LocalVideoTrack.createScreenTrack(); // Defaults to camera await widget.room.localParticipant.publishVideoTrack( screenTrack, ); @@ -177,7 +179,9 @@ class _ControlsWidgetState extends State { icon: const Icon(EvaIcons.videoOff), ), IconButton( - icon: Icon(position == CameraPosition.back ? EvaIcons.camera : EvaIcons.person), + icon: Icon(position == CameraPosition.back + ? EvaIcons.camera + : EvaIcons.person), onPressed: () => _toggleCamera(), ), IconButton( diff --git a/example/lib/widgets/participant.dart b/example/lib/widgets/participant.dart index 3226925..cf93d55 100644 --- a/example/lib/widgets/participant.dart +++ b/example/lib/widgets/participant.dart @@ -50,7 +50,8 @@ class _ParticipantWidgetState extends State { // register for change so Flutter will re-build the widget upon change void _onParticipantChanged() { // - final firstAudio = widget.participant.audioTracks.firstWhereOrNull((pub) => pub.subscribed); + final firstAudio = widget.participant.audioTracks + .firstWhereOrNull((pub) => pub.subscribed); final firstVideo = widget.participant.videoTracks .firstWhereOrNull((pub) => !pub.isScreenShare && pub.subscribed); diff --git a/lib/livekit_client_web.dart b/lib/livekit_client_web.dart new file mode 100644 index 0000000..7cf5cfd --- /dev/null +++ b/lib/livekit_client_web.dart @@ -0,0 +1,34 @@ +import 'dart:async'; +// In order to *not* need this ignore, consider extracting the "web" version +// of your plugin as a separate package, instead of inlining it in the same +// package as the core of your plugin. +// ignore: avoid_web_libraries_in_flutter +// import 'dart:html' as html show window; + +import 'package:flutter/services.dart'; +import 'package:flutter_web_plugins/flutter_web_plugins.dart'; + +/// A web implementation of the Livekit plugin. +class LiveKitWebPlugin { + static void registerWith(Registrar registrar) { + final MethodChannel channel = MethodChannel( + 'livekit_client', + const StandardMethodCodec(), + registrar, + ); + + final pluginInstance = LiveKitWebPlugin(); + channel.setMethodCallHandler(pluginInstance.handleMethodCall); + } + + /// Handles method calls over the MethodChannel of this plugin. + /// Note: Check the "federated" architecture for a new way of doing this: + /// https://flutter.dev/go/federated-plugins + Future handleMethodCall(MethodCall call) async { + // no-op for now + throw PlatformException( + code: 'Unimplemented', + details: 'livekit for web doesn\'t implement \'${call.method}\'', + ); + } +} diff --git a/lib/src/exceptions.dart b/lib/src/exceptions.dart index ac312fb..c81a9a7 100644 --- a/lib/src/exceptions.dart +++ b/lib/src/exceptions.dart @@ -11,7 +11,8 @@ class ConnectException extends LiveKitException { } class UnexpectedStateException extends LiveKitException { - UnexpectedStateException([String msg = 'Unexpected connection state']) : super._(msg); + UnexpectedStateException([String msg = 'Unexpected connection state']) + : super._(msg); } class TrackCreateException extends LiveKitException { @@ -19,7 +20,8 @@ class TrackCreateException extends LiveKitException { } class TrackPublishException extends LiveKitException { - TrackPublishException([String msg = 'Failed to publish track']) : super._(msg); + TrackPublishException([String msg = 'Failed to publish track']) + : super._(msg); } class DataPublishException extends LiveKitException { diff --git a/lib/src/extensions.dart b/lib/src/extensions.dart index 7c464ca..4949cfa 100644 --- a/lib/src/extensions.dart +++ b/lib/src/extensions.dart @@ -28,7 +28,8 @@ extension ICEServerExt on lk_rtc.ICEServer { } extension IterableExt on Iterable { - E? elementAtOrNull(int index) => (index >= 0 && index < length) ? elementAt(index) : null; + E? elementAtOrNull(int index) => + (index >= 0 && index < length) ? elementAt(index) : null; } extension ObjectExt on Object { diff --git a/lib/src/options.dart b/lib/src/options.dart index 7580288..edf8803 100644 --- a/lib/src/options.dart +++ b/lib/src/options.dart @@ -26,5 +26,6 @@ class TrackPublishOptions { }); @override - String toString() => '${runtimeType}(videoEncoding: ${videoEncoding}, simulcast: ${simulcast})'; + String toString() => + '${runtimeType}(videoEncoding: ${videoEncoding}, simulcast: ${simulcast})'; } diff --git a/lib/src/participant/local_participant.dart b/lib/src/participant/local_participant.dart index 8ae60b1..6ceb3cd 100644 --- a/lib/src/participant/local_participant.dart +++ b/lib/src/participant/local_participant.dart @@ -40,7 +40,8 @@ class LocalParticipant extends Participant { /// publish an audio track to the room Future publishAudioTrack(LocalAudioTrack track) async { - if (audioTracks.any((e) => e.track?.mediaStreamTrack.id == track.mediaStreamTrack.id)) { + if (audioTracks.any( + (e) => e.track?.mediaStreamTrack.id == track.mediaStreamTrack.id)) { throw TrackPublishException('track already exists'); } @@ -82,7 +83,8 @@ class LocalParticipant extends Participant { LocalVideoTrack track, { TrackPublishOptions? options, }) async { - if (videoTracks.any((e) => e.track?.mediaStreamTrack.id == track.mediaStreamTrack.id)) { + if (videoTracks.any( + (e) => e.track?.mediaStreamTrack.id == track.mediaStreamTrack.id)) { throw TrackPublishException('track already exists'); } @@ -117,7 +119,8 @@ class LocalParticipant extends Participant { } } - logger.fine('Compute encodings with resolution: ${width}x${height}, options: ${options}'); + logger.fine( + 'Compute encodings with resolution: ${width}x${height}, options: ${options}'); final encodings = Utils.computeVideoEncodings( width: width, diff --git a/lib/src/participant/participant.dart b/lib/src/participant/participant.dart index 1ede18c..cf4638a 100644 --- a/lib/src/participant/participant.dart +++ b/lib/src/participant/participant.dart @@ -20,7 +20,8 @@ import 'remote_participant.dart'; /// Base for [RemoteParticipant] and [LocalParticipant], /// can not be instantiated directly. -abstract class Participant extends DisposableChangeNotifier with EventsEmittable { +abstract class Participant extends DisposableChangeNotifier + with EventsEmittable { /// map of track sid => published track final trackPublications = {}; @@ -49,7 +50,8 @@ abstract class Participant extends DisposableChangeNotifier with EventsEmittable DateTime get joinedAt { final pi = _participantInfo; if (pi != null) { - return DateTime.fromMillisecondsSinceEpoch(pi.joinedAt.toInt() * 1000, isUtc: true); + return DateTime.fromMillisecondsSinceEpoch(pi.joinedAt.toInt() * 1000, + isUtc: true); } return DateTime.now(); } @@ -160,9 +162,11 @@ abstract class Participant extends DisposableChangeNotifier with EventsEmittable // Convenience extension extension ParticipantExt on Participant { - List get videoTracks => - trackPublications.values.where((e) => e.kind == lk_models.TrackType.VIDEO).toList(); + List get videoTracks => trackPublications.values + .where((e) => e.kind == lk_models.TrackType.VIDEO) + .toList(); - List get audioTracks => - trackPublications.values.where((e) => e.kind == lk_models.TrackType.AUDIO).toList(); + List get audioTracks => trackPublications.values + .where((e) => e.kind == lk_models.TrackType.AUDIO) + .toList(); } diff --git a/lib/src/participant/remote_participant.dart b/lib/src/participant/remote_participant.dart index 6036c10..8c911aa 100644 --- a/lib/src/participant/remote_participant.dart +++ b/lib/src/participant/remote_participant.dart @@ -65,7 +65,8 @@ class RemoteParticipant extends Participant { logger.fine('addSubscribedMediaTrack() pub is null, will wait...'); // Wait for the metadata to arrive final event = await events.waitFor( - filter: (event) => event.participant == this && event.publication.sid == trackSid, + filter: (event) => + event.participant == this && event.publication.sid == trackSid, duration: Timeouts.publish, onTimeout: () => throw TrackSubscriptionExceptionEvent( participant: this, @@ -78,7 +79,8 @@ class RemoteParticipant extends Participant { } // Check if track type is supported, throw if not. - if (![lk_models.TrackType.AUDIO, lk_models.TrackType.VIDEO].contains(pub.kind)) { + if (![lk_models.TrackType.AUDIO, lk_models.TrackType.VIDEO] + .contains(pub.kind)) { throw TrackSubscriptionExceptionEvent( participant: this, sid: trackSid, @@ -145,7 +147,8 @@ class RemoteParticipant extends Participant { // unpublish any track that is not in the info final validSids = info.tracks.map((e) => e.sid); - final removeSids = trackPublications.keys.where((e) => !validSids.contains(e)).toSet(); + final removeSids = + trackPublications.keys.where((e) => !validSids.contains(e)).toSet(); for (final sid in removeSids) { await unpublishTrack(sid, notify: true); } diff --git a/lib/src/proto/livekit_models.pb.dart b/lib/src/proto/livekit_models.pb.dart index 0d4251f..211f91a 100644 --- a/lib/src/proto/livekit_models.pb.dart +++ b/lib/src/proto/livekit_models.pb.dart @@ -16,28 +16,58 @@ export 'livekit_models.pbenum.dart'; class Room extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'Room', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'Room', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'sid') - ..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'name') + ..aOS( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'sid') + ..aOS( + 2, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'name') ..a<$core.int>( 3, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'emptyTimeout', + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'emptyTimeout', $pb.PbFieldType.OU3) ..a<$core.int>( 4, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'maxParticipants', + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'maxParticipants', $pb.PbFieldType.OU3) - ..aInt64(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'creationTime') - ..aOS(6, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'turnPassword') + ..aInt64( + 5, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'creationTime') + ..aOS( + 6, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'turnPassword') ..pc( 7, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'enabledCodecs', + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'enabledCodecs', $pb.PbFieldType.PM, subBuilder: Codec.create) - ..aOS(8, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'metadata') + ..aOS( + 8, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'metadata') ..hasRequiredFields = false; Room._() : super(); @@ -81,7 +111,8 @@ class Room extends $pb.GeneratedMessage { factory Room.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); - factory Room.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => + factory Room.fromJson($core.String i, + [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); @$core.Deprecated('Using this can add significant overhead to your binary. ' 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' @@ -99,7 +130,8 @@ class Room extends $pb.GeneratedMessage { Room createEmptyInstance() => create(); static $pb.PbList createRepeated() => $pb.PbList(); @$core.pragma('dart2js:noInline') - static Room getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static Room getDefault() => + _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); static Room? _defaultInstance; @$pb.TagNumber(1) @@ -192,12 +224,24 @@ class Room extends $pb.GeneratedMessage { class Codec extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'Codec', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'Codec', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'mime') - ..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'fmtpLine') + ..aOS( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'mime') + ..aOS( + 2, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'fmtpLine') ..hasRequiredFields = false; Codec._() : super(); @@ -217,7 +261,8 @@ class Codec extends $pb.GeneratedMessage { factory Codec.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); - factory Codec.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => + factory Codec.fromJson($core.String i, + [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); @$core.Deprecated('Using this can add significant overhead to your binary. ' 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' @@ -266,27 +311,55 @@ class Codec extends $pb.GeneratedMessage { class ParticipantInfo extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'ParticipantInfo', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'ParticipantInfo', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'sid') - ..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'identity') + ..aOS( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'sid') + ..aOS( + 2, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'identity') ..e( 3, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'state', + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'state', $pb.PbFieldType.OE, defaultOrMaker: ParticipantInfo_State.JOINING, valueOf: ParticipantInfo_State.valueOf, enumValues: ParticipantInfo_State.values) ..pc( 4, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'tracks', + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'tracks', $pb.PbFieldType.PM, subBuilder: TrackInfo.create) - ..aOS(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'metadata') - ..aInt64(6, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'joinedAt') - ..aOB(7, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'hidden') + ..aOS( + 5, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'metadata') + ..aInt64( + 6, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'joinedAt') + ..aOB( + 7, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'hidden') ..hasRequiredFields = false; ParticipantInfo._() : super(); @@ -343,10 +416,11 @@ class ParticipantInfo extends $pb.GeneratedMessage { @$core.pragma('dart2js:noInline') static ParticipantInfo create() => ParticipantInfo._(); ParticipantInfo createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); + static $pb.PbList createRepeated() => + $pb.PbList(); @$core.pragma('dart2js:noInline') - static ParticipantInfo getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static ParticipantInfo getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static ParticipantInfo? _defaultInstance; @$pb.TagNumber(1) @@ -427,21 +501,55 @@ class ParticipantInfo extends $pb.GeneratedMessage { class TrackInfo extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'TrackInfo', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'TrackInfo', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'sid') - ..e(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'type', + ..aOS( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'sid') + ..e( + 2, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'type', $pb.PbFieldType.OE, - defaultOrMaker: TrackType.AUDIO, valueOf: TrackType.valueOf, enumValues: TrackType.values) - ..aOS(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'name') - ..aOB(4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'muted') - ..a<$core.int>(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'width', + defaultOrMaker: TrackType.AUDIO, + valueOf: TrackType.valueOf, + enumValues: TrackType.values) + ..aOS( + 3, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'name') + ..aOB( + 4, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'muted') + ..a<$core.int>( + 5, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'width', $pb.PbFieldType.OU3) - ..a<$core.int>(6, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'height', + ..a<$core.int>( + 6, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'height', $pb.PbFieldType.OU3) - ..aOB(7, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'simulcast') + ..aOB( + 7, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'simulcast') ..hasRequiredFields = false; TrackInfo._() : super(); @@ -598,23 +706,35 @@ class DataPacket extends $pb.GeneratedMessage { 0: DataPacket_Value.notSet }; static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'DataPacket', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'DataPacket', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) ..oo(0, [2, 3]) ..e( 1, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'kind', + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'kind', $pb.PbFieldType.OE, defaultOrMaker: DataPacket_Kind.RELIABLE, valueOf: DataPacket_Kind.valueOf, enumValues: DataPacket_Kind.values) ..aOM( - 2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'user', + 2, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'user', subBuilder: UserPacket.create) ..aOM( - 3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'speaker', + 3, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'speaker', subBuilder: ActiveSpeakerUpdate.create) ..hasRequiredFields = false; @@ -658,8 +778,8 @@ class DataPacket extends $pb.GeneratedMessage { DataPacket createEmptyInstance() => create(); static $pb.PbList createRepeated() => $pb.PbList(); @$core.pragma('dart2js:noInline') - static DataPacket getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static DataPacket getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static DataPacket? _defaultInstance; DataPacket_Value whichValue() => _DataPacket_ValueByTag[$_whichOneof(0)]!; @@ -708,13 +828,19 @@ class DataPacket extends $pb.GeneratedMessage { class ActiveSpeakerUpdate extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'ActiveSpeakerUpdate', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'ActiveSpeakerUpdate', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) ..pc( 1, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'speakers', + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'speakers', $pb.PbFieldType.PM, subBuilder: SpeakerInfo.create) ..hasRequiredFields = false; @@ -749,10 +875,11 @@ class ActiveSpeakerUpdate extends $pb.GeneratedMessage { @$core.pragma('dart2js:noInline') static ActiveSpeakerUpdate create() => ActiveSpeakerUpdate._(); ActiveSpeakerUpdate createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); + static $pb.PbList createRepeated() => + $pb.PbList(); @$core.pragma('dart2js:noInline') - static ActiveSpeakerUpdate getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static ActiveSpeakerUpdate getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static ActiveSpeakerUpdate? _defaultInstance; @$pb.TagNumber(1) @@ -761,16 +888,30 @@ class ActiveSpeakerUpdate extends $pb.GeneratedMessage { class SpeakerInfo extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SpeakerInfo', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'SpeakerInfo', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'sid') + ..aOS( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'sid') ..a<$core.double>( 2, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'level', + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'level', $pb.PbFieldType.OF) - ..aOB(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'active') + ..aOB( + 3, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'active') ..hasRequiredFields = false; SpeakerInfo._() : super(); @@ -813,8 +954,8 @@ class SpeakerInfo extends $pb.GeneratedMessage { SpeakerInfo createEmptyInstance() => create(); static $pb.PbList createRepeated() => $pb.PbList(); @$core.pragma('dart2js:noInline') - static SpeakerInfo getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static SpeakerInfo getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static SpeakerInfo? _defaultInstance; @$pb.TagNumber(1) @@ -856,16 +997,30 @@ class SpeakerInfo extends $pb.GeneratedMessage { class UserPacket extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'UserPacket', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'UserPacket', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'participantSid') + ..aOS( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'participantSid') ..a<$core.List<$core.int>>( 2, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'payload', + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'payload', $pb.PbFieldType.OY) - ..pPS(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'destinationSids') + ..pPS( + 3, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'destinationSids') ..hasRequiredFields = false; UserPacket._() : super(); @@ -908,8 +1063,8 @@ class UserPacket extends $pb.GeneratedMessage { UserPacket createEmptyInstance() => create(); static $pb.PbList createRepeated() => $pb.PbList(); @$core.pragma('dart2js:noInline') - static UserPacket getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static UserPacket getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static UserPacket? _defaultInstance; @$pb.TagNumber(1) @@ -942,14 +1097,34 @@ class UserPacket extends $pb.GeneratedMessage { class RecordingResult extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'RecordingResult', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'RecordingResult', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'id') - ..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'error') - ..aInt64(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'duration') - ..aOS(4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'location') + ..aOS( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'id') + ..aOS( + 2, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'error') + ..aInt64( + 3, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'duration') + ..aOS( + 4, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'location') ..hasRequiredFields = false; RecordingResult._() : super(); @@ -994,10 +1169,11 @@ class RecordingResult extends $pb.GeneratedMessage { @$core.pragma('dart2js:noInline') static RecordingResult create() => RecordingResult._(); RecordingResult createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); + static $pb.PbList createRepeated() => + $pb.PbList(); @$core.pragma('dart2js:noInline') - static RecordingResult getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static RecordingResult getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static RecordingResult? _defaultInstance; @$pb.TagNumber(1) diff --git a/lib/src/proto/livekit_models.pbenum.dart b/lib/src/proto/livekit_models.pbenum.dart index e4f8aea..1dcaf9e 100644 --- a/lib/src/proto/livekit_models.pbenum.dart +++ b/lib/src/proto/livekit_models.pbenum.dart @@ -10,12 +10,21 @@ import 'dart:core' as $core; import 'package:protobuf/protobuf.dart' as $pb; class TrackType extends $pb.ProtobufEnum { - static const TrackType AUDIO = - TrackType._(0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AUDIO'); - static const TrackType VIDEO = - TrackType._(1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'VIDEO'); - static const TrackType DATA = - TrackType._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DATA'); + static const TrackType AUDIO = TrackType._( + 0, + const $core.bool.fromEnvironment('protobuf.omit_enum_names') + ? '' + : 'AUDIO'); + static const TrackType VIDEO = TrackType._( + 1, + const $core.bool.fromEnvironment('protobuf.omit_enum_names') + ? '' + : 'VIDEO'); + static const TrackType DATA = TrackType._( + 2, + const $core.bool.fromEnvironment('protobuf.omit_enum_names') + ? '' + : 'DATA'); static const $core.List values = [ AUDIO, @@ -23,7 +32,8 @@ class TrackType extends $pb.ProtobufEnum { DATA, ]; - static final $core.Map<$core.int, TrackType> _byValue = $pb.ProtobufEnum.initByValue(values); + static final $core.Map<$core.int, TrackType> _byValue = + $pb.ProtobufEnum.initByValue(values); static TrackType? valueOf($core.int value) => _byValue[value]; const TrackType._($core.int v, $core.String n) : super(v, n); @@ -31,15 +41,28 @@ class TrackType extends $pb.ProtobufEnum { class ParticipantInfo_State extends $pb.ProtobufEnum { static const ParticipantInfo_State JOINING = ParticipantInfo_State._( - 0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'JOINING'); + 0, + const $core.bool.fromEnvironment('protobuf.omit_enum_names') + ? '' + : 'JOINING'); static const ParticipantInfo_State JOINED = ParticipantInfo_State._( - 1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'JOINED'); + 1, + const $core.bool.fromEnvironment('protobuf.omit_enum_names') + ? '' + : 'JOINED'); static const ParticipantInfo_State ACTIVE = ParticipantInfo_State._( - 2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ACTIVE'); + 2, + const $core.bool.fromEnvironment('protobuf.omit_enum_names') + ? '' + : 'ACTIVE'); static const ParticipantInfo_State DISCONNECTED = ParticipantInfo_State._( - 3, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DISCONNECTED'); + 3, + const $core.bool.fromEnvironment('protobuf.omit_enum_names') + ? '' + : 'DISCONNECTED'); - static const $core.List values = [ + static const $core.List values = + [ JOINING, JOINED, ACTIVE, @@ -55,9 +78,15 @@ class ParticipantInfo_State extends $pb.ProtobufEnum { class DataPacket_Kind extends $pb.ProtobufEnum { static const DataPacket_Kind RELIABLE = DataPacket_Kind._( - 0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'RELIABLE'); + 0, + const $core.bool.fromEnvironment('protobuf.omit_enum_names') + ? '' + : 'RELIABLE'); static const DataPacket_Kind LOSSY = DataPacket_Kind._( - 1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'LOSSY'); + 1, + const $core.bool.fromEnvironment('protobuf.omit_enum_names') + ? '' + : 'LOSSY'); static const $core.List values = [ RELIABLE, diff --git a/lib/src/proto/livekit_models.pbjson.dart b/lib/src/proto/livekit_models.pbjson.dart index 0ca1adf..cc90809 100644 --- a/lib/src/proto/livekit_models.pbjson.dart +++ b/lib/src/proto/livekit_models.pbjson.dart @@ -20,8 +20,8 @@ const TrackType$json = const { }; /// Descriptor for `TrackType`. Decode as a `google.protobuf.EnumDescriptorProto`. -final $typed_data.Uint8List trackTypeDescriptor = - $convert.base64Decode('CglUcmFja1R5cGUSCQoFQVVESU8QABIJCgVWSURFTxABEggKBERBVEEQAg=='); +final $typed_data.Uint8List trackTypeDescriptor = $convert.base64Decode( + 'CglUcmFja1R5cGUSCQoFQVVESU8QABIJCgVWSURFTxABEggKBERBVEEQAg=='); @$core.Deprecated('Use roomDescriptor instead') const Room$json = const { '1': 'Room', @@ -29,7 +29,13 @@ const Room$json = const { const {'1': 'sid', '3': 1, '4': 1, '5': 9, '10': 'sid'}, const {'1': 'name', '3': 2, '4': 1, '5': 9, '10': 'name'}, const {'1': 'empty_timeout', '3': 3, '4': 1, '5': 13, '10': 'emptyTimeout'}, - const {'1': 'max_participants', '3': 4, '4': 1, '5': 13, '10': 'maxParticipants'}, + const { + '1': 'max_participants', + '3': 4, + '4': 1, + '5': 13, + '10': 'maxParticipants' + }, const {'1': 'creation_time', '3': 5, '4': 1, '5': 3, '10': 'creationTime'}, const {'1': 'turn_password', '3': 6, '4': 1, '5': 9, '10': 'turnPassword'}, const { @@ -57,8 +63,8 @@ const Codec$json = const { }; /// Descriptor for `Codec`. Decode as a `google.protobuf.DescriptorProto`. -final $typed_data.Uint8List codecDescriptor = $convert - .base64Decode('CgVDb2RlYxISCgRtaW1lGAEgASgJUgRtaW1lEhsKCWZtdHBfbGluZRgCIAEoCVIIZm10cExpbmU='); +final $typed_data.Uint8List codecDescriptor = $convert.base64Decode( + 'CgVDb2RlYxISCgRtaW1lGAEgASgJUgRtaW1lEhsKCWZtdHBfbGluZRgCIAEoCVIIZm10cExpbmU='); @$core.Deprecated('Use participantInfoDescriptor instead') const ParticipantInfo$json = const { '1': 'ParticipantInfo', @@ -73,7 +79,14 @@ const ParticipantInfo$json = const { '6': '.livekit.ParticipantInfo.State', '10': 'state' }, - const {'1': 'tracks', '3': 4, '4': 3, '5': 11, '6': '.livekit.TrackInfo', '10': 'tracks'}, + const { + '1': 'tracks', + '3': 4, + '4': 3, + '5': 11, + '6': '.livekit.TrackInfo', + '10': 'tracks' + }, const {'1': 'metadata', '3': 5, '4': 1, '5': 9, '10': 'metadata'}, const {'1': 'joined_at', '3': 6, '4': 1, '5': 3, '10': 'joinedAt'}, const {'1': 'hidden', '3': 7, '4': 1, '5': 8, '10': 'hidden'}, @@ -100,7 +113,14 @@ const TrackInfo$json = const { '1': 'TrackInfo', '2': const [ const {'1': 'sid', '3': 1, '4': 1, '5': 9, '10': 'sid'}, - const {'1': 'type', '3': 2, '4': 1, '5': 14, '6': '.livekit.TrackType', '10': 'type'}, + const { + '1': 'type', + '3': 2, + '4': 1, + '5': 14, + '6': '.livekit.TrackType', + '10': 'type' + }, const {'1': 'name', '3': 3, '4': 1, '5': 9, '10': 'name'}, const {'1': 'muted', '3': 4, '4': 1, '5': 8, '10': 'muted'}, const {'1': 'width', '3': 5, '4': 1, '5': 13, '10': 'width'}, @@ -116,8 +136,23 @@ final $typed_data.Uint8List trackInfoDescriptor = $convert.base64Decode( const DataPacket$json = const { '1': 'DataPacket', '2': const [ - const {'1': 'kind', '3': 1, '4': 1, '5': 14, '6': '.livekit.DataPacket.Kind', '10': 'kind'}, - const {'1': 'user', '3': 2, '4': 1, '5': 11, '6': '.livekit.UserPacket', '9': 0, '10': 'user'}, + const { + '1': 'kind', + '3': 1, + '4': 1, + '5': 14, + '6': '.livekit.DataPacket.Kind', + '10': 'kind' + }, + const { + '1': 'user', + '3': 2, + '4': 1, + '5': 11, + '6': '.livekit.UserPacket', + '9': 0, + '10': 'user' + }, const { '1': 'speaker', '3': 3, @@ -150,7 +185,14 @@ final $typed_data.Uint8List dataPacketDescriptor = $convert.base64Decode( const ActiveSpeakerUpdate$json = const { '1': 'ActiveSpeakerUpdate', '2': const [ - const {'1': 'speakers', '3': 1, '4': 3, '5': 11, '6': '.livekit.SpeakerInfo', '10': 'speakers'}, + const { + '1': 'speakers', + '3': 1, + '4': 3, + '5': 11, + '6': '.livekit.SpeakerInfo', + '10': 'speakers' + }, ], }; @@ -174,9 +216,21 @@ final $typed_data.Uint8List speakerInfoDescriptor = $convert.base64Decode( const UserPacket$json = const { '1': 'UserPacket', '2': const [ - const {'1': 'participant_sid', '3': 1, '4': 1, '5': 9, '10': 'participantSid'}, + const { + '1': 'participant_sid', + '3': 1, + '4': 1, + '5': 9, + '10': 'participantSid' + }, const {'1': 'payload', '3': 2, '4': 1, '5': 12, '10': 'payload'}, - const {'1': 'destination_sids', '3': 3, '4': 3, '5': 9, '10': 'destinationSids'}, + const { + '1': 'destination_sids', + '3': 3, + '4': 3, + '5': 9, + '10': 'destinationSids' + }, ], }; diff --git a/lib/src/proto/livekit_rtc.pb.dart b/lib/src/proto/livekit_rtc.pb.dart index d6ceb95..c097a31 100644 --- a/lib/src/proto/livekit_rtc.pb.dart +++ b/lib/src/proto/livekit_rtc.pb.dart @@ -30,7 +30,8 @@ enum SignalRequest_Message { } class SignalRequest extends $pb.GeneratedMessage { - static const $core.Map<$core.int, SignalRequest_Message> _SignalRequest_MessageByTag = { + static const $core.Map<$core.int, SignalRequest_Message> + _SignalRequest_MessageByTag = { 1: SignalRequest_Message.offer, 2: SignalRequest_Message.answer, 3: SignalRequest_Message.trickle, @@ -43,37 +44,68 @@ class SignalRequest extends $pb.GeneratedMessage { 0: SignalRequest_Message.notSet }; static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SignalRequest', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'SignalRequest', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) ..oo(0, [1, 2, 3, 4, 5, 6, 7, 8, 9]) ..aOM( - 1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'offer', + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'offer', subBuilder: SessionDescription.create) ..aOM( - 2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'answer', + 2, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'answer', subBuilder: SessionDescription.create) ..aOM( - 3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'trickle', + 3, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'trickle', subBuilder: TrickleRequest.create) ..aOM( - 4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'addTrack', + 4, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'addTrack', subBuilder: AddTrackRequest.create) ..aOM( - 5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'mute', + 5, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'mute', subBuilder: MuteTrackRequest.create) ..aOM( - 6, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'subscription', + 6, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'subscription', subBuilder: UpdateSubscription.create) ..aOM( - 7, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'trackSetting', + 7, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'trackSetting', subBuilder: UpdateTrackSettings.create) ..aOM( - 8, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'leave', + 8, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'leave', subBuilder: LeaveRequest.create) ..aOM( - 9, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'simulcast', + 9, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'simulcast', subBuilder: SetSimulcastLayers.create) ..hasRequiredFields = false; @@ -139,13 +171,15 @@ class SignalRequest extends $pb.GeneratedMessage { @$core.pragma('dart2js:noInline') static SignalRequest create() => SignalRequest._(); SignalRequest createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); + static $pb.PbList createRepeated() => + $pb.PbList(); @$core.pragma('dart2js:noInline') - static SignalRequest getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static SignalRequest getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static SignalRequest? _defaultInstance; - SignalRequest_Message whichMessage() => _SignalRequest_MessageByTag[$_whichOneof(0)]!; + SignalRequest_Message whichMessage() => + _SignalRequest_MessageByTag[$_whichOneof(0)]!; void clearMessage() => clearField($_whichOneof(0)); @$pb.TagNumber(1) @@ -290,7 +324,8 @@ enum SignalResponse_Message { } class SignalResponse extends $pb.GeneratedMessage { - static const $core.Map<$core.int, SignalResponse_Message> _SignalResponse_MessageByTag = { + static const $core.Map<$core.int, SignalResponse_Message> + _SignalResponse_MessageByTag = { 1: SignalResponse_Message.join, 2: SignalResponse_Message.answer, 3: SignalResponse_Message.offer, @@ -304,40 +339,74 @@ class SignalResponse extends $pb.GeneratedMessage { 0: SignalResponse_Message.notSet }; static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SignalResponse', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'SignalResponse', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) ..oo(0, [1, 2, 3, 4, 5, 6, 8, 9, 10, 11]) ..aOM( - 1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'join', + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'join', subBuilder: JoinResponse.create) ..aOM( - 2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'answer', + 2, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'answer', subBuilder: SessionDescription.create) ..aOM( - 3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'offer', + 3, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'offer', subBuilder: SessionDescription.create) ..aOM( - 4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'trickle', + 4, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'trickle', subBuilder: TrickleRequest.create) ..aOM( - 5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'update', + 5, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'update', subBuilder: ParticipantUpdate.create) ..aOM( - 6, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'trackPublished', + 6, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'trackPublished', subBuilder: TrackPublishedResponse.create) ..aOM( - 8, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'leave', + 8, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'leave', subBuilder: LeaveRequest.create) ..aOM( - 9, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'mute', + 9, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'mute', subBuilder: MuteTrackRequest.create) ..aOM( - 10, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'speakersChanged', + 10, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'speakersChanged', subBuilder: SpeakersChanged.create) ..aOM( - 11, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'roomUpdate', + 11, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'roomUpdate', subBuilder: RoomUpdate.create) ..hasRequiredFields = false; @@ -407,13 +476,15 @@ class SignalResponse extends $pb.GeneratedMessage { @$core.pragma('dart2js:noInline') static SignalResponse create() => SignalResponse._(); SignalResponse createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); + static $pb.PbList createRepeated() => + $pb.PbList(); @$core.pragma('dart2js:noInline') - static SignalResponse getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static SignalResponse getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static SignalResponse? _defaultInstance; - SignalResponse_Message whichMessage() => _SignalResponse_MessageByTag[$_whichOneof(0)]!; + SignalResponse_Message whichMessage() => + _SignalResponse_MessageByTag[$_whichOneof(0)]!; void clearMessage() => clearField($_whichOneof(0)); @$pb.TagNumber(1) @@ -559,24 +630,50 @@ class SignalResponse extends $pb.GeneratedMessage { class AddTrackRequest extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'AddTrackRequest', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'AddTrackRequest', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'cid') - ..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'name') + ..aOS( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'cid') + ..aOS( + 2, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'name') ..e<$0.TrackType>( 3, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'type', + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'type', $pb.PbFieldType.OE, defaultOrMaker: $0.TrackType.AUDIO, valueOf: $0.TrackType.valueOf, enumValues: $0.TrackType.values) - ..a<$core.int>(4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'width', + ..a<$core.int>( + 4, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'width', $pb.PbFieldType.OU3) - ..a<$core.int>(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'height', + ..a<$core.int>( + 5, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'height', $pb.PbFieldType.OU3) - ..aOB(6, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'muted') + ..aOB( + 6, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'muted') ..hasRequiredFields = false; AddTrackRequest._() : super(); @@ -629,10 +726,11 @@ class AddTrackRequest extends $pb.GeneratedMessage { @$core.pragma('dart2js:noInline') static AddTrackRequest create() => AddTrackRequest._(); AddTrackRequest createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); + static $pb.PbList createRepeated() => + $pb.PbList(); @$core.pragma('dart2js:noInline') - static AddTrackRequest getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static AddTrackRequest getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static AddTrackRequest? _defaultInstance; @$pb.TagNumber(1) @@ -710,15 +808,25 @@ class AddTrackRequest extends $pb.GeneratedMessage { class TrickleRequest extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'TrickleRequest', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'TrickleRequest', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'candidateInit', + ..aOS( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'candidateInit', protoName: 'candidateInit') ..e( 2, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'target', + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'target', $pb.PbFieldType.OE, defaultOrMaker: SignalTarget.PUBLISHER, valueOf: SignalTarget.valueOf, @@ -759,10 +867,11 @@ class TrickleRequest extends $pb.GeneratedMessage { @$core.pragma('dart2js:noInline') static TrickleRequest create() => TrickleRequest._(); TrickleRequest createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); + static $pb.PbList createRepeated() => + $pb.PbList(); @$core.pragma('dart2js:noInline') - static TrickleRequest getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static TrickleRequest getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static TrickleRequest? _defaultInstance; @$pb.TagNumber(1) @@ -792,12 +901,24 @@ class TrickleRequest extends $pb.GeneratedMessage { class MuteTrackRequest extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'MuteTrackRequest', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'MuteTrackRequest', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'sid') - ..aOB(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'muted') + ..aOS( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'sid') + ..aOB( + 2, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'muted') ..hasRequiredFields = false; MuteTrackRequest._() : super(); @@ -834,10 +955,11 @@ class MuteTrackRequest extends $pb.GeneratedMessage { @$core.pragma('dart2js:noInline') static MuteTrackRequest create() => MuteTrackRequest._(); MuteTrackRequest createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); + static $pb.PbList createRepeated() => + $pb.PbList(); @$core.pragma('dart2js:noInline') - static MuteTrackRequest getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static MuteTrackRequest getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static MuteTrackRequest? _defaultInstance; @$pb.TagNumber(1) @@ -867,14 +989,24 @@ class MuteTrackRequest extends $pb.GeneratedMessage { class SetSimulcastLayers extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SetSimulcastLayers', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'SetSimulcastLayers', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'trackSid') + ..aOS( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'trackSid') ..pc( 2, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'layers', + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'layers', $pb.PbFieldType.PE, valueOf: VideoQuality.valueOf, enumValues: VideoQuality.values) @@ -914,10 +1046,11 @@ class SetSimulcastLayers extends $pb.GeneratedMessage { @$core.pragma('dart2js:noInline') static SetSimulcastLayers create() => SetSimulcastLayers._(); SetSimulcastLayers createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); + static $pb.PbList createRepeated() => + $pb.PbList(); @$core.pragma('dart2js:noInline') - static SetSimulcastLayers getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static SetSimulcastLayers getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static SetSimulcastLayers? _defaultInstance; @$pb.TagNumber(1) @@ -938,28 +1071,50 @@ class SetSimulcastLayers extends $pb.GeneratedMessage { class JoinResponse extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'JoinResponse', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'JoinResponse', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..aOM<$0.Room>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'room', + ..aOM<$0.Room>( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'room', subBuilder: $0.Room.create) ..aOM<$0.ParticipantInfo>( - 2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'participant', + 2, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'participant', subBuilder: $0.ParticipantInfo.create) ..pc<$0.ParticipantInfo>( 3, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'otherParticipants', + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'otherParticipants', $pb.PbFieldType.PM, subBuilder: $0.ParticipantInfo.create) - ..aOS(4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'serverVersion') + ..aOS( + 4, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'serverVersion') ..pc( 5, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'iceServers', + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'iceServers', $pb.PbFieldType.PM, subBuilder: ICEServer.create) ..aOB( - 6, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'subscriberPrimary') + 6, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'subscriberPrimary') ..hasRequiredFields = false; JoinResponse._() : super(); @@ -1012,10 +1167,11 @@ class JoinResponse extends $pb.GeneratedMessage { @$core.pragma('dart2js:noInline') static JoinResponse create() => JoinResponse._(); JoinResponse createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); + static $pb.PbList createRepeated() => + $pb.PbList(); @$core.pragma('dart2js:noInline') - static JoinResponse getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static JoinResponse getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static JoinResponse? _defaultInstance; @$pb.TagNumber(1) @@ -1083,11 +1239,20 @@ class TrackPublishedResponse extends $pb.GeneratedMessage { ? '' : 'TrackPublishedResponse', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'cid') + ..aOS( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'cid') ..aOM<$0.TrackInfo>( - 2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'track', + 2, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'track', subBuilder: $0.TrackInfo.create) ..hasRequiredFields = false; @@ -1114,11 +1279,13 @@ class TrackPublishedResponse extends $pb.GeneratedMessage { @$core.Deprecated('Using this can add significant overhead to your binary. ' 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' 'Will be removed in next major version') - TrackPublishedResponse clone() => TrackPublishedResponse()..mergeFromMessage(this); + TrackPublishedResponse clone() => + TrackPublishedResponse()..mergeFromMessage(this); @$core.Deprecated('Using this can add significant overhead to your binary. ' 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' 'Will be removed in next major version') - TrackPublishedResponse copyWith(void Function(TrackPublishedResponse) updates) => + TrackPublishedResponse copyWith( + void Function(TrackPublishedResponse) updates) => super.copyWith((message) => updates(message as TrackPublishedResponse)) as TrackPublishedResponse; // ignore: deprecated_member_use $pb.BuilderInfo get info_ => _i; @@ -1128,8 +1295,8 @@ class TrackPublishedResponse extends $pb.GeneratedMessage { static $pb.PbList createRepeated() => $pb.PbList(); @$core.pragma('dart2js:noInline') - static TrackPublishedResponse getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static TrackPublishedResponse getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static TrackPublishedResponse? _defaultInstance; @$pb.TagNumber(1) @@ -1161,12 +1328,24 @@ class TrackPublishedResponse extends $pb.GeneratedMessage { class SessionDescription extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SessionDescription', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'SessionDescription', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'type') - ..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'sdp') + ..aOS( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'type') + ..aOS( + 2, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'sdp') ..hasRequiredFields = false; SessionDescription._() : super(); @@ -1203,10 +1382,11 @@ class SessionDescription extends $pb.GeneratedMessage { @$core.pragma('dart2js:noInline') static SessionDescription create() => SessionDescription._(); SessionDescription createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); + static $pb.PbList createRepeated() => + $pb.PbList(); @$core.pragma('dart2js:noInline') - static SessionDescription getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static SessionDescription getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static SessionDescription? _defaultInstance; @$pb.TagNumber(1) @@ -1236,13 +1416,19 @@ class SessionDescription extends $pb.GeneratedMessage { class ParticipantUpdate extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'ParticipantUpdate', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'ParticipantUpdate', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) ..pc<$0.ParticipantInfo>( 1, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'participants', + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'participants', $pb.PbFieldType.PM, subBuilder: $0.ParticipantInfo.create) ..hasRequiredFields = false; @@ -1277,10 +1463,11 @@ class ParticipantUpdate extends $pb.GeneratedMessage { @$core.pragma('dart2js:noInline') static ParticipantUpdate create() => ParticipantUpdate._(); ParticipantUpdate createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); + static $pb.PbList createRepeated() => + $pb.PbList(); @$core.pragma('dart2js:noInline') - static ParticipantUpdate getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static ParticipantUpdate getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static ParticipantUpdate? _defaultInstance; @$pb.TagNumber(1) @@ -1289,12 +1476,24 @@ class ParticipantUpdate extends $pb.GeneratedMessage { class UpdateSubscription extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'UpdateSubscription', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'UpdateSubscription', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..pPS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'trackSids') - ..aOB(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'subscribe') + ..pPS( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'trackSids') + ..aOB( + 2, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'subscribe') ..hasRequiredFields = false; UpdateSubscription._() : super(); @@ -1331,10 +1530,11 @@ class UpdateSubscription extends $pb.GeneratedMessage { @$core.pragma('dart2js:noInline') static UpdateSubscription create() => UpdateSubscription._(); UpdateSubscription createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); + static $pb.PbList createRepeated() => + $pb.PbList(); @$core.pragma('dart2js:noInline') - static UpdateSubscription getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static UpdateSubscription getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static UpdateSubscription? _defaultInstance; @$pb.TagNumber(1) @@ -1355,15 +1555,29 @@ class UpdateSubscription extends $pb.GeneratedMessage { class UpdateTrackSettings extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'UpdateTrackSettings', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'UpdateTrackSettings', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..pPS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'trackSids') - ..aOB(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'disabled') + ..pPS( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'trackSids') + ..aOB( + 3, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'disabled') ..e( 4, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'quality', + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'quality', $pb.PbFieldType.OE, defaultOrMaker: VideoQuality.LOW, valueOf: VideoQuality.valueOf, @@ -1408,10 +1622,11 @@ class UpdateTrackSettings extends $pb.GeneratedMessage { @$core.pragma('dart2js:noInline') static UpdateTrackSettings create() => UpdateTrackSettings._(); UpdateTrackSettings createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); + static $pb.PbList createRepeated() => + $pb.PbList(); @$core.pragma('dart2js:noInline') - static UpdateTrackSettings getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static UpdateTrackSettings getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static UpdateTrackSettings? _defaultInstance; @$pb.TagNumber(1) @@ -1444,11 +1659,19 @@ class UpdateTrackSettings extends $pb.GeneratedMessage { class LeaveRequest extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'LeaveRequest', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'LeaveRequest', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..aOB(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'canReconnect') + ..aOB( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'canReconnect') ..hasRequiredFields = false; LeaveRequest._() : super(); @@ -1481,10 +1704,11 @@ class LeaveRequest extends $pb.GeneratedMessage { @$core.pragma('dart2js:noInline') static LeaveRequest create() => LeaveRequest._(); LeaveRequest createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); + static $pb.PbList createRepeated() => + $pb.PbList(); @$core.pragma('dart2js:noInline') - static LeaveRequest getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static LeaveRequest getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static LeaveRequest? _defaultInstance; @$pb.TagNumber(1) @@ -1502,13 +1726,29 @@ class LeaveRequest extends $pb.GeneratedMessage { class ICEServer extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'ICEServer', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'ICEServer', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..pPS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'urls') - ..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'username') - ..aOS(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'credential') + ..pPS( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'urls') + ..aOS( + 2, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'username') + ..aOS( + 3, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'credential') ..hasRequiredFields = false; ICEServer._() : super(); @@ -1585,13 +1825,19 @@ class ICEServer extends $pb.GeneratedMessage { class SpeakersChanged extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SpeakersChanged', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'SpeakersChanged', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) ..pc<$0.SpeakerInfo>( 1, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'speakers', + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'speakers', $pb.PbFieldType.PM, subBuilder: $0.SpeakerInfo.create) ..hasRequiredFields = false; @@ -1626,10 +1872,11 @@ class SpeakersChanged extends $pb.GeneratedMessage { @$core.pragma('dart2js:noInline') static SpeakersChanged create() => SpeakersChanged._(); SpeakersChanged createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); + static $pb.PbList createRepeated() => + $pb.PbList(); @$core.pragma('dart2js:noInline') - static SpeakersChanged getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static SpeakersChanged getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static SpeakersChanged? _defaultInstance; @$pb.TagNumber(1) @@ -1638,11 +1885,19 @@ class SpeakersChanged extends $pb.GeneratedMessage { class RoomUpdate extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'RoomUpdate', + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'RoomUpdate', package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'livekit'), createEmptyInstance: create) - ..aOM<$0.Room>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'room', + ..aOM<$0.Room>( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'room', subBuilder: $0.Room.create) ..hasRequiredFields = false; @@ -1678,8 +1933,8 @@ class RoomUpdate extends $pb.GeneratedMessage { RoomUpdate createEmptyInstance() => create(); static $pb.PbList createRepeated() => $pb.PbList(); @$core.pragma('dart2js:noInline') - static RoomUpdate getDefault() => - _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static RoomUpdate getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); static RoomUpdate? _defaultInstance; @$pb.TagNumber(1) diff --git a/lib/src/proto/livekit_rtc.pbenum.dart b/lib/src/proto/livekit_rtc.pbenum.dart index b95f930..ac2bd47 100644 --- a/lib/src/proto/livekit_rtc.pbenum.dart +++ b/lib/src/proto/livekit_rtc.pbenum.dart @@ -11,28 +11,44 @@ import 'package:protobuf/protobuf.dart' as $pb; class SignalTarget extends $pb.ProtobufEnum { static const SignalTarget PUBLISHER = SignalTarget._( - 0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'PUBLISHER'); + 0, + const $core.bool.fromEnvironment('protobuf.omit_enum_names') + ? '' + : 'PUBLISHER'); static const SignalTarget SUBSCRIBER = SignalTarget._( - 1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'SUBSCRIBER'); + 1, + const $core.bool.fromEnvironment('protobuf.omit_enum_names') + ? '' + : 'SUBSCRIBER'); static const $core.List values = [ PUBLISHER, SUBSCRIBER, ]; - static final $core.Map<$core.int, SignalTarget> _byValue = $pb.ProtobufEnum.initByValue(values); + static final $core.Map<$core.int, SignalTarget> _byValue = + $pb.ProtobufEnum.initByValue(values); static SignalTarget? valueOf($core.int value) => _byValue[value]; const SignalTarget._($core.int v, $core.String n) : super(v, n); } class VideoQuality extends $pb.ProtobufEnum { - static const VideoQuality LOW = - VideoQuality._(0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'LOW'); + static const VideoQuality LOW = VideoQuality._( + 0, + const $core.bool.fromEnvironment('protobuf.omit_enum_names') + ? '' + : 'LOW'); static const VideoQuality MEDIUM = VideoQuality._( - 1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'MEDIUM'); - static const VideoQuality HIGH = - VideoQuality._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'HIGH'); + 1, + const $core.bool.fromEnvironment('protobuf.omit_enum_names') + ? '' + : 'MEDIUM'); + static const VideoQuality HIGH = VideoQuality._( + 2, + const $core.bool.fromEnvironment('protobuf.omit_enum_names') + ? '' + : 'HIGH'); static const $core.List values = [ LOW, @@ -40,7 +56,8 @@ class VideoQuality extends $pb.ProtobufEnum { HIGH, ]; - static final $core.Map<$core.int, VideoQuality> _byValue = $pb.ProtobufEnum.initByValue(values); + static final $core.Map<$core.int, VideoQuality> _byValue = + $pb.ProtobufEnum.initByValue(values); static VideoQuality? valueOf($core.int value) => _byValue[value]; const VideoQuality._($core.int v, $core.String n) : super(v, n); diff --git a/lib/src/proto/livekit_rtc.pbjson.dart b/lib/src/proto/livekit_rtc.pbjson.dart index 4833792..e350f95 100644 --- a/lib/src/proto/livekit_rtc.pbjson.dart +++ b/lib/src/proto/livekit_rtc.pbjson.dart @@ -19,8 +19,8 @@ const SignalTarget$json = const { }; /// Descriptor for `SignalTarget`. Decode as a `google.protobuf.EnumDescriptorProto`. -final $typed_data.Uint8List signalTargetDescriptor = - $convert.base64Decode('CgxTaWduYWxUYXJnZXQSDQoJUFVCTElTSEVSEAASDgoKU1VCU0NSSUJFUhAB'); +final $typed_data.Uint8List signalTargetDescriptor = $convert.base64Decode( + 'CgxTaWduYWxUYXJnZXQSDQoJUFVCTElTSEVSEAASDgoKU1VCU0NSSUJFUhAB'); @$core.Deprecated('Use videoQualityDescriptor instead') const VideoQuality$json = const { '1': 'VideoQuality', @@ -32,8 +32,8 @@ const VideoQuality$json = const { }; /// Descriptor for `VideoQuality`. Decode as a `google.protobuf.EnumDescriptorProto`. -final $typed_data.Uint8List videoQualityDescriptor = - $convert.base64Decode('CgxWaWRlb1F1YWxpdHkSBwoDTE9XEAASCgoGTUVESVVNEAESCAoESElHSBAC'); +final $typed_data.Uint8List videoQualityDescriptor = $convert.base64Decode( + 'CgxWaWRlb1F1YWxpdHkSBwoDTE9XEAASCgoGTUVESVVNEAESCAoESElHSBAC'); @$core.Deprecated('Use signalRequestDescriptor instead') const SignalRequest$json = const { '1': 'SignalRequest', @@ -237,7 +237,14 @@ const AddTrackRequest$json = const { '2': const [ const {'1': 'cid', '3': 1, '4': 1, '5': 9, '10': 'cid'}, const {'1': 'name', '3': 2, '4': 1, '5': 9, '10': 'name'}, - const {'1': 'type', '3': 3, '4': 1, '5': 14, '6': '.livekit.TrackType', '10': 'type'}, + const { + '1': 'type', + '3': 3, + '4': 1, + '5': 14, + '6': '.livekit.TrackType', + '10': 'type' + }, const {'1': 'width', '3': 4, '4': 1, '5': 13, '10': 'width'}, const {'1': 'height', '3': 5, '4': 1, '5': 13, '10': 'height'}, const {'1': 'muted', '3': 6, '4': 1, '5': 8, '10': 'muted'}, @@ -252,7 +259,14 @@ const TrickleRequest$json = const { '1': 'TrickleRequest', '2': const [ const {'1': 'candidateInit', '3': 1, '4': 1, '5': 9, '10': 'candidateInit'}, - const {'1': 'target', '3': 2, '4': 1, '5': 14, '6': '.livekit.SignalTarget', '10': 'target'}, + const { + '1': 'target', + '3': 2, + '4': 1, + '5': 14, + '6': '.livekit.SignalTarget', + '10': 'target' + }, ], }; @@ -276,7 +290,14 @@ const SetSimulcastLayers$json = const { '1': 'SetSimulcastLayers', '2': const [ const {'1': 'track_sid', '3': 1, '4': 1, '5': 9, '10': 'trackSid'}, - const {'1': 'layers', '3': 2, '4': 3, '5': 14, '6': '.livekit.VideoQuality', '10': 'layers'}, + const { + '1': 'layers', + '3': 2, + '4': 3, + '5': 14, + '6': '.livekit.VideoQuality', + '10': 'layers' + }, ], }; @@ -287,7 +308,14 @@ final $typed_data.Uint8List setSimulcastLayersDescriptor = $convert.base64Decode const JoinResponse$json = const { '1': 'JoinResponse', '2': const [ - const {'1': 'room', '3': 1, '4': 1, '5': 11, '6': '.livekit.Room', '10': 'room'}, + const { + '1': 'room', + '3': 1, + '4': 1, + '5': 11, + '6': '.livekit.Room', + '10': 'room' + }, const { '1': 'participant', '3': 2, @@ -304,7 +332,13 @@ const JoinResponse$json = const { '6': '.livekit.ParticipantInfo', '10': 'otherParticipants' }, - const {'1': 'server_version', '3': 4, '4': 1, '5': 9, '10': 'serverVersion'}, + const { + '1': 'server_version', + '3': 4, + '4': 1, + '5': 9, + '10': 'serverVersion' + }, const { '1': 'ice_servers', '3': 5, @@ -313,7 +347,13 @@ const JoinResponse$json = const { '6': '.livekit.ICEServer', '10': 'iceServers' }, - const {'1': 'subscriber_primary', '3': 6, '4': 1, '5': 8, '10': 'subscriberPrimary'}, + const { + '1': 'subscriber_primary', + '3': 6, + '4': 1, + '5': 8, + '10': 'subscriberPrimary' + }, ], }; @@ -325,13 +365,21 @@ const TrackPublishedResponse$json = const { '1': 'TrackPublishedResponse', '2': const [ const {'1': 'cid', '3': 1, '4': 1, '5': 9, '10': 'cid'}, - const {'1': 'track', '3': 2, '4': 1, '5': 11, '6': '.livekit.TrackInfo', '10': 'track'}, + const { + '1': 'track', + '3': 2, + '4': 1, + '5': 11, + '6': '.livekit.TrackInfo', + '10': 'track' + }, ], }; /// Descriptor for `TrackPublishedResponse`. Decode as a `google.protobuf.DescriptorProto`. -final $typed_data.Uint8List trackPublishedResponseDescriptor = $convert.base64Decode( - 'ChZUcmFja1B1Ymxpc2hlZFJlc3BvbnNlEhAKA2NpZBgBIAEoCVIDY2lkEigKBXRyYWNrGAIgASgLMhIubGl2ZWtpdC5UcmFja0luZm9SBXRyYWNr'); +final $typed_data.Uint8List trackPublishedResponseDescriptor = + $convert.base64Decode( + 'ChZUcmFja1B1Ymxpc2hlZFJlc3BvbnNlEhAKA2NpZBgBIAEoCVIDY2lkEigKBXRyYWNrGAIgASgLMhIubGl2ZWtpdC5UcmFja0luZm9SBXRyYWNr'); @$core.Deprecated('Use sessionDescriptionDescriptor instead') const SessionDescription$json = const { '1': 'SessionDescription', @@ -380,7 +428,14 @@ const UpdateTrackSettings$json = const { '2': const [ const {'1': 'track_sids', '3': 1, '4': 3, '5': 9, '10': 'trackSids'}, const {'1': 'disabled', '3': 3, '4': 1, '5': 8, '10': 'disabled'}, - const {'1': 'quality', '3': 4, '4': 1, '5': 14, '6': '.livekit.VideoQuality', '10': 'quality'}, + const { + '1': 'quality', + '3': 4, + '4': 1, + '5': 14, + '6': '.livekit.VideoQuality', + '10': 'quality' + }, ], }; @@ -396,8 +451,8 @@ const LeaveRequest$json = const { }; /// Descriptor for `LeaveRequest`. Decode as a `google.protobuf.DescriptorProto`. -final $typed_data.Uint8List leaveRequestDescriptor = - $convert.base64Decode('CgxMZWF2ZVJlcXVlc3QSIwoNY2FuX3JlY29ubmVjdBgBIAEoCFIMY2FuUmVjb25uZWN0'); +final $typed_data.Uint8List leaveRequestDescriptor = $convert.base64Decode( + 'CgxMZWF2ZVJlcXVlc3QSIwoNY2FuX3JlY29ubmVjdBgBIAEoCFIMY2FuUmVjb25uZWN0'); @$core.Deprecated('Use iCEServerDescriptor instead') const ICEServer$json = const { '1': 'ICEServer', @@ -415,7 +470,14 @@ final $typed_data.Uint8List iCEServerDescriptor = $convert.base64Decode( const SpeakersChanged$json = const { '1': 'SpeakersChanged', '2': const [ - const {'1': 'speakers', '3': 1, '4': 3, '5': 11, '6': '.livekit.SpeakerInfo', '10': 'speakers'}, + const { + '1': 'speakers', + '3': 1, + '4': 3, + '5': 11, + '6': '.livekit.SpeakerInfo', + '10': 'speakers' + }, ], }; @@ -426,10 +488,17 @@ final $typed_data.Uint8List speakersChangedDescriptor = $convert.base64Decode( const RoomUpdate$json = const { '1': 'RoomUpdate', '2': const [ - const {'1': 'room', '3': 1, '4': 1, '5': 11, '6': '.livekit.Room', '10': 'room'}, + const { + '1': 'room', + '3': 1, + '4': 1, + '5': 11, + '6': '.livekit.Room', + '10': 'room' + }, ], }; /// Descriptor for `RoomUpdate`. Decode as a `google.protobuf.DescriptorProto`. -final $typed_data.Uint8List roomUpdateDescriptor = - $convert.base64Decode('CgpSb29tVXBkYXRlEiEKBHJvb20YASABKAsyDS5saXZla2l0LlJvb21SBHJvb20='); +final $typed_data.Uint8List roomUpdateDescriptor = $convert.base64Decode( + 'CgpSb29tVXBkYXRlEiEKBHJvb20YASABKAsyDS5saXZla2l0LlJvb21SBHJvb20='); diff --git a/lib/src/room.dart b/lib/src/room.dart index bed4b1a..583eb54 100644 --- a/lib/src/room.dart +++ b/lib/src/room.dart @@ -121,7 +121,8 @@ class Room extends DisposableChangeNotifier with EventsEmittable { options: options, ); - logger.fine('Connected to LiveKit server, version: ${joinResponse.serverVersion}'); + logger.fine( + 'Connected to LiveKit server, version: ${joinResponse.serverVersion}'); // create Room first to listen to events room = Room._( @@ -165,10 +166,12 @@ class Room extends DisposableChangeNotifier with EventsEmittable { events.emit(const RoomReconnectingEvent()); }) ..on((event) => _handleClose()) - ..on((event) => _onParticipantUpdateEvent(event.participants)) + ..on( + (event) => _onParticipantUpdateEvent(event.participants)) ..on( (event) => _onEngineActiveSpeakersUpdateEvent(event.speakers)) - ..on((event) => _onSignalSpeakersChangedEvent(event.speakers)) + ..on( + (event) => _onSignalSpeakersChangedEvent(event.speakers)) ..on(_onDataMessageEvent) ..on((event) async { final track = localParticipant.trackPublications[event.sid]; @@ -196,7 +199,8 @@ class Room extends DisposableChangeNotifier with EventsEmittable { [participant.roomEvents, participant.events].emit(event); } catch (exception) { // We don't want to pass up any exception so catch everything here. - logger.warning('Unknown exception on addSubscribedMediaTrack() ${exception}'); + logger.warning( + 'Unknown exception on addSubscribedMediaTrack() ${exception}'); } }); @@ -212,7 +216,8 @@ class Room extends DisposableChangeNotifier with EventsEmittable { await engine.reconnect(); } - RemoteParticipant _getOrCreateRemoteParticipant(String sid, lk_models.ParticipantInfo? info) { + RemoteParticipant _getOrCreateRemoteParticipant( + String sid, lk_models.ParticipantInfo? info) { RemoteParticipant? participant = _participants[sid]; if (participant != null) { return participant; @@ -267,7 +272,8 @@ class Room extends DisposableChangeNotifier with EventsEmittable { } } - Future _onParticipantUpdateEvent(List updates) async { + Future _onParticipantUpdateEvent( + List updates) async { // trigger change notifier only if list of participants membership is changed var hasChanged = false; for (final info in updates) { @@ -326,7 +332,8 @@ class Room extends DisposableChangeNotifier with EventsEmittable { // from data channel // updates are sent only when there's a change to speaker ordering - void _onEngineActiveSpeakersUpdateEvent(List speakers) { + void _onEngineActiveSpeakersUpdateEvent( + List speakers) { List activeSpeakers = []; // localParticipant & remote participants diff --git a/lib/src/rtc_engine.dart b/lib/src/rtc_engine.dart index 164f77e..d1f9559 100644 --- a/lib/src/rtc_engine.dart +++ b/lib/src/rtc_engine.dart @@ -74,7 +74,8 @@ class RTCEngine extends Disposable with EventsEmittable { }) : signalClient = signalClient ?? SignalClient() { if (kDebugMode) { // log all EngineEvents - events.listen((event) => logger.fine('[EngineEvent] $objectId ${event.runtimeType}')); + events.listen((event) => + logger.fine('[EngineEvent] $objectId ${event.runtimeType}')); } _setUpListeners(); @@ -137,7 +138,8 @@ class RTCEngine extends Disposable with EventsEmittable { TrackDimension? dimension, }) async { // send request to add track - signalClient.sendAddTrack(cid: cid, name: name, type: kind, dimension: dimension); + signalClient.sendAddTrack( + cid: cid, name: name, type: kind, dimension: dimension); // wait for response, or timeout final event = await _signalListener.waitFor( @@ -165,11 +167,13 @@ class RTCEngine extends Disposable with EventsEmittable { // make sure we do have a data connection await _ensurePublisherConnected(); - final dcMessage = rtc.RTCDataChannelMessage.fromBinary(packet.writeToBuffer()); + final dcMessage = + rtc.RTCDataChannelMessage.fromBinary(packet.writeToBuffer()); if (packet.kind == lk_models.DataPacket_Kind.LOSSY && _lossyDC != null) { await _lossyDC?.send(dcMessage); - } else if (packet.kind == lk_models.DataPacket_Kind.RELIABLE && _reliableDC != null) { + } else if (packet.kind == lk_models.DataPacket_Kind.RELIABLE && + _reliableDC != null) { await _reliableDC?.send(dcMessage); } } @@ -231,7 +235,8 @@ class RTCEngine extends Disposable with EventsEmittable { // await negotiate(iceRestart: true); if (_hasPublished) { logger.fine('reconnect: publisher.createAndSendOffer'); - await publisher!.createAndSendOffer(const RTCOfferOptions(iceRestart: true)); + await publisher! + .createAndSendOffer(const RTCOfferOptions(iceRestart: true)); } if (!(primary?.pc.iceConnectionState?.isConnected() ?? false)) { @@ -263,9 +268,11 @@ class RTCEngine extends Disposable with EventsEmittable { RTCConfiguration? config; // use server-provided iceServers if not provided by user - if ((rtcConfig?.iceServers?.isEmpty ?? true) && _providedIceServers.isNotEmpty) { + if ((rtcConfig?.iceServers?.isEmpty ?? true) && + _providedIceServers.isNotEmpty) { final iceServers = _providedIceServers.map((e) => e.toSDKType()).toList(); - config = (rtcConfig ?? const RTCConfiguration()).copyWith(iceServers: iceServers); + config = (rtcConfig ?? const RTCConfiguration()) + .copyWith(iceServers: iceServers); } publisher = await PCTransport.create(config); @@ -297,16 +304,18 @@ class RTCEngine extends Disposable with EventsEmittable { isPrimary: _subscriberPrimary, )); - publisher?.pc.onIceConnectionState = (state) => events.emit(EnginePublisherIceStateUpdatedEvent( - state: state, - isPrimary: !_subscriberPrimary, - )); + publisher?.pc.onIceConnectionState = + (state) => events.emit(EnginePublisherIceStateUpdatedEvent( + state: state, + isPrimary: !_subscriberPrimary, + )); events.on((event) { // only listen to primary ice events if (!event.isPrimary) return; - if (event.iceState == rtc.RTCIceConnectionState.RTCIceConnectionStateConnected) { + if (event.iceState == + rtc.RTCIceConnectionState.RTCIceConnectionStateConnected) { if (!_iceConnected) { _iceConnected = true; if (_connectionState == ConnectionState.reconnecting) { @@ -315,7 +324,8 @@ class RTCEngine extends Disposable with EventsEmittable { events.emit(const EngineConnectedEvent()); } } - } else if (event.iceState == rtc.RTCIceConnectionState.RTCIceConnectionStateFailed) { + } else if (event.iceState == + rtc.RTCIceConnectionState.RTCIceConnectionStateFailed) { // trigger reconnect sequence if (_iceConnected) { _iceConnected = false; @@ -345,7 +355,8 @@ class RTCEngine extends Disposable with EventsEmittable { ..binaryType = 'binary' ..ordered = true ..maxRetransmits = 0; - _lossyDC = await publisher?.pc.createDataChannel(_lossyDCLabel, lossyInit); + _lossyDC = + await publisher?.pc.createDataChannel(_lossyDCLabel, lossyInit); _lossyDC?.onMessage = _onDCMessage; } catch (_) { logger.severe('[$objectId] createDataChannel() did throw $_'); @@ -355,7 +366,8 @@ class RTCEngine extends Disposable with EventsEmittable { final reliableInit = rtc.RTCDataChannelInit() ..binaryType = 'binary' ..ordered = true; - _reliableDC = await publisher?.pc.createDataChannel(_reliableDCLabel, reliableInit); + _reliableDC = + await publisher?.pc.createDataChannel(_reliableDCLabel, reliableInit); _reliableDC?.onMessage = _onDCMessage; } catch (_) { logger.severe('[$objectId] createDataChannel() did throw $_'); @@ -390,7 +402,8 @@ class RTCEngine extends Disposable with EventsEmittable { final dp = lk_models.DataPacket.fromBuffer(message.binary); if (dp.whichValue() == lk_models.DataPacket_Value.speaker) { // Speaker packet - events.emit(EngineActiveSpeakersUpdateEvent(speakers: dp.speaker.speakers)); + events + .emit(EngineActiveSpeakersUpdateEvent(speakers: dp.speaker.speakers)); } else if (dp.whichValue() == lk_models.DataPacket_Value.user) { // User packet events.emit(EngineDataPacketReceivedEvent( @@ -409,13 +422,15 @@ class RTCEngine extends Disposable with EventsEmittable { logger.fine('[$objectId] Disconnected $reason'); if (_reconnectAttempts >= _maxReconnectAttempts) { - logger.info('[$objectId] Could not connect after ${_reconnectAttempts} attempts, giving up'); + logger.info( + '[$objectId] Could not connect after ${_reconnectAttempts} attempts, giving up'); await close(); events.emit(const EngineDisconnectedEvent()); return; } - final delay = Duration(milliseconds: (_reconnectAttempts * _reconnectAttempts) * 300); + final delay = + Duration(milliseconds: (_reconnectAttempts * _reconnectAttempts) * 300); // if this instance is disposed, we probably don't want to continue any more // so the whole block will be canceled from being executed @@ -483,7 +498,8 @@ class RTCEngine extends Disposable with EventsEmittable { }) ..on((event) async { if (publisher == null || subscriber == null) { - logger.warning('Received ${SignalTrickleEvent} but publisher or subscriber was null.'); + logger.warning( + 'Received ${SignalTrickleEvent} but publisher or subscriber was null.'); return; } logger.fine('got ICE candidate from peer'); @@ -501,8 +517,9 @@ class RTCEngine extends Disposable with EventsEmittable { await close(); events.emit(const EngineDisconnectedEvent()); }) - ..on((event) => events.emit(EngineRemoteMuteChangedEvent( - sid: event.sid, - muted: event.muted, - ))); + ..on( + (event) => events.emit(EngineRemoteMuteChangedEvent( + sid: event.sid, + muted: event.muted, + ))); } diff --git a/lib/src/signal_client.dart b/lib/src/signal_client.dart index d7e6fc2..243a6eb 100644 --- a/lib/src/signal_client.dart +++ b/lib/src/signal_client.dart @@ -76,7 +76,8 @@ class SignalClient extends Disposable with EventsEmittable { // Attempt Validation try { final validateResponse = await http.get(validateUri); - if (validateResponse.statusCode != 200) throw ConnectException(validateResponse.body); + if (validateResponse.statusCode != 200) + throw ConnectException(validateResponse.body); throw ConnectException(); } catch (error) { // Pass it up if it's already a `ConnectError` @@ -126,15 +127,19 @@ class SignalClient extends Disposable with EventsEmittable { // await close(); // } - void sendOffer(rtc.RTCSessionDescription offer) => _sendRequest(lk_rtc.SignalRequest( + void sendOffer(rtc.RTCSessionDescription offer) => + _sendRequest(lk_rtc.SignalRequest( offer: offer.toSDKType(), )); - void sendAnswer(rtc.RTCSessionDescription answer) => _sendRequest(lk_rtc.SignalRequest( + void sendAnswer(rtc.RTCSessionDescription answer) => + _sendRequest(lk_rtc.SignalRequest( answer: answer.toSDKType(), )); - void sendIceCandidate(rtc.RTCIceCandidate candidate, lk_rtc.SignalTarget target) => _sendRequest( + void sendIceCandidate( + rtc.RTCIceCandidate candidate, lk_rtc.SignalTarget target) => + _sendRequest( lk_rtc.SignalRequest( trickle: lk_rtc.TrickleRequest( candidateInit: candidate.toJson(), @@ -143,7 +148,8 @@ class SignalClient extends Disposable with EventsEmittable { ), ); - void sendMuteTrack(String trackSid, bool muted) => _sendRequest(lk_rtc.SignalRequest( + void sendMuteTrack(String trackSid, bool muted) => + _sendRequest(lk_rtc.SignalRequest( mute: lk_rtc.MuteTrackRequest( sid: trackSid, muted: muted, @@ -180,7 +186,8 @@ class SignalClient extends Disposable with EventsEmittable { subscription: subscription, )); - void sendSetSimulcastLayers(String trackSid, List layers) => + void sendSetSimulcastLayers( + String trackSid, List layers) => _sendRequest(lk_rtc.SignalRequest( simulcast: lk_rtc.SetSimulcastLayers( trackSid: trackSid, @@ -194,7 +201,8 @@ class SignalClient extends Disposable with EventsEmittable { void _sendRequest(lk_rtc.SignalRequest req) { if (_ws == null || isDisposed) { - logger.warning('[$objectId] Could not send message, not connected or already disposed'); + logger.warning( + '[$objectId] Could not send message, not connected or already disposed'); return; } @@ -226,7 +234,8 @@ class SignalClient extends Disposable with EventsEmittable { )); break; case lk_rtc.SignalResponse_Message.update: - events.emit(SignalParticipantUpdateEvent(participants: msg.update.participants)); + events.emit(SignalParticipantUpdateEvent( + participants: msg.update.participants)); break; case lk_rtc.SignalResponse_Message.trackPublished: events.emit(SignalLocalTrackPublishedEvent( @@ -235,7 +244,8 @@ class SignalClient extends Disposable with EventsEmittable { )); break; case lk_rtc.SignalResponse_Message.speakersChanged: - events.emit(SignalSpeakersChangedEvent(speakers: msg.speakersChanged.speakers)); + events.emit( + SignalSpeakersChangedEvent(speakers: msg.speakersChanged.speakers)); break; case lk_rtc.SignalResponse_Message.leave: events.emit(SignalLeaveEvent(canReconnect: msg.leave.canReconnect)); diff --git a/lib/src/support/disposable.dart b/lib/src/support/disposable.dart index 2795e3e..1aaefe8 100644 --- a/lib/src/support/disposable.dart +++ b/lib/src/support/disposable.dart @@ -22,7 +22,8 @@ mixin _Disposer { logger.fine('[${objectId}] dispose()'); _isDisposed = true; if (_disposeFuncs.isNotEmpty) { - logger.fine('[$objectId] running ${_disposeFuncs.length} dispose funcs...'); + logger.fine( + '[$objectId] running ${_disposeFuncs.length} dispose funcs...'); // call dispose funcs in reverse order for (final _func in _disposeFuncs.reversed) { await _func(); diff --git a/lib/src/support/native_audio.dart b/lib/src/support/native_audio.dart index 0af4224..85d0be7 100644 --- a/lib/src/support/native_audio.dart +++ b/lib/src/support/native_audio.dart @@ -87,11 +87,13 @@ class NativeAudioConfiguration { }); Map toMap() => { - if (appleAudioCategory != null) 'appleAudioCategory': appleAudioCategory!.toStringValue(), + if (appleAudioCategory != null) + 'appleAudioCategory': appleAudioCategory!.toStringValue(), if (appleAudioCategoryOptions != null) 'appleAudioCategoryOptions': appleAudioCategoryOptions!.map((e) => e.toStringValue()).toList(), - if (appleAudioMode != null) 'appleAudioMode': appleAudioMode!.toStringValue(), + if (appleAudioMode != null) + 'appleAudioMode': appleAudioMode!.toStringValue(), }; NativeAudioConfiguration copyWith({ @@ -101,14 +103,16 @@ class NativeAudioConfiguration { }) => NativeAudioConfiguration( appleAudioCategory: appleAudioCategory ?? this.appleAudioCategory, - appleAudioCategoryOptions: appleAudioCategoryOptions ?? this.appleAudioCategoryOptions, + appleAudioCategoryOptions: + appleAudioCategoryOptions ?? this.appleAudioCategoryOptions, appleAudioMode: appleAudioMode ?? this.appleAudioMode, ); } const _lkMethodChannel = MethodChannel('livekit_client'); -Future configureNativeAudio(NativeAudioConfiguration configuration) async { +Future configureNativeAudio( + NativeAudioConfiguration configuration) async { try { final result = await _lkMethodChannel.invokeMethod( 'configureNativeAudio', diff --git a/lib/src/support/platforms/io.dart b/lib/src/support/platforms/io.dart index 7d6e7c9..16baa02 100644 --- a/lib/src/support/platforms/io.dart +++ b/lib/src/support/platforms/io.dart @@ -37,7 +37,8 @@ class LiveKitWebSocketIO implements LiveKitWebSocket { void send(List data) { // 0 CONNECTING, 1 OPEN, 2 CLOSING, 3 CLOSED if (_ws.readyState != 1) { - logger.fine('[$objectId] Tried to send data (readyState: ${_ws.readyState})'); + logger.fine( + '[$objectId] Tried to send data (readyState: ${_ws.readyState})'); return; } diff --git a/lib/src/support/platforms/web.dart b/lib/src/support/platforms/web.dart index 953c8e7..bfd4329 100644 --- a/lib/src/support/platforms/web.dart +++ b/lib/src/support/platforms/web.dart @@ -47,8 +47,10 @@ class LiveKitWebSocketWeb implements LiveKitWebSocket { ]) async { final completer = Completer(); final ws = html.WebSocket(uri.toString()); - ws.onOpen.listen((_) => completer.complete(LiveKitWebSocketWeb._(ws, options))); - ws.onError.listen((_) => completer.completeError(WebSocketException.connect())); + ws.onOpen + .listen((_) => completer.complete(LiveKitWebSocketWeb._(ws, options))); + ws.onError + .listen((_) => completer.completeError(WebSocketException.connect())); return completer.future; } } diff --git a/lib/src/track/audio_track.dart b/lib/src/track/audio_track.dart index 68fc5ff..cfb365e 100644 --- a/lib/src/track/audio_track.dart +++ b/lib/src/track/audio_track.dart @@ -19,7 +19,8 @@ enum AudioTrackState { localAndRemote, } -typedef ConfigureNativeAudioFunc = Future Function(AudioTrackState state); +typedef ConfigureNativeAudioFunc = Future Function( + AudioTrackState state); class AudioTrack extends Track { // it's possible to set custom function here to customize audio session configuration @@ -102,11 +103,13 @@ class AudioTrack extends Track { NativeAudioConfiguration? config; if (!kIsWeb && Platform.isIOS) { // Only iOS for now... - config = await nativeAudioConfigurationForAudioTrackState.call(audioTrackState); + config = await nativeAudioConfigurationForAudioTrackState + .call(audioTrackState); } if (config != null) { - logger.fine('[$runtimeType] configuring for ${audioTrackState} using ${config}...'); + logger.fine( + '[$runtimeType] configuring for ${audioTrackState} using ${config}...'); try { await configureNativeAudio(config); } catch (error) { @@ -129,7 +132,8 @@ class AudioTrack extends Track { } } -Future defaultNativeAudioConfigurationFunc(AudioTrackState state) async { +Future defaultNativeAudioConfigurationFunc( + AudioTrackState state) async { // if (state == AudioTrackState.remoteOnly) { return NativeAudioConfiguration( diff --git a/lib/src/track/local_audio_track.dart b/lib/src/track/local_audio_track.dart index 75b80b0..ff8201f 100644 --- a/lib/src/track/local_audio_track.dart +++ b/lib/src/track/local_audio_track.dart @@ -14,9 +14,11 @@ class LocalAudioTrack extends AudioTrack { ) : super(name, track, stream); /// Creates a new audio track from the default audio input device. - static Future create([LocalAudioTrackOptions? options]) async { + static Future create( + [LocalAudioTrackOptions? options]) async { // TODO: have back up incase the options fail - final stream = await rtc.navigator.mediaDevices.getUserMedia({ + final stream = + await rtc.navigator.mediaDevices.getUserMedia({ // 'audio': { // 'echoCancellation': true, // 'noiseSuppression': true, diff --git a/lib/src/track/options.dart b/lib/src/track/options.dart index 7ed6ca8..f9ad55b 100644 --- a/lib/src/track/options.dart +++ b/lib/src/track/options.dart @@ -28,7 +28,8 @@ class CameraTrackOptions extends LocalVideoTrackOptions { @override Map toMediaConstraintsMap() => { ...super.toMediaConstraintsMap(), - 'facingMode': cameraPosition == CameraPosition.front ? 'user' : 'environment', + 'facingMode': + cameraPosition == CameraPosition.front ? 'user' : 'environment', }; // Returns new options with updated properties @@ -70,7 +71,8 @@ class VideoEncoding { }); @override - String toString() => '${runtimeType}(maxFramerate: ${maxFramerate}, maxBitrate: ${maxBitrate})'; + String toString() => + '${runtimeType}(maxFramerate: ${maxFramerate}, maxBitrate: ${maxBitrate})'; } extension VideoEncodingExt on VideoEncoding { diff --git a/lib/src/track/track.dart b/lib/src/track/track.dart index ceddb3e..0c0e3c6 100644 --- a/lib/src/track/track.dart +++ b/lib/src/track/track.dart @@ -33,7 +33,8 @@ abstract class Track extends DisposableChangeNotifier { this.mediaStreamTrack, ); - bool get muted => mediaStreamTrack.muted == null ? false : mediaStreamTrack.muted!; + bool get muted => + mediaStreamTrack.muted == null ? false : mediaStreamTrack.muted!; rtc.RTCRtpMediaType get mediaType { switch (kind) { diff --git a/lib/src/track/track_publication.dart b/lib/src/track/track_publication.dart index a476aad..a97326b 100644 --- a/lib/src/track/track_publication.dart +++ b/lib/src/track/track_publication.dart @@ -29,7 +29,8 @@ abstract class TrackPublication extends Disposable { } /// True when the track is published with name [Track.screenShareName]. - bool get isScreenShare => kind == lk_models.TrackType.VIDEO && name == Track.screenShareName; + bool get isScreenShare => + kind == lk_models.TrackType.VIDEO && name == Track.screenShareName; void updateFromInfo(lk_models.TrackInfo info) { muted = info.muted; @@ -45,5 +46,6 @@ abstract class TrackPublication extends Disposable { int get hashCode => sid.hashCode; @override - bool operator ==(Object other) => other is TrackPublication && sid == other.sid; + bool operator ==(Object other) => + other is TrackPublication && sid == other.sid; } diff --git a/lib/src/transport.dart b/lib/src/transport.dart index f21cad4..44301d1 100644 --- a/lib/src/transport.dart +++ b/lib/src/transport.dart @@ -111,7 +111,8 @@ class PCTransport extends Disposable { restartingIce = true; } - if (pc.signalingState == rtc.RTCSignalingState.RTCSignalingStateHaveLocalOffer) { + if (pc.signalingState == + rtc.RTCSignalingState.RTCSignalingStateHaveLocalOffer) { // we're waiting for the peer to accept our offer, so we'll just wait // the only exception to this is when ICE restart is needed final currentSD = await getRemoteDescription(); diff --git a/lib/src/types.dart b/lib/src/types.dart index ae0726d..0917e0b 100644 --- a/lib/src/types.dart +++ b/lib/src/types.dart @@ -72,8 +72,10 @@ class RTCConfiguration { // only supports unified plan 'sdpSemantics': 'unified-plan', if (iceServersMap.isNotEmpty) 'iceServers': iceServersMap, - if (iceCandidatePoolSize != null) 'iceCandidatePoolSize': iceCandidatePoolSize, - if (iceTransportPolicy != null) 'iceTransportPolicy': iceTransportPolicy!.toStringValue(), + if (iceCandidatePoolSize != null) + 'iceCandidatePoolSize': iceCandidatePoolSize, + if (iceTransportPolicy != null) + 'iceTransportPolicy': iceTransportPolicy!.toStringValue(), }; } diff --git a/lib/src/utils.dart b/lib/src/utils.dart index 989ea73..077b1d9 100644 --- a/lib/src/utils.dart +++ b/lib/src/utils.dart @@ -34,7 +34,8 @@ class Utils { path: validate ? 'validate' : 'rtc', queryParameters: { 'access_token': token, - if (options != null) 'auto_subscribe': options.autoSubscribe ? '1' : '0', + if (options != null) + 'auto_subscribe': options.autoSubscribe ? '1' : '0', if (reconnect) 'reconnect': '1', 'protocol': protocol.toStringValue(), 'sdk': 'flutter', @@ -77,7 +78,9 @@ class Utils { VideoEncoding? videoEncoding = options.videoEncoding; - if ((videoEncoding == null && !options.simulcast) || width == null || height == null) { + if ((videoEncoding == null && !options.simulcast) || + width == null || + height == null) { // don't set encoding when we are not simulcasting and user isn't restricting // encoding parameters return null; diff --git a/pubspec.lock b/pubspec.lock index ee3e5b4..70f22f1 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -95,6 +95,11 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_web_plugins: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" flutter_webrtc: dependency: "direct main" description: @@ -116,6 +121,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "4.0.0" + js: + dependency: transitive + description: + name: js + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.3" lints: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 710b00c..9128010 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -9,12 +9,15 @@ environment: flutter: ">=1.17.0" dependencies: + flutter_web_plugins: + sdk: flutter flutter: sdk: flutter async: ^2.8.1 collection: ^1.15.0 fixnum: ^1.0.0 meta: ^1.7.0 + http: ^0.13.3 logging: ^1.0.2 uuid: ^3.0.4 @@ -32,3 +35,9 @@ flutter: platforms: ios: pluginClass: LiveKitPlugin + android: + package: io.livekit.plugin + pluginClass: LiveKitPlugin + web: + pluginClass: LiveKitWebPlugin + fileName: livekit_client_web.dart