initial commit, with generated protobufs

This commit is contained in:
David Zhao
2021-07-16 15:29:06 -07:00
commit 941bbbdc32
19 changed files with 3042 additions and 0 deletions
+75
View File
@@ -0,0 +1,75 @@
# Miscellaneous
*.class
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
# IntelliJ related
*.iml
*.ipr
*.iws
.idea/
# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
#.vscode/
# Flutter/Dart/Pub related
**/doc/api/
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.packages
.pub-cache/
.pub/
build/
# Android related
**/android/**/gradle-wrapper.jar
**/android/.gradle
**/android/captures/
**/android/gradlew
**/android/gradlew.bat
**/android/local.properties
**/android/**/GeneratedPluginRegistrant.java
# iOS/XCode related
**/ios/**/*.mode1v3
**/ios/**/*.mode2v3
**/ios/**/*.moved-aside
**/ios/**/*.pbxuser
**/ios/**/*.perspectivev3
**/ios/**/*sync/
**/ios/**/.sconsign.dblite
**/ios/**/.tags*
**/ios/**/.vagrant/
**/ios/**/DerivedData/
**/ios/**/Icon?
**/ios/**/Pods/
**/ios/**/.symlinks/
**/ios/**/profile
**/ios/**/xcuserdata
**/ios/.generated/
**/ios/Flutter/App.framework
**/ios/Flutter/Flutter.framework
**/ios/Flutter/Flutter.podspec
**/ios/Flutter/Generated.xcconfig
**/ios/Flutter/ephemeral
**/ios/Flutter/app.flx
**/ios/Flutter/app.zip
**/ios/Flutter/flutter_assets/
**/ios/Flutter/flutter_export_environment.sh
**/ios/ServiceDefinitions.json
**/ios/Runner/GeneratedPluginRegistrant.*
# Exceptions to above rules.
!**/ios/**/default.mode1v3
!**/ios/**/default.mode2v3
!**/ios/**/default.pbxuser
!**/ios/**/default.perspectivev3
+10
View File
@@ -0,0 +1,10 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.
version:
revision: f4abaa0735eba4dfd8f33f73363911d63931fe03
channel: stable
project_type: package
+3
View File
@@ -0,0 +1,3 @@
## 0.0.1
* TODO: Describe initial release.
+1
View File
@@ -0,0 +1 @@
TODO: Add your license here.
+13
View File
@@ -0,0 +1,13 @@
PROTO_DIR="../protocol"
proto:
@{ \
if [ -d "$(PROTO_DIR)" ]; \
then \
protoc --dart_out=lib/src/proto -I$(PROTO_DIR) $(PROTO_DIR)/livekit_rtc.proto $(PROTO_DIR)/livekit_models.proto; \
else \
echo "../protocol is not found. github.com/livekit/protocol must be checked out"; \
fi \
}
.PHONY: proto
+14
View File
@@ -0,0 +1,14 @@
# livekit_client
A new Flutter package project.
## Getting Started
This project is a starting point for a Dart
[package](https://flutter.dev/developing-packages/),
a library module containing code that can be shared easily across
multiple Flutter or Dart projects.
For help getting started with Flutter, view our
[online documentation](https://flutter.dev/docs), which offers tutorials,
samples, guidance on mobile development, and a full API reference.
Executable
+10
View File
@@ -0,0 +1,10 @@
#!/bin/bash
if ! command -v protoc &> /dev/null
then
echo "protoc is required and not found. please install"
exit 1
fi
# activate protoc
pub global activate protoc_plugin
+7
View File
@@ -0,0 +1,7 @@
library livekit_client;
/// A Calculator.
class Calculator {
/// Returns [value] plus 1.
int addOne(int value) => value + 1;
}
+520
View File
@@ -0,0 +1,520 @@
///
// Generated code. Do not modify.
// source: livekit_models.proto
//
// @dart = 2.12
// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields
import 'dart:core' as $core;
import 'package:fixnum/fixnum.dart' as $fixnum;
import 'package:protobuf/protobuf.dart' as $pb;
import 'livekit_models.pbenum.dart';
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', package: const $pb.PackageName(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')
..a<$core.int>(3, 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', $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')
..pc<Codec>(7, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'enabledCodecs', $pb.PbFieldType.PM, subBuilder: Codec.create)
..hasRequiredFields = false
;
Room._() : super();
factory Room({
$core.String? sid,
$core.String? name,
$core.int? emptyTimeout,
$core.int? maxParticipants,
$fixnum.Int64? creationTime,
$core.String? turnPassword,
$core.Iterable<Codec>? enabledCodecs,
}) {
final _result = create();
if (sid != null) {
_result.sid = sid;
}
if (name != null) {
_result.name = name;
}
if (emptyTimeout != null) {
_result.emptyTimeout = emptyTimeout;
}
if (maxParticipants != null) {
_result.maxParticipants = maxParticipants;
}
if (creationTime != null) {
_result.creationTime = creationTime;
}
if (turnPassword != null) {
_result.turnPassword = turnPassword;
}
if (enabledCodecs != null) {
_result.enabledCodecs.addAll(enabledCodecs);
}
return _result;
}
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]) => create()..mergeFromJson(i, r);
@$core.Deprecated(
'Using this can add significant overhead to your binary. '
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
'Will be removed in next major version')
Room clone() => Room()..mergeFromMessage(this);
@$core.Deprecated(
'Using this can add significant overhead to your binary. '
'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
'Will be removed in next major version')
Room copyWith(void Function(Room) updates) => super.copyWith((message) => updates(message as Room)) as Room; // ignore: deprecated_member_use
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static Room create() => Room._();
Room createEmptyInstance() => create();
static $pb.PbList<Room> createRepeated() => $pb.PbList<Room>();
@$core.pragma('dart2js:noInline')
static Room getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Room>(create);
static Room? _defaultInstance;
@$pb.TagNumber(1)
$core.String get sid => $_getSZ(0);
@$pb.TagNumber(1)
set sid($core.String v) { $_setString(0, v); }
@$pb.TagNumber(1)
$core.bool hasSid() => $_has(0);
@$pb.TagNumber(1)
void clearSid() => clearField(1);
@$pb.TagNumber(2)
$core.String get name => $_getSZ(1);
@$pb.TagNumber(2)
set name($core.String v) { $_setString(1, v); }
@$pb.TagNumber(2)
$core.bool hasName() => $_has(1);
@$pb.TagNumber(2)
void clearName() => clearField(2);
@$pb.TagNumber(3)
$core.int get emptyTimeout => $_getIZ(2);
@$pb.TagNumber(3)
set emptyTimeout($core.int v) { $_setUnsignedInt32(2, v); }
@$pb.TagNumber(3)
$core.bool hasEmptyTimeout() => $_has(2);
@$pb.TagNumber(3)
void clearEmptyTimeout() => clearField(3);
@$pb.TagNumber(4)
$core.int get maxParticipants => $_getIZ(3);
@$pb.TagNumber(4)
set maxParticipants($core.int v) { $_setUnsignedInt32(3, v); }
@$pb.TagNumber(4)
$core.bool hasMaxParticipants() => $_has(3);
@$pb.TagNumber(4)
void clearMaxParticipants() => clearField(4);
@$pb.TagNumber(5)
$fixnum.Int64 get creationTime => $_getI64(4);
@$pb.TagNumber(5)
set creationTime($fixnum.Int64 v) { $_setInt64(4, v); }
@$pb.TagNumber(5)
$core.bool hasCreationTime() => $_has(4);
@$pb.TagNumber(5)
void clearCreationTime() => clearField(5);
@$pb.TagNumber(6)
$core.String get turnPassword => $_getSZ(5);
@$pb.TagNumber(6)
set turnPassword($core.String v) { $_setString(5, v); }
@$pb.TagNumber(6)
$core.bool hasTurnPassword() => $_has(5);
@$pb.TagNumber(6)
void clearTurnPassword() => clearField(6);
@$pb.TagNumber(7)
$core.List<Codec> get enabledCodecs => $_getList(6);
}
class Codec extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'Codec', package: const $pb.PackageName(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')
..hasRequiredFields = false
;
Codec._() : super();
factory Codec({
$core.String? mime,
$core.String? fmtpLine,
}) {
final _result = create();
if (mime != null) {
_result.mime = mime;
}
if (fmtpLine != null) {
_result.fmtpLine = fmtpLine;
}
return _result;
}
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]) => create()..mergeFromJson(i, r);
@$core.Deprecated(
'Using this can add significant overhead to your binary. '
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
'Will be removed in next major version')
Codec clone() => Codec()..mergeFromMessage(this);
@$core.Deprecated(
'Using this can add significant overhead to your binary. '
'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
'Will be removed in next major version')
Codec copyWith(void Function(Codec) updates) => super.copyWith((message) => updates(message as Codec)) as Codec; // ignore: deprecated_member_use
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static Codec create() => Codec._();
Codec createEmptyInstance() => create();
static $pb.PbList<Codec> createRepeated() => $pb.PbList<Codec>();
@$core.pragma('dart2js:noInline')
static Codec getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Codec>(create);
static Codec? _defaultInstance;
@$pb.TagNumber(1)
$core.String get mime => $_getSZ(0);
@$pb.TagNumber(1)
set mime($core.String v) { $_setString(0, v); }
@$pb.TagNumber(1)
$core.bool hasMime() => $_has(0);
@$pb.TagNumber(1)
void clearMime() => clearField(1);
@$pb.TagNumber(2)
$core.String get fmtpLine => $_getSZ(1);
@$pb.TagNumber(2)
set fmtpLine($core.String v) { $_setString(1, v); }
@$pb.TagNumber(2)
$core.bool hasFmtpLine() => $_has(1);
@$pb.TagNumber(2)
void clearFmtpLine() => clearField(2);
}
class ParticipantInfo extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'ParticipantInfo', package: const $pb.PackageName(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')
..e<ParticipantInfo_State>(3, 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<TrackInfo>(4, 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')
..hasRequiredFields = false
;
ParticipantInfo._() : super();
factory ParticipantInfo({
$core.String? sid,
$core.String? identity,
ParticipantInfo_State? state,
$core.Iterable<TrackInfo>? tracks,
$core.String? metadata,
$fixnum.Int64? joinedAt,
}) {
final _result = create();
if (sid != null) {
_result.sid = sid;
}
if (identity != null) {
_result.identity = identity;
}
if (state != null) {
_result.state = state;
}
if (tracks != null) {
_result.tracks.addAll(tracks);
}
if (metadata != null) {
_result.metadata = metadata;
}
if (joinedAt != null) {
_result.joinedAt = joinedAt;
}
return _result;
}
factory ParticipantInfo.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory ParticipantInfo.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. '
'Will be removed in next major version')
ParticipantInfo clone() => ParticipantInfo()..mergeFromMessage(this);
@$core.Deprecated(
'Using this can add significant overhead to your binary. '
'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
'Will be removed in next major version')
ParticipantInfo copyWith(void Function(ParticipantInfo) updates) => super.copyWith((message) => updates(message as ParticipantInfo)) as ParticipantInfo; // ignore: deprecated_member_use
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static ParticipantInfo create() => ParticipantInfo._();
ParticipantInfo createEmptyInstance() => create();
static $pb.PbList<ParticipantInfo> createRepeated() => $pb.PbList<ParticipantInfo>();
@$core.pragma('dart2js:noInline')
static ParticipantInfo getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ParticipantInfo>(create);
static ParticipantInfo? _defaultInstance;
@$pb.TagNumber(1)
$core.String get sid => $_getSZ(0);
@$pb.TagNumber(1)
set sid($core.String v) { $_setString(0, v); }
@$pb.TagNumber(1)
$core.bool hasSid() => $_has(0);
@$pb.TagNumber(1)
void clearSid() => clearField(1);
@$pb.TagNumber(2)
$core.String get identity => $_getSZ(1);
@$pb.TagNumber(2)
set identity($core.String v) { $_setString(1, v); }
@$pb.TagNumber(2)
$core.bool hasIdentity() => $_has(1);
@$pb.TagNumber(2)
void clearIdentity() => clearField(2);
@$pb.TagNumber(3)
ParticipantInfo_State get state => $_getN(2);
@$pb.TagNumber(3)
set state(ParticipantInfo_State v) { setField(3, v); }
@$pb.TagNumber(3)
$core.bool hasState() => $_has(2);
@$pb.TagNumber(3)
void clearState() => clearField(3);
@$pb.TagNumber(4)
$core.List<TrackInfo> get tracks => $_getList(3);
@$pb.TagNumber(5)
$core.String get metadata => $_getSZ(4);
@$pb.TagNumber(5)
set metadata($core.String v) { $_setString(4, v); }
@$pb.TagNumber(5)
$core.bool hasMetadata() => $_has(4);
@$pb.TagNumber(5)
void clearMetadata() => clearField(5);
@$pb.TagNumber(6)
$fixnum.Int64 get joinedAt => $_getI64(5);
@$pb.TagNumber(6)
set joinedAt($fixnum.Int64 v) { $_setInt64(5, v); }
@$pb.TagNumber(6)
$core.bool hasJoinedAt() => $_has(5);
@$pb.TagNumber(6)
void clearJoinedAt() => clearField(6);
}
class TrackInfo extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'TrackInfo', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), createEmptyInstance: create)
..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'sid')
..e<TrackType>(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', $pb.PbFieldType.OU3)
..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')
..hasRequiredFields = false
;
TrackInfo._() : super();
factory TrackInfo({
$core.String? sid,
TrackType? type,
$core.String? name,
$core.bool? muted,
$core.int? width,
$core.int? height,
$core.bool? simulcast,
}) {
final _result = create();
if (sid != null) {
_result.sid = sid;
}
if (type != null) {
_result.type = type;
}
if (name != null) {
_result.name = name;
}
if (muted != null) {
_result.muted = muted;
}
if (width != null) {
_result.width = width;
}
if (height != null) {
_result.height = height;
}
if (simulcast != null) {
_result.simulcast = simulcast;
}
return _result;
}
factory TrackInfo.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory TrackInfo.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. '
'Will be removed in next major version')
TrackInfo clone() => TrackInfo()..mergeFromMessage(this);
@$core.Deprecated(
'Using this can add significant overhead to your binary. '
'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
'Will be removed in next major version')
TrackInfo copyWith(void Function(TrackInfo) updates) => super.copyWith((message) => updates(message as TrackInfo)) as TrackInfo; // ignore: deprecated_member_use
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static TrackInfo create() => TrackInfo._();
TrackInfo createEmptyInstance() => create();
static $pb.PbList<TrackInfo> createRepeated() => $pb.PbList<TrackInfo>();
@$core.pragma('dart2js:noInline')
static TrackInfo getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<TrackInfo>(create);
static TrackInfo? _defaultInstance;
@$pb.TagNumber(1)
$core.String get sid => $_getSZ(0);
@$pb.TagNumber(1)
set sid($core.String v) { $_setString(0, v); }
@$pb.TagNumber(1)
$core.bool hasSid() => $_has(0);
@$pb.TagNumber(1)
void clearSid() => clearField(1);
@$pb.TagNumber(2)
TrackType get type => $_getN(1);
@$pb.TagNumber(2)
set type(TrackType v) { setField(2, v); }
@$pb.TagNumber(2)
$core.bool hasType() => $_has(1);
@$pb.TagNumber(2)
void clearType() => clearField(2);
@$pb.TagNumber(3)
$core.String get name => $_getSZ(2);
@$pb.TagNumber(3)
set name($core.String v) { $_setString(2, v); }
@$pb.TagNumber(3)
$core.bool hasName() => $_has(2);
@$pb.TagNumber(3)
void clearName() => clearField(3);
@$pb.TagNumber(4)
$core.bool get muted => $_getBF(3);
@$pb.TagNumber(4)
set muted($core.bool v) { $_setBool(3, v); }
@$pb.TagNumber(4)
$core.bool hasMuted() => $_has(3);
@$pb.TagNumber(4)
void clearMuted() => clearField(4);
@$pb.TagNumber(5)
$core.int get width => $_getIZ(4);
@$pb.TagNumber(5)
set width($core.int v) { $_setUnsignedInt32(4, v); }
@$pb.TagNumber(5)
$core.bool hasWidth() => $_has(4);
@$pb.TagNumber(5)
void clearWidth() => clearField(5);
@$pb.TagNumber(6)
$core.int get height => $_getIZ(5);
@$pb.TagNumber(6)
set height($core.int v) { $_setUnsignedInt32(5, v); }
@$pb.TagNumber(6)
$core.bool hasHeight() => $_has(5);
@$pb.TagNumber(6)
void clearHeight() => clearField(6);
@$pb.TagNumber(7)
$core.bool get simulcast => $_getBF(6);
@$pb.TagNumber(7)
set simulcast($core.bool v) { $_setBool(6, v); }
@$pb.TagNumber(7)
$core.bool hasSimulcast() => $_has(6);
@$pb.TagNumber(7)
void clearSimulcast() => clearField(7);
}
enum DataMessage_Value {
text,
binary,
notSet
}
class DataMessage extends $pb.GeneratedMessage {
static const $core.Map<$core.int, DataMessage_Value> _DataMessage_ValueByTag = {
1 : DataMessage_Value.text,
2 : DataMessage_Value.binary,
0 : DataMessage_Value.notSet
};
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'DataMessage', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'livekit'), createEmptyInstance: create)
..oo(0, [1, 2])
..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'text')
..a<$core.List<$core.int>>(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'binary', $pb.PbFieldType.OY)
..hasRequiredFields = false
;
DataMessage._() : super();
factory DataMessage({
$core.String? text,
$core.List<$core.int>? binary,
}) {
final _result = create();
if (text != null) {
_result.text = text;
}
if (binary != null) {
_result.binary = binary;
}
return _result;
}
factory DataMessage.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory DataMessage.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. '
'Will be removed in next major version')
DataMessage clone() => DataMessage()..mergeFromMessage(this);
@$core.Deprecated(
'Using this can add significant overhead to your binary. '
'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
'Will be removed in next major version')
DataMessage copyWith(void Function(DataMessage) updates) => super.copyWith((message) => updates(message as DataMessage)) as DataMessage; // ignore: deprecated_member_use
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static DataMessage create() => DataMessage._();
DataMessage createEmptyInstance() => create();
static $pb.PbList<DataMessage> createRepeated() => $pb.PbList<DataMessage>();
@$core.pragma('dart2js:noInline')
static DataMessage getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<DataMessage>(create);
static DataMessage? _defaultInstance;
DataMessage_Value whichValue() => _DataMessage_ValueByTag[$_whichOneof(0)]!;
void clearValue() => clearField($_whichOneof(0));
@$pb.TagNumber(1)
$core.String get text => $_getSZ(0);
@$pb.TagNumber(1)
set text($core.String v) { $_setString(0, v); }
@$pb.TagNumber(1)
$core.bool hasText() => $_has(0);
@$pb.TagNumber(1)
void clearText() => clearField(1);
@$pb.TagNumber(2)
$core.List<$core.int> get binary => $_getN(1);
@$pb.TagNumber(2)
set binary($core.List<$core.int> v) { $_setBytes(1, v); }
@$pb.TagNumber(2)
$core.bool hasBinary() => $_has(1);
@$pb.TagNumber(2)
void clearBinary() => clearField(2);
}
+47
View File
@@ -0,0 +1,47 @@
///
// Generated code. Do not modify.
// source: livekit_models.proto
//
// @dart = 2.12
// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields
// ignore_for_file: UNDEFINED_SHOWN_NAME
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 $core.List<TrackType> values = <TrackType> [
AUDIO,
VIDEO,
DATA,
];
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);
}
class ParticipantInfo_State extends $pb.ProtobufEnum {
static const ParticipantInfo_State JOINING = ParticipantInfo_State._(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');
static const ParticipantInfo_State ACTIVE = ParticipantInfo_State._(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');
static const $core.List<ParticipantInfo_State> values = <ParticipantInfo_State> [
JOINING,
JOINED,
ACTIVE,
DISCONNECTED,
];
static final $core.Map<$core.int, ParticipantInfo_State> _byValue = $pb.ProtobufEnum.initByValue(values);
static ParticipantInfo_State? valueOf($core.int value) => _byValue[value];
const ParticipantInfo_State._($core.int v, $core.String n) : super(v, n);
}
+106
View File
@@ -0,0 +1,106 @@
///
// Generated code. Do not modify.
// source: livekit_models.proto
//
// @dart = 2.12
// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields,deprecated_member_use_from_same_package
import 'dart:core' as $core;
import 'dart:convert' as $convert;
import 'dart:typed_data' as $typed_data;
@$core.Deprecated('Use trackTypeDescriptor instead')
const TrackType$json = const {
'1': 'TrackType',
'2': const [
const {'1': 'AUDIO', '2': 0},
const {'1': 'VIDEO', '2': 1},
const {'1': 'DATA', '2': 2},
],
};
/// Descriptor for `TrackType`. Decode as a `google.protobuf.EnumDescriptorProto`.
final $typed_data.Uint8List trackTypeDescriptor = $convert.base64Decode('CglUcmFja1R5cGUSCQoFQVVESU8QABIJCgVWSURFTxABEggKBERBVEEQAg==');
@$core.Deprecated('Use roomDescriptor instead')
const Room$json = const {
'1': 'Room',
'2': 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': 'creation_time', '3': 5, '4': 1, '5': 3, '10': 'creationTime'},
const {'1': 'turn_password', '3': 6, '4': 1, '5': 9, '10': 'turnPassword'},
const {'1': 'enabled_codecs', '3': 7, '4': 3, '5': 11, '6': '.livekit.Codec', '10': 'enabledCodecs'},
],
};
/// Descriptor for `Room`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List roomDescriptor = $convert.base64Decode('CgRSb29tEhAKA3NpZBgBIAEoCVIDc2lkEhIKBG5hbWUYAiABKAlSBG5hbWUSIwoNZW1wdHlfdGltZW91dBgDIAEoDVIMZW1wdHlUaW1lb3V0EikKEG1heF9wYXJ0aWNpcGFudHMYBCABKA1SD21heFBhcnRpY2lwYW50cxIjCg1jcmVhdGlvbl90aW1lGAUgASgDUgxjcmVhdGlvblRpbWUSIwoNdHVybl9wYXNzd29yZBgGIAEoCVIMdHVyblBhc3N3b3JkEjUKDmVuYWJsZWRfY29kZWNzGAcgAygLMg4ubGl2ZWtpdC5Db2RlY1INZW5hYmxlZENvZGVjcw==');
@$core.Deprecated('Use codecDescriptor instead')
const Codec$json = const {
'1': 'Codec',
'2': const [
const {'1': 'mime', '3': 1, '4': 1, '5': 9, '10': 'mime'},
const {'1': 'fmtp_line', '3': 2, '4': 1, '5': 9, '10': 'fmtpLine'},
],
};
/// Descriptor for `Codec`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List codecDescriptor = $convert.base64Decode('CgVDb2RlYxISCgRtaW1lGAEgASgJUgRtaW1lEhsKCWZtdHBfbGluZRgCIAEoCVIIZm10cExpbmU=');
@$core.Deprecated('Use participantInfoDescriptor instead')
const ParticipantInfo$json = const {
'1': 'ParticipantInfo',
'2': const [
const {'1': 'sid', '3': 1, '4': 1, '5': 9, '10': 'sid'},
const {'1': 'identity', '3': 2, '4': 1, '5': 9, '10': 'identity'},
const {'1': 'state', '3': 3, '4': 1, '5': 14, '6': '.livekit.ParticipantInfo.State', '10': 'state'},
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'},
],
'4': const [ParticipantInfo_State$json],
};
@$core.Deprecated('Use participantInfoDescriptor instead')
const ParticipantInfo_State$json = const {
'1': 'State',
'2': const [
const {'1': 'JOINING', '2': 0},
const {'1': 'JOINED', '2': 1},
const {'1': 'ACTIVE', '2': 2},
const {'1': 'DISCONNECTED', '2': 3},
],
};
/// Descriptor for `ParticipantInfo`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List participantInfoDescriptor = $convert.base64Decode('Cg9QYXJ0aWNpcGFudEluZm8SEAoDc2lkGAEgASgJUgNzaWQSGgoIaWRlbnRpdHkYAiABKAlSCGlkZW50aXR5EjQKBXN0YXRlGAMgASgOMh4ubGl2ZWtpdC5QYXJ0aWNpcGFudEluZm8uU3RhdGVSBXN0YXRlEioKBnRyYWNrcxgEIAMoCzISLmxpdmVraXQuVHJhY2tJbmZvUgZ0cmFja3MSGgoIbWV0YWRhdGEYBSABKAlSCG1ldGFkYXRhEhsKCWpvaW5lZF9hdBgGIAEoA1IIam9pbmVkQXQiPgoFU3RhdGUSCwoHSk9JTklORxAAEgoKBkpPSU5FRBABEgoKBkFDVElWRRACEhAKDERJU0NPTk5FQ1RFRBAD');
@$core.Deprecated('Use trackInfoDescriptor instead')
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': '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'},
const {'1': 'height', '3': 6, '4': 1, '5': 13, '10': 'height'},
const {'1': 'simulcast', '3': 7, '4': 1, '5': 8, '10': 'simulcast'},
],
};
/// Descriptor for `TrackInfo`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List trackInfoDescriptor = $convert.base64Decode('CglUcmFja0luZm8SEAoDc2lkGAEgASgJUgNzaWQSJgoEdHlwZRgCIAEoDjISLmxpdmVraXQuVHJhY2tUeXBlUgR0eXBlEhIKBG5hbWUYAyABKAlSBG5hbWUSFAoFbXV0ZWQYBCABKAhSBW11dGVkEhQKBXdpZHRoGAUgASgNUgV3aWR0aBIWCgZoZWlnaHQYBiABKA1SBmhlaWdodBIcCglzaW11bGNhc3QYByABKAhSCXNpbXVsY2FzdA==');
@$core.Deprecated('Use dataMessageDescriptor instead')
const DataMessage$json = const {
'1': 'DataMessage',
'2': const [
const {'1': 'text', '3': 1, '4': 1, '5': 9, '9': 0, '10': 'text'},
const {'1': 'binary', '3': 2, '4': 1, '5': 12, '9': 0, '10': 'binary'},
],
'8': const [
const {'1': 'value'},
],
};
/// Descriptor for `DataMessage`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List dataMessageDescriptor = $convert.base64Decode('CgtEYXRhTWVzc2FnZRIUCgR0ZXh0GAEgASgJSABSBHRleHQSGAoGYmluYXJ5GAIgASgMSABSBmJpbmFyeUIHCgV2YWx1ZQ==');
@@ -0,0 +1,9 @@
///
// Generated code. Do not modify.
// source: livekit_models.proto
//
// @dart = 2.12
// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields,deprecated_member_use_from_same_package
export 'livekit_models.pb.dart';
File diff suppressed because it is too large Load Diff
+58
View File
@@ -0,0 +1,58 @@
///
// Generated code. Do not modify.
// source: livekit_rtc.proto
//
// @dart = 2.12
// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields
// ignore_for_file: UNDEFINED_SHOWN_NAME
import 'dart:core' as $core;
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');
static const SignalTarget SUBSCRIBER = SignalTarget._(1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'SUBSCRIBER');
static const $core.List<SignalTarget> values = <SignalTarget> [
PUBLISHER,
SUBSCRIBER,
];
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 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');
static const $core.List<VideoQuality> values = <VideoQuality> [
LOW,
MEDIUM,
HIGH,
];
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);
}
class DataPacket_Kind extends $pb.ProtobufEnum {
static const DataPacket_Kind RELIABLE = DataPacket_Kind._(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');
static const $core.List<DataPacket_Kind> values = <DataPacket_Kind> [
RELIABLE,
LOSSY,
];
static final $core.Map<$core.int, DataPacket_Kind> _byValue = $pb.ProtobufEnum.initByValue(values);
static DataPacket_Kind? valueOf($core.int value) => _byValue[value];
const DataPacket_Kind._($core.int v, $core.String n) : super(v, n);
}
+271
View File
@@ -0,0 +1,271 @@
///
// Generated code. Do not modify.
// source: livekit_rtc.proto
//
// @dart = 2.12
// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields,deprecated_member_use_from_same_package
import 'dart:core' as $core;
import 'dart:convert' as $convert;
import 'dart:typed_data' as $typed_data;
@$core.Deprecated('Use signalTargetDescriptor instead')
const SignalTarget$json = const {
'1': 'SignalTarget',
'2': const [
const {'1': 'PUBLISHER', '2': 0},
const {'1': 'SUBSCRIBER', '2': 1},
],
};
/// Descriptor for `SignalTarget`. Decode as a `google.protobuf.EnumDescriptorProto`.
final $typed_data.Uint8List signalTargetDescriptor = $convert.base64Decode('CgxTaWduYWxUYXJnZXQSDQoJUFVCTElTSEVSEAASDgoKU1VCU0NSSUJFUhAB');
@$core.Deprecated('Use videoQualityDescriptor instead')
const VideoQuality$json = const {
'1': 'VideoQuality',
'2': const [
const {'1': 'LOW', '2': 0},
const {'1': 'MEDIUM', '2': 1},
const {'1': 'HIGH', '2': 2},
],
};
/// Descriptor for `VideoQuality`. Decode as a `google.protobuf.EnumDescriptorProto`.
final $typed_data.Uint8List videoQualityDescriptor = $convert.base64Decode('CgxWaWRlb1F1YWxpdHkSBwoDTE9XEAASCgoGTUVESVVNEAESCAoESElHSBAC');
@$core.Deprecated('Use signalRequestDescriptor instead')
const SignalRequest$json = const {
'1': 'SignalRequest',
'2': const [
const {'1': 'offer', '3': 1, '4': 1, '5': 11, '6': '.livekit.SessionDescription', '9': 0, '10': 'offer'},
const {'1': 'answer', '3': 2, '4': 1, '5': 11, '6': '.livekit.SessionDescription', '9': 0, '10': 'answer'},
const {'1': 'trickle', '3': 3, '4': 1, '5': 11, '6': '.livekit.TrickleRequest', '9': 0, '10': 'trickle'},
const {'1': 'add_track', '3': 4, '4': 1, '5': 11, '6': '.livekit.AddTrackRequest', '9': 0, '10': 'addTrack'},
const {'1': 'mute', '3': 5, '4': 1, '5': 11, '6': '.livekit.MuteTrackRequest', '9': 0, '10': 'mute'},
const {'1': 'subscription', '3': 6, '4': 1, '5': 11, '6': '.livekit.UpdateSubscription', '9': 0, '10': 'subscription'},
const {'1': 'track_setting', '3': 7, '4': 1, '5': 11, '6': '.livekit.UpdateTrackSettings', '9': 0, '10': 'trackSetting'},
const {'1': 'leave', '3': 8, '4': 1, '5': 11, '6': '.livekit.LeaveRequest', '9': 0, '10': 'leave'},
const {'1': 'simulcast', '3': 9, '4': 1, '5': 11, '6': '.livekit.SetSimulcastLayers', '9': 0, '10': 'simulcast'},
],
'8': const [
const {'1': 'message'},
],
};
/// Descriptor for `SignalRequest`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List signalRequestDescriptor = $convert.base64Decode('Cg1TaWduYWxSZXF1ZXN0EjMKBW9mZmVyGAEgASgLMhsubGl2ZWtpdC5TZXNzaW9uRGVzY3JpcHRpb25IAFIFb2ZmZXISNQoGYW5zd2VyGAIgASgLMhsubGl2ZWtpdC5TZXNzaW9uRGVzY3JpcHRpb25IAFIGYW5zd2VyEjMKB3RyaWNrbGUYAyABKAsyFy5saXZla2l0LlRyaWNrbGVSZXF1ZXN0SABSB3RyaWNrbGUSNwoJYWRkX3RyYWNrGAQgASgLMhgubGl2ZWtpdC5BZGRUcmFja1JlcXVlc3RIAFIIYWRkVHJhY2sSLwoEbXV0ZRgFIAEoCzIZLmxpdmVraXQuTXV0ZVRyYWNrUmVxdWVzdEgAUgRtdXRlEkEKDHN1YnNjcmlwdGlvbhgGIAEoCzIbLmxpdmVraXQuVXBkYXRlU3Vic2NyaXB0aW9uSABSDHN1YnNjcmlwdGlvbhJDCg10cmFja19zZXR0aW5nGAcgASgLMhwubGl2ZWtpdC5VcGRhdGVUcmFja1NldHRpbmdzSABSDHRyYWNrU2V0dGluZxItCgVsZWF2ZRgIIAEoCzIVLmxpdmVraXQuTGVhdmVSZXF1ZXN0SABSBWxlYXZlEjsKCXNpbXVsY2FzdBgJIAEoCzIbLmxpdmVraXQuU2V0U2ltdWxjYXN0TGF5ZXJzSABSCXNpbXVsY2FzdEIJCgdtZXNzYWdl');
@$core.Deprecated('Use signalResponseDescriptor instead')
const SignalResponse$json = const {
'1': 'SignalResponse',
'2': const [
const {'1': 'join', '3': 1, '4': 1, '5': 11, '6': '.livekit.JoinResponse', '9': 0, '10': 'join'},
const {'1': 'answer', '3': 2, '4': 1, '5': 11, '6': '.livekit.SessionDescription', '9': 0, '10': 'answer'},
const {'1': 'offer', '3': 3, '4': 1, '5': 11, '6': '.livekit.SessionDescription', '9': 0, '10': 'offer'},
const {'1': 'trickle', '3': 4, '4': 1, '5': 11, '6': '.livekit.TrickleRequest', '9': 0, '10': 'trickle'},
const {'1': 'update', '3': 5, '4': 1, '5': 11, '6': '.livekit.ParticipantUpdate', '9': 0, '10': 'update'},
const {'1': 'track_published', '3': 6, '4': 1, '5': 11, '6': '.livekit.TrackPublishedResponse', '9': 0, '10': 'trackPublished'},
const {'1': 'speaker', '3': 7, '4': 1, '5': 11, '6': '.livekit.ActiveSpeakerUpdate', '9': 0, '10': 'speaker'},
const {'1': 'leave', '3': 8, '4': 1, '5': 11, '6': '.livekit.LeaveRequest', '9': 0, '10': 'leave'},
],
'8': const [
const {'1': 'message'},
],
};
/// Descriptor for `SignalResponse`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List signalResponseDescriptor = $convert.base64Decode('Cg5TaWduYWxSZXNwb25zZRIrCgRqb2luGAEgASgLMhUubGl2ZWtpdC5Kb2luUmVzcG9uc2VIAFIEam9pbhI1CgZhbnN3ZXIYAiABKAsyGy5saXZla2l0LlNlc3Npb25EZXNjcmlwdGlvbkgAUgZhbnN3ZXISMwoFb2ZmZXIYAyABKAsyGy5saXZla2l0LlNlc3Npb25EZXNjcmlwdGlvbkgAUgVvZmZlchIzCgd0cmlja2xlGAQgASgLMhcubGl2ZWtpdC5Ucmlja2xlUmVxdWVzdEgAUgd0cmlja2xlEjQKBnVwZGF0ZRgFIAEoCzIaLmxpdmVraXQuUGFydGljaXBhbnRVcGRhdGVIAFIGdXBkYXRlEkoKD3RyYWNrX3B1Ymxpc2hlZBgGIAEoCzIfLmxpdmVraXQuVHJhY2tQdWJsaXNoZWRSZXNwb25zZUgAUg50cmFja1B1Ymxpc2hlZBI4CgdzcGVha2VyGAcgASgLMhwubGl2ZWtpdC5BY3RpdmVTcGVha2VyVXBkYXRlSABSB3NwZWFrZXISLQoFbGVhdmUYCCABKAsyFS5saXZla2l0LkxlYXZlUmVxdWVzdEgAUgVsZWF2ZUIJCgdtZXNzYWdl');
@$core.Deprecated('Use addTrackRequestDescriptor instead')
const AddTrackRequest$json = const {
'1': 'AddTrackRequest',
'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': 'width', '3': 4, '4': 1, '5': 13, '10': 'width'},
const {'1': 'height', '3': 5, '4': 1, '5': 13, '10': 'height'},
],
};
/// Descriptor for `AddTrackRequest`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List addTrackRequestDescriptor = $convert.base64Decode('Cg9BZGRUcmFja1JlcXVlc3QSEAoDY2lkGAEgASgJUgNjaWQSEgoEbmFtZRgCIAEoCVIEbmFtZRImCgR0eXBlGAMgASgOMhIubGl2ZWtpdC5UcmFja1R5cGVSBHR5cGUSFAoFd2lkdGgYBCABKA1SBXdpZHRoEhYKBmhlaWdodBgFIAEoDVIGaGVpZ2h0');
@$core.Deprecated('Use trickleRequestDescriptor instead')
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'},
],
};
/// Descriptor for `TrickleRequest`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List trickleRequestDescriptor = $convert.base64Decode('Cg5Ucmlja2xlUmVxdWVzdBIkCg1jYW5kaWRhdGVJbml0GAEgASgJUg1jYW5kaWRhdGVJbml0Ei0KBnRhcmdldBgCIAEoDjIVLmxpdmVraXQuU2lnbmFsVGFyZ2V0UgZ0YXJnZXQ=');
@$core.Deprecated('Use muteTrackRequestDescriptor instead')
const MuteTrackRequest$json = const {
'1': 'MuteTrackRequest',
'2': const [
const {'1': 'sid', '3': 1, '4': 1, '5': 9, '10': 'sid'},
const {'1': 'muted', '3': 2, '4': 1, '5': 8, '10': 'muted'},
],
};
/// Descriptor for `MuteTrackRequest`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List muteTrackRequestDescriptor = $convert.base64Decode('ChBNdXRlVHJhY2tSZXF1ZXN0EhAKA3NpZBgBIAEoCVIDc2lkEhQKBW11dGVkGAIgASgIUgVtdXRlZA==');
@$core.Deprecated('Use setSimulcastLayersDescriptor instead')
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'},
],
};
/// Descriptor for `SetSimulcastLayers`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List setSimulcastLayersDescriptor = $convert.base64Decode('ChJTZXRTaW11bGNhc3RMYXllcnMSGwoJdHJhY2tfc2lkGAEgASgJUgh0cmFja1NpZBItCgZsYXllcnMYAiADKA4yFS5saXZla2l0LlZpZGVvUXVhbGl0eVIGbGF5ZXJz');
@$core.Deprecated('Use joinResponseDescriptor instead')
const JoinResponse$json = const {
'1': 'JoinResponse',
'2': const [
const {'1': 'room', '3': 1, '4': 1, '5': 11, '6': '.livekit.Room', '10': 'room'},
const {'1': 'participant', '3': 2, '4': 1, '5': 11, '6': '.livekit.ParticipantInfo', '10': 'participant'},
const {'1': 'other_participants', '3': 3, '4': 3, '5': 11, '6': '.livekit.ParticipantInfo', '10': 'otherParticipants'},
const {'1': 'server_version', '3': 4, '4': 1, '5': 9, '10': 'serverVersion'},
const {'1': 'ice_servers', '3': 5, '4': 3, '5': 11, '6': '.livekit.ICEServer', '10': 'iceServers'},
],
};
/// Descriptor for `JoinResponse`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List joinResponseDescriptor = $convert.base64Decode('CgxKb2luUmVzcG9uc2USIQoEcm9vbRgBIAEoCzINLmxpdmVraXQuUm9vbVIEcm9vbRI6CgtwYXJ0aWNpcGFudBgCIAEoCzIYLmxpdmVraXQuUGFydGljaXBhbnRJbmZvUgtwYXJ0aWNpcGFudBJHChJvdGhlcl9wYXJ0aWNpcGFudHMYAyADKAsyGC5saXZla2l0LlBhcnRpY2lwYW50SW5mb1IRb3RoZXJQYXJ0aWNpcGFudHMSJQoOc2VydmVyX3ZlcnNpb24YBCABKAlSDXNlcnZlclZlcnNpb24SMwoLaWNlX3NlcnZlcnMYBSADKAsyEi5saXZla2l0LklDRVNlcnZlclIKaWNlU2VydmVycw==');
@$core.Deprecated('Use trackPublishedResponseDescriptor instead')
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'},
],
};
/// Descriptor for `TrackPublishedResponse`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List trackPublishedResponseDescriptor = $convert.base64Decode('ChZUcmFja1B1Ymxpc2hlZFJlc3BvbnNlEhAKA2NpZBgBIAEoCVIDY2lkEigKBXRyYWNrGAIgASgLMhIubGl2ZWtpdC5UcmFja0luZm9SBXRyYWNr');
@$core.Deprecated('Use sessionDescriptionDescriptor instead')
const SessionDescription$json = const {
'1': 'SessionDescription',
'2': const [
const {'1': 'type', '3': 1, '4': 1, '5': 9, '10': 'type'},
const {'1': 'sdp', '3': 2, '4': 1, '5': 9, '10': 'sdp'},
],
};
/// Descriptor for `SessionDescription`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List sessionDescriptionDescriptor = $convert.base64Decode('ChJTZXNzaW9uRGVzY3JpcHRpb24SEgoEdHlwZRgBIAEoCVIEdHlwZRIQCgNzZHAYAiABKAlSA3NkcA==');
@$core.Deprecated('Use participantUpdateDescriptor instead')
const ParticipantUpdate$json = const {
'1': 'ParticipantUpdate',
'2': const [
const {'1': 'participants', '3': 1, '4': 3, '5': 11, '6': '.livekit.ParticipantInfo', '10': 'participants'},
],
};
/// Descriptor for `ParticipantUpdate`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List participantUpdateDescriptor = $convert.base64Decode('ChFQYXJ0aWNpcGFudFVwZGF0ZRI8CgxwYXJ0aWNpcGFudHMYASADKAsyGC5saXZla2l0LlBhcnRpY2lwYW50SW5mb1IMcGFydGljaXBhbnRz');
@$core.Deprecated('Use activeSpeakerUpdateDescriptor instead')
const ActiveSpeakerUpdate$json = const {
'1': 'ActiveSpeakerUpdate',
'2': const [
const {'1': 'speakers', '3': 1, '4': 3, '5': 11, '6': '.livekit.SpeakerInfo', '10': 'speakers'},
],
};
/// Descriptor for `ActiveSpeakerUpdate`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List activeSpeakerUpdateDescriptor = $convert.base64Decode('ChNBY3RpdmVTcGVha2VyVXBkYXRlEjAKCHNwZWFrZXJzGAEgAygLMhQubGl2ZWtpdC5TcGVha2VySW5mb1IIc3BlYWtlcnM=');
@$core.Deprecated('Use speakerInfoDescriptor instead')
const SpeakerInfo$json = const {
'1': 'SpeakerInfo',
'2': const [
const {'1': 'sid', '3': 1, '4': 1, '5': 9, '10': 'sid'},
const {'1': 'level', '3': 2, '4': 1, '5': 2, '10': 'level'},
const {'1': 'active', '3': 3, '4': 1, '5': 8, '10': 'active'},
],
};
/// Descriptor for `SpeakerInfo`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List speakerInfoDescriptor = $convert.base64Decode('CgtTcGVha2VySW5mbxIQCgNzaWQYASABKAlSA3NpZBIUCgVsZXZlbBgCIAEoAlIFbGV2ZWwSFgoGYWN0aXZlGAMgASgIUgZhY3RpdmU=');
@$core.Deprecated('Use updateSubscriptionDescriptor instead')
const UpdateSubscription$json = const {
'1': 'UpdateSubscription',
'2': const [
const {'1': 'track_sids', '3': 1, '4': 3, '5': 9, '10': 'trackSids'},
const {'1': 'subscribe', '3': 2, '4': 1, '5': 8, '10': 'subscribe'},
],
};
/// Descriptor for `UpdateSubscription`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List updateSubscriptionDescriptor = $convert.base64Decode('ChJVcGRhdGVTdWJzY3JpcHRpb24SHQoKdHJhY2tfc2lkcxgBIAMoCVIJdHJhY2tTaWRzEhwKCXN1YnNjcmliZRgCIAEoCFIJc3Vic2NyaWJl');
@$core.Deprecated('Use updateTrackSettingsDescriptor instead')
const UpdateTrackSettings$json = const {
'1': 'UpdateTrackSettings',
'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'},
],
};
/// Descriptor for `UpdateTrackSettings`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List updateTrackSettingsDescriptor = $convert.base64Decode('ChNVcGRhdGVUcmFja1NldHRpbmdzEh0KCnRyYWNrX3NpZHMYASADKAlSCXRyYWNrU2lkcxIaCghkaXNhYmxlZBgDIAEoCFIIZGlzYWJsZWQSLwoHcXVhbGl0eRgEIAEoDjIVLmxpdmVraXQuVmlkZW9RdWFsaXR5UgdxdWFsaXR5');
@$core.Deprecated('Use leaveRequestDescriptor instead')
const LeaveRequest$json = const {
'1': 'LeaveRequest',
'2': const [
const {'1': 'can_reconnect', '3': 1, '4': 1, '5': 8, '10': 'canReconnect'},
],
};
/// Descriptor for `LeaveRequest`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List leaveRequestDescriptor = $convert.base64Decode('CgxMZWF2ZVJlcXVlc3QSIwoNY2FuX3JlY29ubmVjdBgBIAEoCFIMY2FuUmVjb25uZWN0');
@$core.Deprecated('Use iCEServerDescriptor instead')
const ICEServer$json = const {
'1': 'ICEServer',
'2': const [
const {'1': 'urls', '3': 1, '4': 3, '5': 9, '10': 'urls'},
const {'1': 'username', '3': 2, '4': 1, '5': 9, '10': 'username'},
const {'1': 'credential', '3': 3, '4': 1, '5': 9, '10': 'credential'},
],
};
/// Descriptor for `ICEServer`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List iCEServerDescriptor = $convert.base64Decode('CglJQ0VTZXJ2ZXISEgoEdXJscxgBIAMoCVIEdXJscxIaCgh1c2VybmFtZRgCIAEoCVIIdXNlcm5hbWUSHgoKY3JlZGVudGlhbBgDIAEoCVIKY3JlZGVudGlhbA==');
@$core.Deprecated('Use dataPacketDescriptor instead')
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': 'speaker', '3': 3, '4': 1, '5': 11, '6': '.livekit.ActiveSpeakerUpdate', '9': 0, '10': 'speaker'},
],
'4': const [DataPacket_Kind$json],
'8': const [
const {'1': 'value'},
],
};
@$core.Deprecated('Use dataPacketDescriptor instead')
const DataPacket_Kind$json = const {
'1': 'Kind',
'2': const [
const {'1': 'RELIABLE', '2': 0},
const {'1': 'LOSSY', '2': 1},
],
};
/// Descriptor for `DataPacket`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List dataPacketDescriptor = $convert.base64Decode('CgpEYXRhUGFja2V0EiwKBGtpbmQYASABKA4yGC5saXZla2l0LkRhdGFQYWNrZXQuS2luZFIEa2luZBIpCgR1c2VyGAIgASgLMhMubGl2ZWtpdC5Vc2VyUGFja2V0SABSBHVzZXISOAoHc3BlYWtlchgDIAEoCzIcLmxpdmVraXQuQWN0aXZlU3BlYWtlclVwZGF0ZUgAUgdzcGVha2VyIh8KBEtpbmQSDAoIUkVMSUFCTEUQABIJCgVMT1NTWRABQgcKBXZhbHVl');
@$core.Deprecated('Use userPacketDescriptor instead')
const UserPacket$json = const {
'1': 'UserPacket',
'2': const [
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'},
],
};
/// Descriptor for `UserPacket`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List userPacketDescriptor = $convert.base64Decode('CgpVc2VyUGFja2V0EicKD3BhcnRpY2lwYW50X3NpZBgBIAEoCVIOcGFydGljaXBhbnRTaWQSGAoHcGF5bG9hZBgCIAEoDFIHcGF5bG9hZBIpChBkZXN0aW5hdGlvbl9zaWRzGAMgAygJUg9kZXN0aW5hdGlvblNpZHM=');
+9
View File
@@ -0,0 +1,9 @@
///
// Generated code. Do not modify.
// source: livekit_rtc.proto
//
// @dart = 2.12
// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields,deprecated_member_use_from_same_package
export 'livekit_rtc.pb.dart';
+350
View File
@@ -0,0 +1,350 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
_fe_analyzer_shared:
dependency: transitive
description:
name: _fe_analyzer_shared
url: "https://pub.dartlang.org"
source: hosted
version: "22.0.0"
analyzer:
dependency: transitive
description:
name: analyzer
url: "https://pub.dartlang.org"
source: hosted
version: "1.7.1"
args:
dependency: transitive
description:
name: args
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.1"
async:
dependency: transitive
description:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "2.6.1"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
cli_util:
dependency: transitive
description:
name: cli_util
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.3"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
source: hosted
version: "1.15.0"
convert:
dependency: transitive
description:
name: convert
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.1"
crypto:
dependency: transitive
description:
name: crypto
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.1"
dart_style:
dependency: transitive
description:
name: dart_style
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.14"
fake_async:
dependency: transitive
description:
name: fake_async
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
ffi:
dependency: transitive
description:
name: ffi
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.2"
file:
dependency: transitive
description:
name: file
url: "https://pub.dartlang.org"
source: hosted
version: "6.1.2"
fixnum:
dependency: transitive
description:
name: fixnum
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
flutter:
dependency: "direct main"
description: flutter
source: sdk
version: "0.0.0"
flutter_test:
dependency: "direct dev"
description: flutter
source: sdk
version: "0.0.0"
flutter_webrtc:
dependency: "direct main"
description:
name: flutter_webrtc
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.5"
glob:
dependency: transitive
description:
name: glob
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.10"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0"
package_config:
dependency: transitive
description:
name: package_config
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.0"
path_provider:
dependency: transitive
description:
name: path_provider
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
path_provider_macos:
dependency: transitive
description:
name: path_provider_macos
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
pedantic:
dependency: transitive
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.11.1"
platform:
dependency: transitive
description:
name: platform
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.0"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
process:
dependency: transitive
description:
name: process
url: "https://pub.dartlang.org"
source: hosted
version: "4.2.1"
protobuf:
dependency: "direct main"
description:
name: protobuf
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
protoc_plugin:
dependency: "direct main"
description:
name: protoc_plugin
url: "https://pub.dartlang.org"
source: hosted
version: "20.0.0"
pub_semver:
dependency: transitive
description:
name: pub_semver
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
sky_engine:
dependency: transitive
description: flutter
source: sdk
version: "0.0.99"
source_span:
dependency: transitive
description:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.10.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.0"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0"
vector_math:
dependency: transitive
description:
name: vector_math
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
watcher:
dependency: transitive
description:
name: watcher
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
win32:
dependency: transitive
description:
name: win32
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.5"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.0"
yaml:
dependency: transitive
description:
name: yaml
url: "https://pub.dartlang.org"
source: hosted
version: "3.1.0"
sdks:
dart: ">=2.13.0 <3.0.0"
flutter: ">=1.22.0"
+56
View File
@@ -0,0 +1,56 @@
name: livekit_client_flutter
description: Flutter client for LiveKit
version: 0.0.1
homepage: https://livekit.io
environment:
sdk: ">=2.12.0 <3.0.0"
flutter: ">=1.17.0"
dependencies:
flutter:
sdk: flutter
flutter_webrtc: ^0.6.4
protobuf: ^2.0.0
protoc_plugin: ^20.0.0
dev_dependencies:
flutter_test:
sdk: flutter
# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec
# The following section is specific to Flutter.
flutter:
# To add assets to your package, add an assets section, like this:
# assets:
# - images/a_dot_burr.jpeg
# - images/a_dot_ham.jpeg
#
# For details regarding assets in packages, see
# https://flutter.dev/assets-and-images/#from-packages
#
# An image asset can refer to one or more resolution-specific "variants", see
# https://flutter.dev/assets-and-images/#resolution-aware.
# To add custom fonts to your package, add a fonts section here,
# in this "flutter" section. Each entry in this list should have a
# "family" key with the font family name, and a "fonts" key with a
# list giving the asset and other descriptors for the font. For
# example:
# fonts:
# - family: Schyler
# fonts:
# - asset: fonts/Schyler-Regular.ttf
# - asset: fonts/Schyler-Italic.ttf
# style: italic
# - family: Trajan Pro
# fonts:
# - asset: fonts/TrajanPro.ttf
# - asset: fonts/TrajanPro_Bold.ttf
# weight: 700
#
# For details regarding fonts in packages, see
# https://flutter.dev/custom-fonts/#from-packages
+12
View File
@@ -0,0 +1,12 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:livekit_client/livekit_client.dart';
void main() {
test('adds one to input values', () {
final calculator = Calculator();
expect(calculator.addOne(2), 3);
expect(calculator.addOne(-7), -6);
expect(calculator.addOne(0), 1);
});
}