From d5b331c54645c9da2c53a3479030a91de4470520 Mon Sep 17 00:00:00 2001 From: Max Heimbrock <43608204+MaxHeimbrock@users.noreply.github.com> Date: Fri, 15 May 2026 17:35:20 +0200 Subject: [PATCH] Send ReadyForRoomEvent after Connect to flush queued room events The Rust FFI now parks the connect task after sending ConnectCallback and only spawns event-forwarding tasks once the client sends ReadyForRoomEventRequest. Without it, room events emitted between Connect and the C# listener registration were dropped (late-join scenario), and on the new Rust SDK the room is closed with ConnectionTimeout after 1s. Room.OnConnect now sends the ready request immediately after subscribing to FfiClient.RoomEventReceived and before firing the public Connected event. Adds a PlayMode regression test that publishes 4 tracks before a subscriber joins late and asserts every TrackSubscribed event arrives exactly once. Proto bindings regenerated via Scripts~/generate_proto.sh against the new ffi.proto / room.proto. DataTrack.cs consumer updated for the DataTrackStreamEOS.error field type change (string -> message). Co-Authored-By: Claude Opus 4.7 (1M context) --- Runtime/Scripts/DataTrack.cs | 4 +- .../FFIClients/FfiRequestExtensions.cs | 3 + Runtime/Scripts/Proto/AudioFrame.cs | 4057 +++++++++++++++- Runtime/Scripts/Proto/DataTrack.cs | 136 +- Runtime/Scripts/Proto/Ffi.cs | 1343 +++++- Runtime/Scripts/Proto/Room.cs | 4261 ++++++++++++----- Runtime/Scripts/Proto/Track.cs | 108 +- Runtime/Scripts/Proto/VideoFrame.cs | 473 +- Runtime/Scripts/Room.cs | 10 + .../LateJoinTrackSubscriptionTests.cs | 151 + .../LateJoinTrackSubscriptionTests.cs.meta | 11 + Tests/PlayMode/Utils/TestRoomContext.cs | 31 +- 12 files changed, 8829 insertions(+), 1759 deletions(-) create mode 100644 Tests/PlayMode/LateJoinTrackSubscriptionTests.cs create mode 100644 Tests/PlayMode/LateJoinTrackSubscriptionTests.cs.meta diff --git a/Runtime/Scripts/DataTrack.cs b/Runtime/Scripts/DataTrack.cs index 7854f2a3..97ded28b 100644 --- a/Runtime/Scripts/DataTrack.cs +++ b/Runtime/Scripts/DataTrack.cs @@ -390,8 +390,8 @@ private void OnSubscriptionEvent(DataTrackStreamEvent callback) break; case DataTrackStreamEvent.DetailOneofCase.Eos: SubscribeDataTrackError error = null; - if (callback.Eos.HasError) - error = new SubscribeDataTrackError(callback.Eos.Error); + if (callback.Eos.Error != null) + error = new SubscribeDataTrackError(callback.Eos.Error.Message); IsEos = true; _currentInstruction?.SetEos(error); Cleanup(); diff --git a/Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs b/Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs index 93caf2db..adcfe263 100644 --- a/Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs +++ b/Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs @@ -86,6 +86,9 @@ public static void Inject(this FfiRequest ffiRequest, T request) case DisconnectRequest disconnectRequest: ffiRequest.Disconnect = disconnectRequest; break; + case ReadyForRoomEventRequest readyForRoomEventRequest: + ffiRequest.ReadyForRoomEvent = readyForRoomEventRequest; + break; case PublishTrackRequest publishTrackRequest: ffiRequest.PublishTrack = publishTrackRequest; break; diff --git a/Runtime/Scripts/Proto/AudioFrame.cs b/Runtime/Scripts/Proto/AudioFrame.cs index f28a9d5a..f9a585b3 100644 --- a/Runtime/Scripts/Proto/AudioFrame.cs +++ b/Runtime/Scripts/Proto/AudioFrame.cs @@ -41,101 +41,126 @@ static AudioFrameReflection() { "b19maWx0ZXJfb3B0aW9ucxgIIAEoCRIVCg1mcmFtZV9zaXplX21zGAkgASgN", "EhkKEXF1ZXVlX3NpemVfZnJhbWVzGAogASgNIlUKIkF1ZGlvU3RyZWFtRnJv", "bVBhcnRpY2lwYW50UmVzcG9uc2USLwoGc3RyZWFtGAEgAigLMh8ubGl2ZWtp", - "dC5wcm90by5Pd25lZEF1ZGlvU3RyZWFtIrsBChVOZXdBdWRpb1NvdXJjZVJl", + "dC5wcm90by5Pd25lZEF1ZGlvU3RyZWFtItoBChVOZXdBdWRpb1NvdXJjZVJl", "cXVlc3QSLAoEdHlwZRgBIAIoDjIeLmxpdmVraXQucHJvdG8uQXVkaW9Tb3Vy", "Y2VUeXBlEjIKB29wdGlvbnMYAiABKAsyIS5saXZla2l0LnByb3RvLkF1ZGlv", "U291cmNlT3B0aW9ucxITCgtzYW1wbGVfcmF0ZRgDIAIoDRIUCgxudW1fY2hh", - "bm5lbHMYBCACKA0SFQoNcXVldWVfc2l6ZV9tcxgFIAEoDSJJChZOZXdBdWRp", - "b1NvdXJjZVJlc3BvbnNlEi8KBnNvdXJjZRgBIAIoCzIfLmxpdmVraXQucHJv", - "dG8uT3duZWRBdWRpb1NvdXJjZSKAAQoYQ2FwdHVyZUF1ZGlvRnJhbWVSZXF1", - "ZXN0EhUKDXNvdXJjZV9oYW5kbGUYASACKAQSMwoGYnVmZmVyGAIgAigLMiMu", - "bGl2ZWtpdC5wcm90by5BdWRpb0ZyYW1lQnVmZmVySW5mbxIYChByZXF1ZXN0", - "X2FzeW5jX2lkGAMgASgEIi0KGUNhcHR1cmVBdWRpb0ZyYW1lUmVzcG9uc2US", - "EAoIYXN5bmNfaWQYASACKAQiPAoZQ2FwdHVyZUF1ZGlvRnJhbWVDYWxsYmFj", - "axIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSIwChdDbGVhckF1", - "ZGlvQnVmZmVyUmVxdWVzdBIVCg1zb3VyY2VfaGFuZGxlGAEgAigEIhoKGENs", - "ZWFyQXVkaW9CdWZmZXJSZXNwb25zZSIaChhOZXdBdWRpb1Jlc2FtcGxlclJl", - "cXVlc3QiUgoZTmV3QXVkaW9SZXNhbXBsZXJSZXNwb25zZRI1CglyZXNhbXBs", - "ZXIYASACKAsyIi5saXZla2l0LnByb3RvLk93bmVkQXVkaW9SZXNhbXBsZXIi", - "kwEKF1JlbWl4QW5kUmVzYW1wbGVSZXF1ZXN0EhgKEHJlc2FtcGxlcl9oYW5k", - "bGUYASACKAQSMwoGYnVmZmVyGAIgAigLMiMubGl2ZWtpdC5wcm90by5BdWRp", - "b0ZyYW1lQnVmZmVySW5mbxIUCgxudW1fY2hhbm5lbHMYAyACKA0SEwoLc2Ft", - "cGxlX3JhdGUYBCACKA0iUAoYUmVtaXhBbmRSZXNhbXBsZVJlc3BvbnNlEjQK", - "BmJ1ZmZlchgBIAIoCzIkLmxpdmVraXQucHJvdG8uT3duZWRBdWRpb0ZyYW1l", - "QnVmZmVyIpUBCg1OZXdBcG1SZXF1ZXN0Eh4KFmVjaG9fY2FuY2VsbGVyX2Vu", - "YWJsZWQYASACKAgSHwoXZ2Fpbl9jb250cm9sbGVyX2VuYWJsZWQYAiACKAgS", - "IAoYaGlnaF9wYXNzX2ZpbHRlcl9lbmFibGVkGAMgAigIEiEKGW5vaXNlX3N1", - "cHByZXNzaW9uX2VuYWJsZWQYBCACKAgiNgoOTmV3QXBtUmVzcG9uc2USJAoD", - "YXBtGAEgAigLMhcubGl2ZWtpdC5wcm90by5Pd25lZEFwbSJ4ChdBcG1Qcm9j", - "ZXNzU3RyZWFtUmVxdWVzdBISCgphcG1faGFuZGxlGAEgAigEEhAKCGRhdGFf", - "cHRyGAIgAigEEgwKBHNpemUYAyACKA0SEwoLc2FtcGxlX3JhdGUYBCACKA0S", - "FAoMbnVtX2NoYW5uZWxzGAUgAigNIikKGEFwbVByb2Nlc3NTdHJlYW1SZXNw", - "b25zZRINCgVlcnJvchgBIAEoCSJ/Ch5BcG1Qcm9jZXNzUmV2ZXJzZVN0cmVh", - "bVJlcXVlc3QSEgoKYXBtX2hhbmRsZRgBIAIoBBIQCghkYXRhX3B0chgCIAIo", - "BBIMCgRzaXplGAMgAigNEhMKC3NhbXBsZV9yYXRlGAQgAigNEhQKDG51bV9j", - "aGFubmVscxgFIAIoDSIwCh9BcG1Qcm9jZXNzUmV2ZXJzZVN0cmVhbVJlc3Bv", - "bnNlEg0KBWVycm9yGAEgASgJIkAKGEFwbVNldFN0cmVhbURlbGF5UmVxdWVz", - "dBISCgphcG1faGFuZGxlGAEgAigEEhAKCGRlbGF5X21zGAIgAigFIioKGUFw", - "bVNldFN0cmVhbURlbGF5UmVzcG9uc2USDQoFZXJyb3IYASABKAkinAIKFk5l", - "d1NveFJlc2FtcGxlclJlcXVlc3QSEgoKaW5wdXRfcmF0ZRgBIAIoARITCgtv", - "dXRwdXRfcmF0ZRgCIAIoARIUCgxudW1fY2hhbm5lbHMYAyACKA0SPAoPaW5w", - "dXRfZGF0YV90eXBlGAQgAigOMiMubGl2ZWtpdC5wcm90by5Tb3hSZXNhbXBs", - "ZXJEYXRhVHlwZRI9ChBvdXRwdXRfZGF0YV90eXBlGAUgAigOMiMubGl2ZWtp", - "dC5wcm90by5Tb3hSZXNhbXBsZXJEYXRhVHlwZRI3Cg5xdWFsaXR5X3JlY2lw", - "ZRgGIAIoDjIfLmxpdmVraXQucHJvdG8uU294UXVhbGl0eVJlY2lwZRINCgVm", - "bGFncxgHIAEoDSJsChdOZXdTb3hSZXNhbXBsZXJSZXNwb25zZRI1CglyZXNh", - "bXBsZXIYASABKAsyIC5saXZla2l0LnByb3RvLk93bmVkU294UmVzYW1wbGVy", - "SAASDwoFZXJyb3IYAiABKAlIAEIJCgdtZXNzYWdlIlMKF1B1c2hTb3hSZXNh", - "bXBsZXJSZXF1ZXN0EhgKEHJlc2FtcGxlcl9oYW5kbGUYASACKAQSEAoIZGF0", - "YV9wdHIYAiACKAQSDAoEc2l6ZRgDIAIoDSJLChhQdXNoU294UmVzYW1wbGVy", - "UmVzcG9uc2USEgoKb3V0cHV0X3B0chgBIAIoBBIMCgRzaXplGAIgAigNEg0K", - "BWVycm9yGAMgASgJIjQKGEZsdXNoU294UmVzYW1wbGVyUmVxdWVzdBIYChBy", - "ZXNhbXBsZXJfaGFuZGxlGAEgAigEIkwKGUZsdXNoU294UmVzYW1wbGVyUmVz", - "cG9uc2USEgoKb3V0cHV0X3B0chgBIAIoBBIMCgRzaXplGAIgAigNEg0KBWVy", - "cm9yGAMgASgJInAKFEF1ZGlvRnJhbWVCdWZmZXJJbmZvEhAKCGRhdGFfcHRy", - "GAEgAigEEhQKDG51bV9jaGFubmVscxgCIAIoDRITCgtzYW1wbGVfcmF0ZRgD", - "IAIoDRIbChNzYW1wbGVzX3Blcl9jaGFubmVsGAQgAigNInkKFU93bmVkQXVk", - "aW9GcmFtZUJ1ZmZlchItCgZoYW5kbGUYASACKAsyHS5saXZla2l0LnByb3Rv", - "LkZmaU93bmVkSGFuZGxlEjEKBGluZm8YAiACKAsyIy5saXZla2l0LnByb3Rv", - "LkF1ZGlvRnJhbWVCdWZmZXJJbmZvIj8KD0F1ZGlvU3RyZWFtSW5mbxIsCgR0", - "eXBlGAEgAigOMh4ubGl2ZWtpdC5wcm90by5BdWRpb1N0cmVhbVR5cGUibwoQ", - "T3duZWRBdWRpb1N0cmVhbRItCgZoYW5kbGUYASACKAsyHS5saXZla2l0LnBy", - "b3RvLkZmaU93bmVkSGFuZGxlEiwKBGluZm8YAiACKAsyHi5saXZla2l0LnBy", - "b3RvLkF1ZGlvU3RyZWFtSW5mbyKfAQoQQXVkaW9TdHJlYW1FdmVudBIVCg1z", - "dHJlYW1faGFuZGxlGAEgAigEEjsKDmZyYW1lX3JlY2VpdmVkGAIgASgLMiEu", - "bGl2ZWtpdC5wcm90by5BdWRpb0ZyYW1lUmVjZWl2ZWRIABIsCgNlb3MYAyAB", - "KAsyHS5saXZla2l0LnByb3RvLkF1ZGlvU3RyZWFtRU9TSABCCQoHbWVzc2Fn", - "ZSJJChJBdWRpb0ZyYW1lUmVjZWl2ZWQSMwoFZnJhbWUYASACKAsyJC5saXZl", - "a2l0LnByb3RvLk93bmVkQXVkaW9GcmFtZUJ1ZmZlciIQCg5BdWRpb1N0cmVh", - "bUVPUyJlChJBdWRpb1NvdXJjZU9wdGlvbnMSGQoRZWNob19jYW5jZWxsYXRp", - "b24YASACKAgSGQoRbm9pc2Vfc3VwcHJlc3Npb24YAiACKAgSGQoRYXV0b19n", - "YWluX2NvbnRyb2wYAyACKAgiPwoPQXVkaW9Tb3VyY2VJbmZvEiwKBHR5cGUY", - "AiACKA4yHi5saXZla2l0LnByb3RvLkF1ZGlvU291cmNlVHlwZSJvChBPd25l", - "ZEF1ZGlvU291cmNlEi0KBmhhbmRsZRgBIAIoCzIdLmxpdmVraXQucHJvdG8u", - "RmZpT3duZWRIYW5kbGUSLAoEaW5mbxgCIAIoCzIeLmxpdmVraXQucHJvdG8u", - "QXVkaW9Tb3VyY2VJbmZvIhQKEkF1ZGlvUmVzYW1wbGVySW5mbyJ1ChNPd25l", - "ZEF1ZGlvUmVzYW1wbGVyEi0KBmhhbmRsZRgBIAIoCzIdLmxpdmVraXQucHJv", - "dG8uRmZpT3duZWRIYW5kbGUSLwoEaW5mbxgCIAIoCzIhLmxpdmVraXQucHJv", - "dG8uQXVkaW9SZXNhbXBsZXJJbmZvIjkKCE93bmVkQXBtEi0KBmhhbmRsZRgB", - "IAIoCzIdLmxpdmVraXQucHJvdG8uRmZpT3duZWRIYW5kbGUiEgoQU294UmVz", - "YW1wbGVySW5mbyJxChFPd25lZFNveFJlc2FtcGxlchItCgZoYW5kbGUYASAC", - "KAsyHS5saXZla2l0LnByb3RvLkZmaU93bmVkSGFuZGxlEi0KBGluZm8YAiAC", - "KAsyHy5saXZla2l0LnByb3RvLlNveFJlc2FtcGxlckluZm8iXAocTG9hZEF1", - "ZGlvRmlsdGVyUGx1Z2luUmVxdWVzdBITCgtwbHVnaW5fcGF0aBgBIAIoCRIU", - "CgxkZXBlbmRlbmNpZXMYAiADKAkSEQoJbW9kdWxlX2lkGAMgAigJIi4KHUxv", - "YWRBdWRpb0ZpbHRlclBsdWdpblJlc3BvbnNlEg0KBWVycm9yGAEgASgJKkoK", - "FFNveFJlc2FtcGxlckRhdGFUeXBlEhgKFFNPWFJfREFUQVRZUEVfSU5UMTZJ", - "EAASGAoUU09YUl9EQVRBVFlQRV9JTlQxNlMQASqLAQoQU294UXVhbGl0eVJl", - "Y2lwZRIWChJTT1hSX1FVQUxJVFlfUVVJQ0sQABIUChBTT1hSX1FVQUxJVFlf", - "TE9XEAESFwoTU09YUl9RVUFMSVRZX01FRElVTRACEhUKEVNPWFJfUVVBTElU", - "WV9ISUdIEAMSGQoVU09YUl9RVUFMSVRZX1ZFUllISUdIEAQqlwEKC1NveEZs", - "YWdCaXRzEhYKElNPWFJfUk9MTE9GRl9TTUFMTBAAEhcKE1NPWFJfUk9MTE9G", - "Rl9NRURJVU0QARIVChFTT1hSX1JPTExPRkZfTk9ORRACEhgKFFNPWFJfSElH", - "SF9QUkVDX0NMT0NLEAMSGQoVU09YUl9ET1VCTEVfUFJFQ0lTSU9OEAQSCwoH", - "U09YUl9WUhAFKkEKD0F1ZGlvU3RyZWFtVHlwZRIXChNBVURJT19TVFJFQU1f", - "TkFUSVZFEAASFQoRQVVESU9fU1RSRUFNX0hUTUwQASoqCg9BdWRpb1NvdXJj", - "ZVR5cGUSFwoTQVVESU9fU09VUkNFX05BVElWRRAAQhCqAg1MaXZlS2l0LlBy", - "b3Rv")); + "bm5lbHMYBCACKA0SFQoNcXVldWVfc2l6ZV9tcxgFIAEoDRIdChVwbGF0Zm9y", + "bV9hdWRpb19oYW5kbGUYBiABKAQiSQoWTmV3QXVkaW9Tb3VyY2VSZXNwb25z", + "ZRIvCgZzb3VyY2UYASACKAsyHy5saXZla2l0LnByb3RvLk93bmVkQXVkaW9T", + "b3VyY2UigAEKGENhcHR1cmVBdWRpb0ZyYW1lUmVxdWVzdBIVCg1zb3VyY2Vf", + "aGFuZGxlGAEgAigEEjMKBmJ1ZmZlchgCIAIoCzIjLmxpdmVraXQucHJvdG8u", + "QXVkaW9GcmFtZUJ1ZmZlckluZm8SGAoQcmVxdWVzdF9hc3luY19pZBgDIAEo", + "BCItChlDYXB0dXJlQXVkaW9GcmFtZVJlc3BvbnNlEhAKCGFzeW5jX2lkGAEg", + "AigEIjwKGUNhcHR1cmVBdWRpb0ZyYW1lQ2FsbGJhY2sSEAoIYXN5bmNfaWQY", + "ASACKAQSDQoFZXJyb3IYAiABKAkiMAoXQ2xlYXJBdWRpb0J1ZmZlclJlcXVl", + "c3QSFQoNc291cmNlX2hhbmRsZRgBIAIoBCIaChhDbGVhckF1ZGlvQnVmZmVy", + "UmVzcG9uc2UiGgoYTmV3QXVkaW9SZXNhbXBsZXJSZXF1ZXN0IlIKGU5ld0F1", + "ZGlvUmVzYW1wbGVyUmVzcG9uc2USNQoJcmVzYW1wbGVyGAEgAigLMiIubGl2", + "ZWtpdC5wcm90by5Pd25lZEF1ZGlvUmVzYW1wbGVyIpMBChdSZW1peEFuZFJl", + "c2FtcGxlUmVxdWVzdBIYChByZXNhbXBsZXJfaGFuZGxlGAEgAigEEjMKBmJ1", + "ZmZlchgCIAIoCzIjLmxpdmVraXQucHJvdG8uQXVkaW9GcmFtZUJ1ZmZlcklu", + "Zm8SFAoMbnVtX2NoYW5uZWxzGAMgAigNEhMKC3NhbXBsZV9yYXRlGAQgAigN", + "IlAKGFJlbWl4QW5kUmVzYW1wbGVSZXNwb25zZRI0CgZidWZmZXIYASACKAsy", + "JC5saXZla2l0LnByb3RvLk93bmVkQXVkaW9GcmFtZUJ1ZmZlciKVAQoNTmV3", + "QXBtUmVxdWVzdBIeChZlY2hvX2NhbmNlbGxlcl9lbmFibGVkGAEgAigIEh8K", + "F2dhaW5fY29udHJvbGxlcl9lbmFibGVkGAIgAigIEiAKGGhpZ2hfcGFzc19m", + "aWx0ZXJfZW5hYmxlZBgDIAIoCBIhChlub2lzZV9zdXBwcmVzc2lvbl9lbmFi", + "bGVkGAQgAigIIjYKDk5ld0FwbVJlc3BvbnNlEiQKA2FwbRgBIAIoCzIXLmxp", + "dmVraXQucHJvdG8uT3duZWRBcG0ieAoXQXBtUHJvY2Vzc1N0cmVhbVJlcXVl", + "c3QSEgoKYXBtX2hhbmRsZRgBIAIoBBIQCghkYXRhX3B0chgCIAIoBBIMCgRz", + "aXplGAMgAigNEhMKC3NhbXBsZV9yYXRlGAQgAigNEhQKDG51bV9jaGFubmVs", + "cxgFIAIoDSIpChhBcG1Qcm9jZXNzU3RyZWFtUmVzcG9uc2USDQoFZXJyb3IY", + "ASABKAkifwoeQXBtUHJvY2Vzc1JldmVyc2VTdHJlYW1SZXF1ZXN0EhIKCmFw", + "bV9oYW5kbGUYASACKAQSEAoIZGF0YV9wdHIYAiACKAQSDAoEc2l6ZRgDIAIo", + "DRITCgtzYW1wbGVfcmF0ZRgEIAIoDRIUCgxudW1fY2hhbm5lbHMYBSACKA0i", + "MAofQXBtUHJvY2Vzc1JldmVyc2VTdHJlYW1SZXNwb25zZRINCgVlcnJvchgB", + "IAEoCSJAChhBcG1TZXRTdHJlYW1EZWxheVJlcXVlc3QSEgoKYXBtX2hhbmRs", + "ZRgBIAIoBBIQCghkZWxheV9tcxgCIAIoBSIqChlBcG1TZXRTdHJlYW1EZWxh", + "eVJlc3BvbnNlEg0KBWVycm9yGAEgASgJIpwCChZOZXdTb3hSZXNhbXBsZXJS", + "ZXF1ZXN0EhIKCmlucHV0X3JhdGUYASACKAESEwoLb3V0cHV0X3JhdGUYAiAC", + "KAESFAoMbnVtX2NoYW5uZWxzGAMgAigNEjwKD2lucHV0X2RhdGFfdHlwZRgE", + "IAIoDjIjLmxpdmVraXQucHJvdG8uU294UmVzYW1wbGVyRGF0YVR5cGUSPQoQ", + "b3V0cHV0X2RhdGFfdHlwZRgFIAIoDjIjLmxpdmVraXQucHJvdG8uU294UmVz", + "YW1wbGVyRGF0YVR5cGUSNwoOcXVhbGl0eV9yZWNpcGUYBiACKA4yHy5saXZl", + "a2l0LnByb3RvLlNveFF1YWxpdHlSZWNpcGUSDQoFZmxhZ3MYByABKA0ibAoX", + "TmV3U294UmVzYW1wbGVyUmVzcG9uc2USNQoJcmVzYW1wbGVyGAEgASgLMiAu", + "bGl2ZWtpdC5wcm90by5Pd25lZFNveFJlc2FtcGxlckgAEg8KBWVycm9yGAIg", + "ASgJSABCCQoHbWVzc2FnZSJTChdQdXNoU294UmVzYW1wbGVyUmVxdWVzdBIY", + "ChByZXNhbXBsZXJfaGFuZGxlGAEgAigEEhAKCGRhdGFfcHRyGAIgAigEEgwK", + "BHNpemUYAyACKA0iSwoYUHVzaFNveFJlc2FtcGxlclJlc3BvbnNlEhIKCm91", + "dHB1dF9wdHIYASACKAQSDAoEc2l6ZRgCIAIoDRINCgVlcnJvchgDIAEoCSI0", + "ChhGbHVzaFNveFJlc2FtcGxlclJlcXVlc3QSGAoQcmVzYW1wbGVyX2hhbmRs", + "ZRgBIAIoBCJMChlGbHVzaFNveFJlc2FtcGxlclJlc3BvbnNlEhIKCm91dHB1", + "dF9wdHIYASACKAQSDAoEc2l6ZRgCIAIoDRINCgVlcnJvchgDIAEoCSJwChRB", + "dWRpb0ZyYW1lQnVmZmVySW5mbxIQCghkYXRhX3B0chgBIAIoBBIUCgxudW1f", + "Y2hhbm5lbHMYAiACKA0SEwoLc2FtcGxlX3JhdGUYAyACKA0SGwoTc2FtcGxl", + "c19wZXJfY2hhbm5lbBgEIAIoDSJ5ChVPd25lZEF1ZGlvRnJhbWVCdWZmZXIS", + "LQoGaGFuZGxlGAEgAigLMh0ubGl2ZWtpdC5wcm90by5GZmlPd25lZEhhbmRs", + "ZRIxCgRpbmZvGAIgAigLMiMubGl2ZWtpdC5wcm90by5BdWRpb0ZyYW1lQnVm", + "ZmVySW5mbyI/Cg9BdWRpb1N0cmVhbUluZm8SLAoEdHlwZRgBIAIoDjIeLmxp", + "dmVraXQucHJvdG8uQXVkaW9TdHJlYW1UeXBlIm8KEE93bmVkQXVkaW9TdHJl", + "YW0SLQoGaGFuZGxlGAEgAigLMh0ubGl2ZWtpdC5wcm90by5GZmlPd25lZEhh", + "bmRsZRIsCgRpbmZvGAIgAigLMh4ubGl2ZWtpdC5wcm90by5BdWRpb1N0cmVh", + "bUluZm8inwEKEEF1ZGlvU3RyZWFtRXZlbnQSFQoNc3RyZWFtX2hhbmRsZRgB", + "IAIoBBI7Cg5mcmFtZV9yZWNlaXZlZBgCIAEoCzIhLmxpdmVraXQucHJvdG8u", + "QXVkaW9GcmFtZVJlY2VpdmVkSAASLAoDZW9zGAMgASgLMh0ubGl2ZWtpdC5w", + "cm90by5BdWRpb1N0cmVhbUVPU0gAQgkKB21lc3NhZ2UiSQoSQXVkaW9GcmFt", + "ZVJlY2VpdmVkEjMKBWZyYW1lGAEgAigLMiQubGl2ZWtpdC5wcm90by5Pd25l", + "ZEF1ZGlvRnJhbWVCdWZmZXIiEAoOQXVkaW9TdHJlYW1FT1MifgoSQXVkaW9T", + "b3VyY2VPcHRpb25zEhkKEWVjaG9fY2FuY2VsbGF0aW9uGAEgAigIEhkKEW5v", + "aXNlX3N1cHByZXNzaW9uGAIgAigIEhkKEWF1dG9fZ2Fpbl9jb250cm9sGAMg", + "AigIEhcKD3ByZWZlcl9oYXJkd2FyZRgEIAEoCCI/Cg9BdWRpb1NvdXJjZUlu", + "Zm8SLAoEdHlwZRgCIAIoDjIeLmxpdmVraXQucHJvdG8uQXVkaW9Tb3VyY2VU", + "eXBlIm8KEE93bmVkQXVkaW9Tb3VyY2USLQoGaGFuZGxlGAEgAigLMh0ubGl2", + "ZWtpdC5wcm90by5GZmlPd25lZEhhbmRsZRIsCgRpbmZvGAIgAigLMh4ubGl2", + "ZWtpdC5wcm90by5BdWRpb1NvdXJjZUluZm8iFAoSQXVkaW9SZXNhbXBsZXJJ", + "bmZvInUKE093bmVkQXVkaW9SZXNhbXBsZXISLQoGaGFuZGxlGAEgAigLMh0u", + "bGl2ZWtpdC5wcm90by5GZmlPd25lZEhhbmRsZRIvCgRpbmZvGAIgAigLMiEu", + "bGl2ZWtpdC5wcm90by5BdWRpb1Jlc2FtcGxlckluZm8iOQoIT3duZWRBcG0S", + "LQoGaGFuZGxlGAEgAigLMh0ubGl2ZWtpdC5wcm90by5GZmlPd25lZEhhbmRs", + "ZSISChBTb3hSZXNhbXBsZXJJbmZvInEKEU93bmVkU294UmVzYW1wbGVyEi0K", + "BmhhbmRsZRgBIAIoCzIdLmxpdmVraXQucHJvdG8uRmZpT3duZWRIYW5kbGUS", + "LQoEaW5mbxgCIAIoCzIfLmxpdmVraXQucHJvdG8uU294UmVzYW1wbGVySW5m", + "byJcChxMb2FkQXVkaW9GaWx0ZXJQbHVnaW5SZXF1ZXN0EhMKC3BsdWdpbl9w", + "YXRoGAEgAigJEhQKDGRlcGVuZGVuY2llcxgCIAMoCRIRCgltb2R1bGVfaWQY", + "AyACKAkiLgodTG9hZEF1ZGlvRmlsdGVyUGx1Z2luUmVzcG9uc2USDQoFZXJy", + "b3IYASABKAkiPAoPQXVkaW9EZXZpY2VJbmZvEg0KBWluZGV4GAEgAigNEgwK", + "BG5hbWUYAiACKAkSDAoEZ3VpZBgDIAEoCSJRChFQbGF0Zm9ybUF1ZGlvSW5m", + "bxIeChZyZWNvcmRpbmdfZGV2aWNlX2NvdW50GAEgAigFEhwKFHBsYXlvdXRf", + "ZGV2aWNlX2NvdW50GAIgAigFInMKEk93bmVkUGxhdGZvcm1BdWRpbxItCgZo", + "YW5kbGUYASACKAsyHS5saXZla2l0LnByb3RvLkZmaU93bmVkSGFuZGxlEi4K", + "BGluZm8YAiACKAsyIC5saXZla2l0LnByb3RvLlBsYXRmb3JtQXVkaW9JbmZv", + "IhkKF05ld1BsYXRmb3JtQXVkaW9SZXF1ZXN0InMKGE5ld1BsYXRmb3JtQXVk", + "aW9SZXNwb25zZRI7Cg5wbGF0Zm9ybV9hdWRpbxgBIAEoCzIhLmxpdmVraXQu", + "cHJvdG8uT3duZWRQbGF0Zm9ybUF1ZGlvSAASDwoFZXJyb3IYAiABKAlIAEIJ", + "CgdtZXNzYWdlIjcKFkdldEF1ZGlvRGV2aWNlc1JlcXVlc3QSHQoVcGxhdGZv", + "cm1fYXVkaW9faGFuZGxlGAEgAigEIpwBChdHZXRBdWRpb0RldmljZXNSZXNw", + "b25zZRI3Cg9wbGF5b3V0X2RldmljZXMYASADKAsyHi5saXZla2l0LnByb3Rv", + "LkF1ZGlvRGV2aWNlSW5mbxI5ChFyZWNvcmRpbmdfZGV2aWNlcxgCIAMoCzIe", + "LmxpdmVraXQucHJvdG8uQXVkaW9EZXZpY2VJbmZvEg0KBWVycm9yGAMgASgJ", + "Ik0KGVNldFJlY29yZGluZ0RldmljZVJlcXVlc3QSHQoVcGxhdGZvcm1fYXVk", + "aW9faGFuZGxlGAEgAigEEhEKCWRldmljZV9pZBgCIAIoCSIrChpTZXRSZWNv", + "cmRpbmdEZXZpY2VSZXNwb25zZRINCgVlcnJvchgBIAEoCSJLChdTZXRQbGF5", + "b3V0RGV2aWNlUmVxdWVzdBIdChVwbGF0Zm9ybV9hdWRpb19oYW5kbGUYASAC", + "KAQSEQoJZGV2aWNlX2lkGAIgAigJIikKGFNldFBsYXlvdXREZXZpY2VSZXNw", + "b25zZRINCgVlcnJvchgBIAEoCSI2ChVTdGFydFJlY29yZGluZ1JlcXVlc3QS", + "HQoVcGxhdGZvcm1fYXVkaW9faGFuZGxlGAEgAigEIicKFlN0YXJ0UmVjb3Jk", + "aW5nUmVzcG9uc2USDQoFZXJyb3IYASABKAkiNQoUU3RvcFJlY29yZGluZ1Jl", + "cXVlc3QSHQoVcGxhdGZvcm1fYXVkaW9faGFuZGxlGAEgAigEIiYKFVN0b3BS", + "ZWNvcmRpbmdSZXNwb25zZRINCgVlcnJvchgBIAEoCSpKChRTb3hSZXNhbXBs", + "ZXJEYXRhVHlwZRIYChRTT1hSX0RBVEFUWVBFX0lOVDE2SRAAEhgKFFNPWFJf", + "REFUQVRZUEVfSU5UMTZTEAEqiwEKEFNveFF1YWxpdHlSZWNpcGUSFgoSU09Y", + "Ul9RVUFMSVRZX1FVSUNLEAASFAoQU09YUl9RVUFMSVRZX0xPVxABEhcKE1NP", + "WFJfUVVBTElUWV9NRURJVU0QAhIVChFTT1hSX1FVQUxJVFlfSElHSBADEhkK", + "FVNPWFJfUVVBTElUWV9WRVJZSElHSBAEKpcBCgtTb3hGbGFnQml0cxIWChJT", + "T1hSX1JPTExPRkZfU01BTEwQABIXChNTT1hSX1JPTExPRkZfTUVESVVNEAES", + "FQoRU09YUl9ST0xMT0ZGX05PTkUQAhIYChRTT1hSX0hJR0hfUFJFQ19DTE9D", + "SxADEhkKFVNPWFJfRE9VQkxFX1BSRUNJU0lPThAEEgsKB1NPWFJfVlIQBSpB", + "Cg9BdWRpb1N0cmVhbVR5cGUSFwoTQVVESU9fU1RSRUFNX05BVElWRRAAEhUK", + "EUFVRElPX1NUUkVBTV9IVE1MEAEqRQoPQXVkaW9Tb3VyY2VUeXBlEhcKE0FV", + "RElPX1NPVVJDRV9OQVRJVkUQABIZChVBVURJT19TT1VSQ0VfUExBVEZPUk0Q", + "AUIQqgINTGl2ZUtpdC5Qcm90bw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::LiveKit.Proto.HandleReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.SoxResamplerDataType), typeof(global::LiveKit.Proto.SoxQualityRecipe), typeof(global::LiveKit.Proto.SoxFlagBits), typeof(global::LiveKit.Proto.AudioStreamType), typeof(global::LiveKit.Proto.AudioSourceType), }, null, new pbr::GeneratedClrTypeInfo[] { @@ -143,7 +168,7 @@ static AudioFrameReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewAudioStreamResponse), global::LiveKit.Proto.NewAudioStreamResponse.Parser, new[]{ "Stream" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.AudioStreamFromParticipantRequest), global::LiveKit.Proto.AudioStreamFromParticipantRequest.Parser, new[]{ "ParticipantHandle", "Type", "TrackSource", "SampleRate", "NumChannels", "AudioFilterModuleId", "AudioFilterOptions", "FrameSizeMs", "QueueSizeFrames" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.AudioStreamFromParticipantResponse), global::LiveKit.Proto.AudioStreamFromParticipantResponse.Parser, new[]{ "Stream" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewAudioSourceRequest), global::LiveKit.Proto.NewAudioSourceRequest.Parser, new[]{ "Type", "Options", "SampleRate", "NumChannels", "QueueSizeMs" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewAudioSourceRequest), global::LiveKit.Proto.NewAudioSourceRequest.Parser, new[]{ "Type", "Options", "SampleRate", "NumChannels", "QueueSizeMs", "PlatformAudioHandle" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewAudioSourceResponse), global::LiveKit.Proto.NewAudioSourceResponse.Parser, new[]{ "Source" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.CaptureAudioFrameRequest), global::LiveKit.Proto.CaptureAudioFrameRequest.Parser, new[]{ "SourceHandle", "Buffer", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.CaptureAudioFrameResponse), global::LiveKit.Proto.CaptureAudioFrameResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), @@ -175,7 +200,7 @@ static AudioFrameReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.AudioStreamEvent), global::LiveKit.Proto.AudioStreamEvent.Parser, new[]{ "StreamHandle", "FrameReceived", "Eos" }, new[]{ "Message" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.AudioFrameReceived), global::LiveKit.Proto.AudioFrameReceived.Parser, new[]{ "Frame" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.AudioStreamEOS), global::LiveKit.Proto.AudioStreamEOS.Parser, null, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.AudioSourceOptions), global::LiveKit.Proto.AudioSourceOptions.Parser, new[]{ "EchoCancellation", "NoiseSuppression", "AutoGainControl" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.AudioSourceOptions), global::LiveKit.Proto.AudioSourceOptions.Parser, new[]{ "EchoCancellation", "NoiseSuppression", "AutoGainControl", "PreferHardware" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.AudioSourceInfo), global::LiveKit.Proto.AudioSourceInfo.Parser, new[]{ "Type" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedAudioSource), global::LiveKit.Proto.OwnedAudioSource.Parser, new[]{ "Handle", "Info" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.AudioResamplerInfo), global::LiveKit.Proto.AudioResamplerInfo.Parser, null, null, null, null, null), @@ -184,7 +209,22 @@ static AudioFrameReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SoxResamplerInfo), global::LiveKit.Proto.SoxResamplerInfo.Parser, null, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedSoxResampler), global::LiveKit.Proto.OwnedSoxResampler.Parser, new[]{ "Handle", "Info" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LoadAudioFilterPluginRequest), global::LiveKit.Proto.LoadAudioFilterPluginRequest.Parser, new[]{ "PluginPath", "Dependencies", "ModuleId" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LoadAudioFilterPluginResponse), global::LiveKit.Proto.LoadAudioFilterPluginResponse.Parser, new[]{ "Error" }, null, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LoadAudioFilterPluginResponse), global::LiveKit.Proto.LoadAudioFilterPluginResponse.Parser, new[]{ "Error" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.AudioDeviceInfo), global::LiveKit.Proto.AudioDeviceInfo.Parser, new[]{ "Index", "Name", "Guid" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PlatformAudioInfo), global::LiveKit.Proto.PlatformAudioInfo.Parser, new[]{ "RecordingDeviceCount", "PlayoutDeviceCount" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedPlatformAudio), global::LiveKit.Proto.OwnedPlatformAudio.Parser, new[]{ "Handle", "Info" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewPlatformAudioRequest), global::LiveKit.Proto.NewPlatformAudioRequest.Parser, null, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewPlatformAudioResponse), global::LiveKit.Proto.NewPlatformAudioResponse.Parser, new[]{ "PlatformAudio", "Error" }, new[]{ "Message" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.GetAudioDevicesRequest), global::LiveKit.Proto.GetAudioDevicesRequest.Parser, new[]{ "PlatformAudioHandle" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.GetAudioDevicesResponse), global::LiveKit.Proto.GetAudioDevicesResponse.Parser, new[]{ "PlayoutDevices", "RecordingDevices", "Error" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetRecordingDeviceRequest), global::LiveKit.Proto.SetRecordingDeviceRequest.Parser, new[]{ "PlatformAudioHandle", "DeviceId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetRecordingDeviceResponse), global::LiveKit.Proto.SetRecordingDeviceResponse.Parser, new[]{ "Error" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetPlayoutDeviceRequest), global::LiveKit.Proto.SetPlayoutDeviceRequest.Parser, new[]{ "PlatformAudioHandle", "DeviceId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetPlayoutDeviceResponse), global::LiveKit.Proto.SetPlayoutDeviceResponse.Parser, new[]{ "Error" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.StartRecordingRequest), global::LiveKit.Proto.StartRecordingRequest.Parser, new[]{ "PlatformAudioHandle" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.StartRecordingResponse), global::LiveKit.Proto.StartRecordingResponse.Parser, new[]{ "Error" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.StopRecordingRequest), global::LiveKit.Proto.StopRecordingRequest.Parser, new[]{ "PlatformAudioHandle" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.StopRecordingResponse), global::LiveKit.Proto.StopRecordingResponse.Parser, new[]{ "Error" }, null, null, null, null) })); } #endregion @@ -240,7 +280,15 @@ public enum AudioStreamType { } public enum AudioSourceType { + /// + /// Push-based audio source - manually capture frames via CaptureAudioFrameRequest + /// [pbr::OriginalName("AUDIO_SOURCE_NATIVE")] AudioSourceNative = 0, + /// + /// Platform ADM-based audio source - captures from microphone automatically + /// Requires PlatformAudio to be created first to enable ADM recording + /// + [pbr::OriginalName("AUDIO_SOURCE_PLATFORM")] AudioSourcePlatform = 1, } #endregion @@ -1940,6 +1988,7 @@ public NewAudioSourceRequest(NewAudioSourceRequest other) : this() { sampleRate_ = other.sampleRate_; numChannels_ = other.numChannels_; queueSizeMs_ = other.queueSizeMs_; + platformAudioHandle_ = other.platformAudioHandle_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -2069,6 +2118,37 @@ public void ClearQueueSizeMs() { _hasBits0 &= ~8; } + /// Field number for the "platform_audio_handle" field. + public const int PlatformAudioHandleFieldNumber = 6; + private readonly static ulong PlatformAudioHandleDefaultValue = 0UL; + + private ulong platformAudioHandle_; + /// + /// For AudioSourcePlatform: the PlatformAudio handle to configure audio processing on. + /// If provided with options, audio processing will be configured on the PlatformAudio. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong PlatformAudioHandle { + get { if ((_hasBits0 & 16) != 0) { return platformAudioHandle_; } else { return PlatformAudioHandleDefaultValue; } } + set { + _hasBits0 |= 16; + platformAudioHandle_ = value; + } + } + /// Gets whether the "platform_audio_handle" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasPlatformAudioHandle { + get { return (_hasBits0 & 16) != 0; } + } + /// Clears the value of the "platform_audio_handle" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearPlatformAudioHandle() { + _hasBits0 &= ~16; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -2089,6 +2169,7 @@ public bool Equals(NewAudioSourceRequest other) { if (SampleRate != other.SampleRate) return false; if (NumChannels != other.NumChannels) return false; if (QueueSizeMs != other.QueueSizeMs) return false; + if (PlatformAudioHandle != other.PlatformAudioHandle) return false; return Equals(_unknownFields, other._unknownFields); } @@ -2101,6 +2182,7 @@ public override int GetHashCode() { if (HasSampleRate) hash ^= SampleRate.GetHashCode(); if (HasNumChannels) hash ^= NumChannels.GetHashCode(); if (HasQueueSizeMs) hash ^= QueueSizeMs.GetHashCode(); + if (HasPlatformAudioHandle) hash ^= PlatformAudioHandle.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -2139,6 +2221,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(40); output.WriteUInt32(QueueSizeMs); } + if (HasPlatformAudioHandle) { + output.WriteRawTag(48); + output.WriteUInt64(PlatformAudioHandle); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -2169,6 +2255,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(40); output.WriteUInt32(QueueSizeMs); } + if (HasPlatformAudioHandle) { + output.WriteRawTag(48); + output.WriteUInt64(PlatformAudioHandle); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -2194,6 +2284,9 @@ public int CalculateSize() { if (HasQueueSizeMs) { size += 1 + pb::CodedOutputStream.ComputeUInt32Size(QueueSizeMs); } + if (HasPlatformAudioHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(PlatformAudioHandle); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -2224,6 +2317,9 @@ public void MergeFrom(NewAudioSourceRequest other) { if (other.HasQueueSizeMs) { QueueSizeMs = other.QueueSizeMs; } + if (other.HasPlatformAudioHandle) { + PlatformAudioHandle = other.PlatformAudioHandle; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -2266,6 +2362,10 @@ public void MergeFrom(pb::CodedInputStream input) { QueueSizeMs = input.ReadUInt32(); break; } + case 48: { + PlatformAudioHandle = input.ReadUInt64(); + break; + } } } #endif @@ -2308,6 +2408,10 @@ public void MergeFrom(pb::CodedInputStream input) { QueueSizeMs = input.ReadUInt32(); break; } + case 48: { + PlatformAudioHandle = input.ReadUInt64(); + break; + } } } } @@ -10842,6 +10946,7 @@ public AudioSourceOptions(AudioSourceOptions other) : this() { echoCancellation_ = other.echoCancellation_; noiseSuppression_ = other.noiseSuppression_; autoGainControl_ = other.autoGainControl_; + preferHardware_ = other.preferHardware_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -10932,6 +11037,37 @@ public void ClearAutoGainControl() { _hasBits0 &= ~4; } + /// Field number for the "prefer_hardware" field. + public const int PreferHardwareFieldNumber = 4; + private readonly static bool PreferHardwareDefaultValue = false; + + private bool preferHardware_; + /// + /// Prefer hardware audio processing (e.g., iOS VPIO). Lower latency. + /// Only applies to AudioSourcePlatform. Default: true. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool PreferHardware { + get { if ((_hasBits0 & 8) != 0) { return preferHardware_; } else { return PreferHardwareDefaultValue; } } + set { + _hasBits0 |= 8; + preferHardware_ = value; + } + } + /// Gets whether the "prefer_hardware" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasPreferHardware { + get { return (_hasBits0 & 8) != 0; } + } + /// Clears the value of the "prefer_hardware" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearPreferHardware() { + _hasBits0 &= ~8; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -10950,6 +11086,7 @@ public bool Equals(AudioSourceOptions other) { if (EchoCancellation != other.EchoCancellation) return false; if (NoiseSuppression != other.NoiseSuppression) return false; if (AutoGainControl != other.AutoGainControl) return false; + if (PreferHardware != other.PreferHardware) return false; return Equals(_unknownFields, other._unknownFields); } @@ -10960,6 +11097,7 @@ public override int GetHashCode() { if (HasEchoCancellation) hash ^= EchoCancellation.GetHashCode(); if (HasNoiseSuppression) hash ^= NoiseSuppression.GetHashCode(); if (HasAutoGainControl) hash ^= AutoGainControl.GetHashCode(); + if (HasPreferHardware) hash ^= PreferHardware.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -10990,6 +11128,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(24); output.WriteBool(AutoGainControl); } + if (HasPreferHardware) { + output.WriteRawTag(32); + output.WriteBool(PreferHardware); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -11012,6 +11154,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(24); output.WriteBool(AutoGainControl); } + if (HasPreferHardware) { + output.WriteRawTag(32); + output.WriteBool(PreferHardware); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -11031,6 +11177,9 @@ public int CalculateSize() { if (HasAutoGainControl) { size += 1 + 1; } + if (HasPreferHardware) { + size += 1 + 1; + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -11052,6 +11201,9 @@ public void MergeFrom(AudioSourceOptions other) { if (other.HasAutoGainControl) { AutoGainControl = other.AutoGainControl; } + if (other.HasPreferHardware) { + PreferHardware = other.PreferHardware; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -11083,6 +11235,10 @@ public void MergeFrom(pb::CodedInputStream input) { AutoGainControl = input.ReadBool(); break; } + case 32: { + PreferHardware = input.ReadBool(); + break; + } } } #endif @@ -11114,6 +11270,10 @@ public void MergeFrom(pb::CodedInputStream input) { AutoGainControl = input.ReadBool(); break; } + case 32: { + PreferHardware = input.ReadBool(); + break; + } } } } @@ -13137,6 +13297,3713 @@ public void MergeFrom(pb::CodedInputStream input) { } + /// + /// Information about an audio device. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class AudioDeviceInfo : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new AudioDeviceInfo()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.AudioFrameReflection.Descriptor.MessageTypes[46]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public AudioDeviceInfo() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public AudioDeviceInfo(AudioDeviceInfo other) : this() { + _hasBits0 = other._hasBits0; + index_ = other.index_; + name_ = other.name_; + guid_ = other.guid_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public AudioDeviceInfo Clone() { + return new AudioDeviceInfo(this); + } + + /// Field number for the "index" field. + public const int IndexFieldNumber = 1; + private readonly static uint IndexDefaultValue = 0; + + private uint index_; + /// + /// Device index (0-based). Note: indices can change when devices are added/removed. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint Index { + get { if ((_hasBits0 & 1) != 0) { return index_; } else { return IndexDefaultValue; } } + set { + _hasBits0 |= 1; + index_ = value; + } + } + /// Gets whether the "index" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasIndex { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "index" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearIndex() { + _hasBits0 &= ~1; + } + + /// Field number for the "name" field. + public const int NameFieldNumber = 2; + private readonly static string NameDefaultValue = ""; + + private string name_; + /// + /// Device name as reported by the operating system. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Name { + get { return name_ ?? NameDefaultValue; } + set { + name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "name" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasName { + get { return name_ != null; } + } + /// Clears the value of the "name" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearName() { + name_ = null; + } + + /// Field number for the "guid" field. + public const int GuidFieldNumber = 3; + private readonly static string GuidDefaultValue = ""; + + private string guid_; + /// + /// Platform-specific unique device identifier (GUID). + /// This is stable across device additions/removals and should be preferred + /// over index for device selection. Format varies by platform: + /// - Windows: Device interface path + /// - macOS: AudioObjectID as string + /// - Linux: ALSA/PulseAudio device identifier + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Guid { + get { return guid_ ?? GuidDefaultValue; } + set { + guid_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "guid" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasGuid { + get { return guid_ != null; } + } + /// Clears the value of the "guid" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearGuid() { + guid_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as AudioDeviceInfo); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(AudioDeviceInfo other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Index != other.Index) return false; + if (Name != other.Name) return false; + if (Guid != other.Guid) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasIndex) hash ^= Index.GetHashCode(); + if (HasName) hash ^= Name.GetHashCode(); + if (HasGuid) hash ^= Guid.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasIndex) { + output.WriteRawTag(8); + output.WriteUInt32(Index); + } + if (HasName) { + output.WriteRawTag(18); + output.WriteString(Name); + } + if (HasGuid) { + output.WriteRawTag(26); + output.WriteString(Guid); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasIndex) { + output.WriteRawTag(8); + output.WriteUInt32(Index); + } + if (HasName) { + output.WriteRawTag(18); + output.WriteString(Name); + } + if (HasGuid) { + output.WriteRawTag(26); + output.WriteString(Guid); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasIndex) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Index); + } + if (HasName) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + } + if (HasGuid) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Guid); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(AudioDeviceInfo other) { + if (other == null) { + return; + } + if (other.HasIndex) { + Index = other.Index; + } + if (other.HasName) { + Name = other.Name; + } + if (other.HasGuid) { + Guid = other.Guid; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + Index = input.ReadUInt32(); + break; + } + case 18: { + Name = input.ReadString(); + break; + } + case 26: { + Guid = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + Index = input.ReadUInt32(); + break; + } + case 18: { + Name = input.ReadString(); + break; + } + case 26: { + Guid = input.ReadString(); + break; + } + } + } + } + #endif + + } + + /// + /// Information about a PlatformAudio instance. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class PlatformAudioInfo : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PlatformAudioInfo()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.AudioFrameReflection.Descriptor.MessageTypes[47]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PlatformAudioInfo() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PlatformAudioInfo(PlatformAudioInfo other) : this() { + _hasBits0 = other._hasBits0; + recordingDeviceCount_ = other.recordingDeviceCount_; + playoutDeviceCount_ = other.playoutDeviceCount_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PlatformAudioInfo Clone() { + return new PlatformAudioInfo(this); + } + + /// Field number for the "recording_device_count" field. + public const int RecordingDeviceCountFieldNumber = 1; + private readonly static int RecordingDeviceCountDefaultValue = 0; + + private int recordingDeviceCount_; + /// + /// Number of available recording (microphone) devices. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int RecordingDeviceCount { + get { if ((_hasBits0 & 1) != 0) { return recordingDeviceCount_; } else { return RecordingDeviceCountDefaultValue; } } + set { + _hasBits0 |= 1; + recordingDeviceCount_ = value; + } + } + /// Gets whether the "recording_device_count" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRecordingDeviceCount { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "recording_device_count" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRecordingDeviceCount() { + _hasBits0 &= ~1; + } + + /// Field number for the "playout_device_count" field. + public const int PlayoutDeviceCountFieldNumber = 2; + private readonly static int PlayoutDeviceCountDefaultValue = 0; + + private int playoutDeviceCount_; + /// + /// Number of available playout (speaker) devices. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int PlayoutDeviceCount { + get { if ((_hasBits0 & 2) != 0) { return playoutDeviceCount_; } else { return PlayoutDeviceCountDefaultValue; } } + set { + _hasBits0 |= 2; + playoutDeviceCount_ = value; + } + } + /// Gets whether the "playout_device_count" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasPlayoutDeviceCount { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "playout_device_count" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearPlayoutDeviceCount() { + _hasBits0 &= ~2; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as PlatformAudioInfo); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(PlatformAudioInfo other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (RecordingDeviceCount != other.RecordingDeviceCount) return false; + if (PlayoutDeviceCount != other.PlayoutDeviceCount) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasRecordingDeviceCount) hash ^= RecordingDeviceCount.GetHashCode(); + if (HasPlayoutDeviceCount) hash ^= PlayoutDeviceCount.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasRecordingDeviceCount) { + output.WriteRawTag(8); + output.WriteInt32(RecordingDeviceCount); + } + if (HasPlayoutDeviceCount) { + output.WriteRawTag(16); + output.WriteInt32(PlayoutDeviceCount); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasRecordingDeviceCount) { + output.WriteRawTag(8); + output.WriteInt32(RecordingDeviceCount); + } + if (HasPlayoutDeviceCount) { + output.WriteRawTag(16); + output.WriteInt32(PlayoutDeviceCount); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasRecordingDeviceCount) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(RecordingDeviceCount); + } + if (HasPlayoutDeviceCount) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(PlayoutDeviceCount); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(PlatformAudioInfo other) { + if (other == null) { + return; + } + if (other.HasRecordingDeviceCount) { + RecordingDeviceCount = other.RecordingDeviceCount; + } + if (other.HasPlayoutDeviceCount) { + PlayoutDeviceCount = other.PlayoutDeviceCount; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + RecordingDeviceCount = input.ReadInt32(); + break; + } + case 16: { + PlayoutDeviceCount = input.ReadInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + RecordingDeviceCount = input.ReadInt32(); + break; + } + case 16: { + PlayoutDeviceCount = input.ReadInt32(); + break; + } + } + } + } + #endif + + } + + /// + /// Owned PlatformAudio handle with info. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class OwnedPlatformAudio : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new OwnedPlatformAudio()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.AudioFrameReflection.Descriptor.MessageTypes[48]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public OwnedPlatformAudio() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public OwnedPlatformAudio(OwnedPlatformAudio other) : this() { + handle_ = other.handle_ != null ? other.handle_.Clone() : null; + info_ = other.info_ != null ? other.info_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public OwnedPlatformAudio Clone() { + return new OwnedPlatformAudio(this); + } + + /// Field number for the "handle" field. + public const int HandleFieldNumber = 1; + private global::LiveKit.Proto.FfiOwnedHandle handle_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.FfiOwnedHandle Handle { + get { return handle_; } + set { + handle_ = value; + } + } + + /// Field number for the "info" field. + public const int InfoFieldNumber = 2; + private global::LiveKit.Proto.PlatformAudioInfo info_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.PlatformAudioInfo Info { + get { return info_; } + set { + info_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as OwnedPlatformAudio); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(OwnedPlatformAudio other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (!object.Equals(Handle, other.Handle)) return false; + if (!object.Equals(Info, other.Info)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (handle_ != null) hash ^= Handle.GetHashCode(); + if (info_ != null) hash ^= Info.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (handle_ != null) { + output.WriteRawTag(10); + output.WriteMessage(Handle); + } + if (info_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Info); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (handle_ != null) { + output.WriteRawTag(10); + output.WriteMessage(Handle); + } + if (info_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Info); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (handle_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Handle); + } + if (info_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Info); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(OwnedPlatformAudio other) { + if (other == null) { + return; + } + if (other.handle_ != null) { + if (handle_ == null) { + Handle = new global::LiveKit.Proto.FfiOwnedHandle(); + } + Handle.MergeFrom(other.Handle); + } + if (other.info_ != null) { + if (info_ == null) { + Info = new global::LiveKit.Proto.PlatformAudioInfo(); + } + Info.MergeFrom(other.Info); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + if (handle_ == null) { + Handle = new global::LiveKit.Proto.FfiOwnedHandle(); + } + input.ReadMessage(Handle); + break; + } + case 18: { + if (info_ == null) { + Info = new global::LiveKit.Proto.PlatformAudioInfo(); + } + input.ReadMessage(Info); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + if (handle_ == null) { + Handle = new global::LiveKit.Proto.FfiOwnedHandle(); + } + input.ReadMessage(Handle); + break; + } + case 18: { + if (info_ == null) { + Info = new global::LiveKit.Proto.PlatformAudioInfo(); + } + input.ReadMessage(Info); + break; + } + } + } + } + #endif + + } + + /// + /// Create a new PlatformAudio instance. + /// + /// This enables the platform ADM for microphone capture and speaker playout. + /// If another PlatformAudio instance exists, this reuses the same underlying ADM. + /// + /// The returned handle must be kept alive while platform audio is needed. + /// When all handles are released, the ADM is automatically disabled. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class NewPlatformAudioRequest : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new NewPlatformAudioRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.AudioFrameReflection.Descriptor.MessageTypes[49]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public NewPlatformAudioRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public NewPlatformAudioRequest(NewPlatformAudioRequest other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public NewPlatformAudioRequest Clone() { + return new NewPlatformAudioRequest(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as NewPlatformAudioRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(NewPlatformAudioRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(NewPlatformAudioRequest other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class NewPlatformAudioResponse : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new NewPlatformAudioResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.AudioFrameReflection.Descriptor.MessageTypes[50]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public NewPlatformAudioResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public NewPlatformAudioResponse(NewPlatformAudioResponse other) : this() { + switch (other.MessageCase) { + case MessageOneofCase.PlatformAudio: + PlatformAudio = other.PlatformAudio.Clone(); + break; + case MessageOneofCase.Error: + Error = other.Error; + break; + } + + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public NewPlatformAudioResponse Clone() { + return new NewPlatformAudioResponse(this); + } + + /// Field number for the "platform_audio" field. + public const int PlatformAudioFieldNumber = 1; + /// + /// The PlatformAudio handle on success. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.OwnedPlatformAudio PlatformAudio { + get { return messageCase_ == MessageOneofCase.PlatformAudio ? (global::LiveKit.Proto.OwnedPlatformAudio) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.PlatformAudio; + } + } + + /// Field number for the "error" field. + public const int ErrorFieldNumber = 2; + /// + /// Error message if creation failed. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Error { + get { return HasError ? (string) message_ : ""; } + set { + message_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + messageCase_ = MessageOneofCase.Error; + } + } + /// Gets whether the "error" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasError { + get { return messageCase_ == MessageOneofCase.Error; } + } + /// Clears the value of the oneof if it's currently set to "error" + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearError() { + if (HasError) { + ClearMessage(); + } + } + + private object message_; + /// Enum of possible cases for the "message" oneof. + public enum MessageOneofCase { + None = 0, + PlatformAudio = 1, + Error = 2, + } + private MessageOneofCase messageCase_ = MessageOneofCase.None; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MessageOneofCase MessageCase { + get { return messageCase_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearMessage() { + messageCase_ = MessageOneofCase.None; + message_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as NewPlatformAudioResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(NewPlatformAudioResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (!object.Equals(PlatformAudio, other.PlatformAudio)) return false; + if (Error != other.Error) return false; + if (MessageCase != other.MessageCase) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (messageCase_ == MessageOneofCase.PlatformAudio) hash ^= PlatformAudio.GetHashCode(); + if (HasError) hash ^= Error.GetHashCode(); + hash ^= (int) messageCase_; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (messageCase_ == MessageOneofCase.PlatformAudio) { + output.WriteRawTag(10); + output.WriteMessage(PlatformAudio); + } + if (HasError) { + output.WriteRawTag(18); + output.WriteString(Error); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (messageCase_ == MessageOneofCase.PlatformAudio) { + output.WriteRawTag(10); + output.WriteMessage(PlatformAudio); + } + if (HasError) { + output.WriteRawTag(18); + output.WriteString(Error); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (messageCase_ == MessageOneofCase.PlatformAudio) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(PlatformAudio); + } + if (HasError) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Error); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(NewPlatformAudioResponse other) { + if (other == null) { + return; + } + switch (other.MessageCase) { + case MessageOneofCase.PlatformAudio: + if (PlatformAudio == null) { + PlatformAudio = new global::LiveKit.Proto.OwnedPlatformAudio(); + } + PlatformAudio.MergeFrom(other.PlatformAudio); + break; + case MessageOneofCase.Error: + Error = other.Error; + break; + } + + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + global::LiveKit.Proto.OwnedPlatformAudio subBuilder = new global::LiveKit.Proto.OwnedPlatformAudio(); + if (messageCase_ == MessageOneofCase.PlatformAudio) { + subBuilder.MergeFrom(PlatformAudio); + } + input.ReadMessage(subBuilder); + PlatformAudio = subBuilder; + break; + } + case 18: { + Error = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + global::LiveKit.Proto.OwnedPlatformAudio subBuilder = new global::LiveKit.Proto.OwnedPlatformAudio(); + if (messageCase_ == MessageOneofCase.PlatformAudio) { + subBuilder.MergeFrom(PlatformAudio); + } + input.ReadMessage(subBuilder); + PlatformAudio = subBuilder; + break; + } + case 18: { + Error = input.ReadString(); + break; + } + } + } + } + #endif + + } + + /// + /// Get available audio devices. + /// + /// Returns lists of available recording (microphone) and playout (speaker) devices. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class GetAudioDevicesRequest : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new GetAudioDevicesRequest()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.AudioFrameReflection.Descriptor.MessageTypes[51]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GetAudioDevicesRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GetAudioDevicesRequest(GetAudioDevicesRequest other) : this() { + _hasBits0 = other._hasBits0; + platformAudioHandle_ = other.platformAudioHandle_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GetAudioDevicesRequest Clone() { + return new GetAudioDevicesRequest(this); + } + + /// Field number for the "platform_audio_handle" field. + public const int PlatformAudioHandleFieldNumber = 1; + private readonly static ulong PlatformAudioHandleDefaultValue = 0UL; + + private ulong platformAudioHandle_; + /// + /// The PlatformAudio handle. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong PlatformAudioHandle { + get { if ((_hasBits0 & 1) != 0) { return platformAudioHandle_; } else { return PlatformAudioHandleDefaultValue; } } + set { + _hasBits0 |= 1; + platformAudioHandle_ = value; + } + } + /// Gets whether the "platform_audio_handle" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasPlatformAudioHandle { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "platform_audio_handle" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearPlatformAudioHandle() { + _hasBits0 &= ~1; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as GetAudioDevicesRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(GetAudioDevicesRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (PlatformAudioHandle != other.PlatformAudioHandle) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasPlatformAudioHandle) hash ^= PlatformAudioHandle.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasPlatformAudioHandle) { + output.WriteRawTag(8); + output.WriteUInt64(PlatformAudioHandle); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasPlatformAudioHandle) { + output.WriteRawTag(8); + output.WriteUInt64(PlatformAudioHandle); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasPlatformAudioHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(PlatformAudioHandle); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(GetAudioDevicesRequest other) { + if (other == null) { + return; + } + if (other.HasPlatformAudioHandle) { + PlatformAudioHandle = other.PlatformAudioHandle; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + PlatformAudioHandle = input.ReadUInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + PlatformAudioHandle = input.ReadUInt64(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class GetAudioDevicesResponse : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new GetAudioDevicesResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.AudioFrameReflection.Descriptor.MessageTypes[52]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GetAudioDevicesResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GetAudioDevicesResponse(GetAudioDevicesResponse other) : this() { + playoutDevices_ = other.playoutDevices_.Clone(); + recordingDevices_ = other.recordingDevices_.Clone(); + error_ = other.error_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GetAudioDevicesResponse Clone() { + return new GetAudioDevicesResponse(this); + } + + /// Field number for the "playout_devices" field. + public const int PlayoutDevicesFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_playoutDevices_codec + = pb::FieldCodec.ForMessage(10, global::LiveKit.Proto.AudioDeviceInfo.Parser); + private readonly pbc::RepeatedField playoutDevices_ = new pbc::RepeatedField(); + /// + /// Available playout devices (speakers/headphones). + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField PlayoutDevices { + get { return playoutDevices_; } + } + + /// Field number for the "recording_devices" field. + public const int RecordingDevicesFieldNumber = 2; + private static readonly pb::FieldCodec _repeated_recordingDevices_codec + = pb::FieldCodec.ForMessage(18, global::LiveKit.Proto.AudioDeviceInfo.Parser); + private readonly pbc::RepeatedField recordingDevices_ = new pbc::RepeatedField(); + /// + /// Available recording devices (microphones). + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField RecordingDevices { + get { return recordingDevices_; } + } + + /// Field number for the "error" field. + public const int ErrorFieldNumber = 3; + private readonly static string ErrorDefaultValue = ""; + + private string error_; + /// + /// Error message if enumeration failed, empty/absent on success. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Error { + get { return error_ ?? ErrorDefaultValue; } + set { + error_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "error" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasError { + get { return error_ != null; } + } + /// Clears the value of the "error" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearError() { + error_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as GetAudioDevicesResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(GetAudioDevicesResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!playoutDevices_.Equals(other.playoutDevices_)) return false; + if(!recordingDevices_.Equals(other.recordingDevices_)) return false; + if (Error != other.Error) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + hash ^= playoutDevices_.GetHashCode(); + hash ^= recordingDevices_.GetHashCode(); + if (HasError) hash ^= Error.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + playoutDevices_.WriteTo(output, _repeated_playoutDevices_codec); + recordingDevices_.WriteTo(output, _repeated_recordingDevices_codec); + if (HasError) { + output.WriteRawTag(26); + output.WriteString(Error); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + playoutDevices_.WriteTo(ref output, _repeated_playoutDevices_codec); + recordingDevices_.WriteTo(ref output, _repeated_recordingDevices_codec); + if (HasError) { + output.WriteRawTag(26); + output.WriteString(Error); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + size += playoutDevices_.CalculateSize(_repeated_playoutDevices_codec); + size += recordingDevices_.CalculateSize(_repeated_recordingDevices_codec); + if (HasError) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Error); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(GetAudioDevicesResponse other) { + if (other == null) { + return; + } + playoutDevices_.Add(other.playoutDevices_); + recordingDevices_.Add(other.recordingDevices_); + if (other.HasError) { + Error = other.Error; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + playoutDevices_.AddEntriesFrom(input, _repeated_playoutDevices_codec); + break; + } + case 18: { + recordingDevices_.AddEntriesFrom(input, _repeated_recordingDevices_codec); + break; + } + case 26: { + Error = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + playoutDevices_.AddEntriesFrom(ref input, _repeated_playoutDevices_codec); + break; + } + case 18: { + recordingDevices_.AddEntriesFrom(ref input, _repeated_recordingDevices_codec); + break; + } + case 26: { + Error = input.ReadString(); + break; + } + } + } + } + #endif + + } + + /// + /// Set the recording device (microphone). + /// + /// Call this before creating audio tracks to select which microphone to use. + /// Use the GUID from AudioDeviceInfo for stable device selection across hot-plug events. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class SetRecordingDeviceRequest : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SetRecordingDeviceRequest()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.AudioFrameReflection.Descriptor.MessageTypes[53]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SetRecordingDeviceRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SetRecordingDeviceRequest(SetRecordingDeviceRequest other) : this() { + _hasBits0 = other._hasBits0; + platformAudioHandle_ = other.platformAudioHandle_; + deviceId_ = other.deviceId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SetRecordingDeviceRequest Clone() { + return new SetRecordingDeviceRequest(this); + } + + /// Field number for the "platform_audio_handle" field. + public const int PlatformAudioHandleFieldNumber = 1; + private readonly static ulong PlatformAudioHandleDefaultValue = 0UL; + + private ulong platformAudioHandle_; + /// + /// The PlatformAudio handle. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong PlatformAudioHandle { + get { if ((_hasBits0 & 1) != 0) { return platformAudioHandle_; } else { return PlatformAudioHandleDefaultValue; } } + set { + _hasBits0 |= 1; + platformAudioHandle_ = value; + } + } + /// Gets whether the "platform_audio_handle" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasPlatformAudioHandle { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "platform_audio_handle" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearPlatformAudioHandle() { + _hasBits0 &= ~1; + } + + /// Field number for the "device_id" field. + public const int DeviceIdFieldNumber = 2; + private readonly static string DeviceIdDefaultValue = ""; + + private string deviceId_; + /// + /// Device GUID from AudioDeviceInfo.guid - stable across device additions/removals. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string DeviceId { + get { return deviceId_ ?? DeviceIdDefaultValue; } + set { + deviceId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "device_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasDeviceId { + get { return deviceId_ != null; } + } + /// Clears the value of the "device_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearDeviceId() { + deviceId_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as SetRecordingDeviceRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(SetRecordingDeviceRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (PlatformAudioHandle != other.PlatformAudioHandle) return false; + if (DeviceId != other.DeviceId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasPlatformAudioHandle) hash ^= PlatformAudioHandle.GetHashCode(); + if (HasDeviceId) hash ^= DeviceId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasPlatformAudioHandle) { + output.WriteRawTag(8); + output.WriteUInt64(PlatformAudioHandle); + } + if (HasDeviceId) { + output.WriteRawTag(18); + output.WriteString(DeviceId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasPlatformAudioHandle) { + output.WriteRawTag(8); + output.WriteUInt64(PlatformAudioHandle); + } + if (HasDeviceId) { + output.WriteRawTag(18); + output.WriteString(DeviceId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasPlatformAudioHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(PlatformAudioHandle); + } + if (HasDeviceId) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(DeviceId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(SetRecordingDeviceRequest other) { + if (other == null) { + return; + } + if (other.HasPlatformAudioHandle) { + PlatformAudioHandle = other.PlatformAudioHandle; + } + if (other.HasDeviceId) { + DeviceId = other.DeviceId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + PlatformAudioHandle = input.ReadUInt64(); + break; + } + case 18: { + DeviceId = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + PlatformAudioHandle = input.ReadUInt64(); + break; + } + case 18: { + DeviceId = input.ReadString(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class SetRecordingDeviceResponse : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SetRecordingDeviceResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.AudioFrameReflection.Descriptor.MessageTypes[54]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SetRecordingDeviceResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SetRecordingDeviceResponse(SetRecordingDeviceResponse other) : this() { + error_ = other.error_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SetRecordingDeviceResponse Clone() { + return new SetRecordingDeviceResponse(this); + } + + /// Field number for the "error" field. + public const int ErrorFieldNumber = 1; + private readonly static string ErrorDefaultValue = ""; + + private string error_; + /// + /// Error message if the operation failed: + /// - "Device not found" if GUID doesn't match any device + /// - Other platform-specific errors + /// Empty/absent on success. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Error { + get { return error_ ?? ErrorDefaultValue; } + set { + error_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "error" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasError { + get { return error_ != null; } + } + /// Clears the value of the "error" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearError() { + error_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as SetRecordingDeviceResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(SetRecordingDeviceResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Error != other.Error) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasError) hash ^= Error.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasError) { + output.WriteRawTag(10); + output.WriteString(Error); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasError) { + output.WriteRawTag(10); + output.WriteString(Error); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasError) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Error); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(SetRecordingDeviceResponse other) { + if (other == null) { + return; + } + if (other.HasError) { + Error = other.Error; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Error = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Error = input.ReadString(); + break; + } + } + } + } + #endif + + } + + /// + /// Set the playout device (speaker/headphones). + /// + /// Call this before connecting to select which speaker to use for audio output. + /// Use the GUID from AudioDeviceInfo for stable device selection across hot-plug events. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class SetPlayoutDeviceRequest : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SetPlayoutDeviceRequest()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.AudioFrameReflection.Descriptor.MessageTypes[55]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SetPlayoutDeviceRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SetPlayoutDeviceRequest(SetPlayoutDeviceRequest other) : this() { + _hasBits0 = other._hasBits0; + platformAudioHandle_ = other.platformAudioHandle_; + deviceId_ = other.deviceId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SetPlayoutDeviceRequest Clone() { + return new SetPlayoutDeviceRequest(this); + } + + /// Field number for the "platform_audio_handle" field. + public const int PlatformAudioHandleFieldNumber = 1; + private readonly static ulong PlatformAudioHandleDefaultValue = 0UL; + + private ulong platformAudioHandle_; + /// + /// The PlatformAudio handle. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong PlatformAudioHandle { + get { if ((_hasBits0 & 1) != 0) { return platformAudioHandle_; } else { return PlatformAudioHandleDefaultValue; } } + set { + _hasBits0 |= 1; + platformAudioHandle_ = value; + } + } + /// Gets whether the "platform_audio_handle" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasPlatformAudioHandle { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "platform_audio_handle" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearPlatformAudioHandle() { + _hasBits0 &= ~1; + } + + /// Field number for the "device_id" field. + public const int DeviceIdFieldNumber = 2; + private readonly static string DeviceIdDefaultValue = ""; + + private string deviceId_; + /// + /// Device GUID from AudioDeviceInfo.guid - stable across device additions/removals. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string DeviceId { + get { return deviceId_ ?? DeviceIdDefaultValue; } + set { + deviceId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "device_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasDeviceId { + get { return deviceId_ != null; } + } + /// Clears the value of the "device_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearDeviceId() { + deviceId_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as SetPlayoutDeviceRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(SetPlayoutDeviceRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (PlatformAudioHandle != other.PlatformAudioHandle) return false; + if (DeviceId != other.DeviceId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasPlatformAudioHandle) hash ^= PlatformAudioHandle.GetHashCode(); + if (HasDeviceId) hash ^= DeviceId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasPlatformAudioHandle) { + output.WriteRawTag(8); + output.WriteUInt64(PlatformAudioHandle); + } + if (HasDeviceId) { + output.WriteRawTag(18); + output.WriteString(DeviceId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasPlatformAudioHandle) { + output.WriteRawTag(8); + output.WriteUInt64(PlatformAudioHandle); + } + if (HasDeviceId) { + output.WriteRawTag(18); + output.WriteString(DeviceId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasPlatformAudioHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(PlatformAudioHandle); + } + if (HasDeviceId) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(DeviceId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(SetPlayoutDeviceRequest other) { + if (other == null) { + return; + } + if (other.HasPlatformAudioHandle) { + PlatformAudioHandle = other.PlatformAudioHandle; + } + if (other.HasDeviceId) { + DeviceId = other.DeviceId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + PlatformAudioHandle = input.ReadUInt64(); + break; + } + case 18: { + DeviceId = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + PlatformAudioHandle = input.ReadUInt64(); + break; + } + case 18: { + DeviceId = input.ReadString(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class SetPlayoutDeviceResponse : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SetPlayoutDeviceResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.AudioFrameReflection.Descriptor.MessageTypes[56]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SetPlayoutDeviceResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SetPlayoutDeviceResponse(SetPlayoutDeviceResponse other) : this() { + error_ = other.error_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SetPlayoutDeviceResponse Clone() { + return new SetPlayoutDeviceResponse(this); + } + + /// Field number for the "error" field. + public const int ErrorFieldNumber = 1; + private readonly static string ErrorDefaultValue = ""; + + private string error_; + /// + /// Error message if the operation failed: + /// - "Device not found" if GUID doesn't match any device + /// - Other platform-specific errors + /// Empty/absent on success. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Error { + get { return error_ ?? ErrorDefaultValue; } + set { + error_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "error" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasError { + get { return error_ != null; } + } + /// Clears the value of the "error" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearError() { + error_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as SetPlayoutDeviceResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(SetPlayoutDeviceResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Error != other.Error) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasError) hash ^= Error.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasError) { + output.WriteRawTag(10); + output.WriteString(Error); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasError) { + output.WriteRawTag(10); + output.WriteString(Error); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasError) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Error); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(SetPlayoutDeviceResponse other) { + if (other == null) { + return; + } + if (other.HasError) { + Error = other.Error; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Error = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Error = input.ReadString(); + break; + } + } + } + } + #endif + + } + + /// + /// Start recording from the microphone. + /// + /// Recording is started automatically when PlatformAudio is created. + /// Use this to resume recording after calling StopRecording. + /// This also turns on the system's recording privacy indicator. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class StartRecordingRequest : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new StartRecordingRequest()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.AudioFrameReflection.Descriptor.MessageTypes[57]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public StartRecordingRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public StartRecordingRequest(StartRecordingRequest other) : this() { + _hasBits0 = other._hasBits0; + platformAudioHandle_ = other.platformAudioHandle_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public StartRecordingRequest Clone() { + return new StartRecordingRequest(this); + } + + /// Field number for the "platform_audio_handle" field. + public const int PlatformAudioHandleFieldNumber = 1; + private readonly static ulong PlatformAudioHandleDefaultValue = 0UL; + + private ulong platformAudioHandle_; + /// + /// The PlatformAudio handle. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong PlatformAudioHandle { + get { if ((_hasBits0 & 1) != 0) { return platformAudioHandle_; } else { return PlatformAudioHandleDefaultValue; } } + set { + _hasBits0 |= 1; + platformAudioHandle_ = value; + } + } + /// Gets whether the "platform_audio_handle" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasPlatformAudioHandle { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "platform_audio_handle" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearPlatformAudioHandle() { + _hasBits0 &= ~1; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as StartRecordingRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(StartRecordingRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (PlatformAudioHandle != other.PlatformAudioHandle) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasPlatformAudioHandle) hash ^= PlatformAudioHandle.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasPlatformAudioHandle) { + output.WriteRawTag(8); + output.WriteUInt64(PlatformAudioHandle); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasPlatformAudioHandle) { + output.WriteRawTag(8); + output.WriteUInt64(PlatformAudioHandle); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasPlatformAudioHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(PlatformAudioHandle); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(StartRecordingRequest other) { + if (other == null) { + return; + } + if (other.HasPlatformAudioHandle) { + PlatformAudioHandle = other.PlatformAudioHandle; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + PlatformAudioHandle = input.ReadUInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + PlatformAudioHandle = input.ReadUInt64(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class StartRecordingResponse : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new StartRecordingResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.AudioFrameReflection.Descriptor.MessageTypes[58]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public StartRecordingResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public StartRecordingResponse(StartRecordingResponse other) : this() { + error_ = other.error_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public StartRecordingResponse Clone() { + return new StartRecordingResponse(this); + } + + /// Field number for the "error" field. + public const int ErrorFieldNumber = 1; + private readonly static string ErrorDefaultValue = ""; + + private string error_; + /// + /// Error message if the operation failed. + /// Empty/absent on success. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Error { + get { return error_ ?? ErrorDefaultValue; } + set { + error_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "error" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasError { + get { return error_ != null; } + } + /// Clears the value of the "error" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearError() { + error_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as StartRecordingResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(StartRecordingResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Error != other.Error) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasError) hash ^= Error.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasError) { + output.WriteRawTag(10); + output.WriteString(Error); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasError) { + output.WriteRawTag(10); + output.WriteString(Error); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasError) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Error); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(StartRecordingResponse other) { + if (other == null) { + return; + } + if (other.HasError) { + Error = other.Error; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Error = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Error = input.ReadString(); + break; + } + } + } + } + #endif + + } + + /// + /// Stop recording from the microphone. + /// + /// Use this to temporarily stop recording without disposing PlatformAudio. + /// This will turn off the system's recording privacy indicator (e.g., on macOS/iOS). + /// Call StartRecording to resume recording. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class StopRecordingRequest : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new StopRecordingRequest()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.AudioFrameReflection.Descriptor.MessageTypes[59]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public StopRecordingRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public StopRecordingRequest(StopRecordingRequest other) : this() { + _hasBits0 = other._hasBits0; + platformAudioHandle_ = other.platformAudioHandle_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public StopRecordingRequest Clone() { + return new StopRecordingRequest(this); + } + + /// Field number for the "platform_audio_handle" field. + public const int PlatformAudioHandleFieldNumber = 1; + private readonly static ulong PlatformAudioHandleDefaultValue = 0UL; + + private ulong platformAudioHandle_; + /// + /// The PlatformAudio handle. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong PlatformAudioHandle { + get { if ((_hasBits0 & 1) != 0) { return platformAudioHandle_; } else { return PlatformAudioHandleDefaultValue; } } + set { + _hasBits0 |= 1; + platformAudioHandle_ = value; + } + } + /// Gets whether the "platform_audio_handle" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasPlatformAudioHandle { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "platform_audio_handle" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearPlatformAudioHandle() { + _hasBits0 &= ~1; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as StopRecordingRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(StopRecordingRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (PlatformAudioHandle != other.PlatformAudioHandle) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasPlatformAudioHandle) hash ^= PlatformAudioHandle.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasPlatformAudioHandle) { + output.WriteRawTag(8); + output.WriteUInt64(PlatformAudioHandle); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasPlatformAudioHandle) { + output.WriteRawTag(8); + output.WriteUInt64(PlatformAudioHandle); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasPlatformAudioHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(PlatformAudioHandle); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(StopRecordingRequest other) { + if (other == null) { + return; + } + if (other.HasPlatformAudioHandle) { + PlatformAudioHandle = other.PlatformAudioHandle; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + PlatformAudioHandle = input.ReadUInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + PlatformAudioHandle = input.ReadUInt64(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class StopRecordingResponse : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new StopRecordingResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.AudioFrameReflection.Descriptor.MessageTypes[60]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public StopRecordingResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public StopRecordingResponse(StopRecordingResponse other) : this() { + error_ = other.error_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public StopRecordingResponse Clone() { + return new StopRecordingResponse(this); + } + + /// Field number for the "error" field. + public const int ErrorFieldNumber = 1; + private readonly static string ErrorDefaultValue = ""; + + private string error_; + /// + /// Error message if the operation failed. + /// Empty/absent on success. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Error { + get { return error_ ?? ErrorDefaultValue; } + set { + error_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "error" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasError { + get { return error_ != null; } + } + /// Clears the value of the "error" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearError() { + error_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as StopRecordingResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(StopRecordingResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Error != other.Error) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasError) hash ^= Error.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasError) { + output.WriteRawTag(10); + output.WriteString(Error); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasError) { + output.WriteRawTag(10); + output.WriteString(Error); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasError) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Error); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(StopRecordingResponse other) { + if (other == null) { + return; + } + if (other.HasError) { + Error = other.Error; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Error = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Error = input.ReadString(); + break; + } + } + } + } + #endif + + } + #endregion } diff --git a/Runtime/Scripts/Proto/DataTrack.cs b/Runtime/Scripts/Proto/DataTrack.cs index 32ce5889..de0a6934 100644 --- a/Runtime/Scripts/Proto/DataTrack.cs +++ b/Runtime/Scripts/Proto/DataTrack.cs @@ -76,43 +76,44 @@ static DataTrackReflection() { "by5EYXRhVHJhY2tTdHJlYW1GcmFtZVJlY2VpdmVkSAASMAoDZW9zGAMgASgL", "MiEubGl2ZWtpdC5wcm90by5EYXRhVHJhY2tTdHJlYW1FT1NIAEIICgZkZXRh", "aWwiTAocRGF0YVRyYWNrU3RyZWFtRnJhbWVSZWNlaXZlZBIsCgVmcmFtZRgB", - "IAIoCzIdLmxpdmVraXQucHJvdG8uRGF0YVRyYWNrRnJhbWUiIwoSRGF0YVRy", - "YWNrU3RyZWFtRU9TEg0KBWVycm9yGAEgASgJKocDChJEYXRhVHJhY2tFcnJv", - "ckNvZGUSIQodREFUQV9UUkFDS19FUlJPUl9DT0RFX1VOS05PV04QABIoCiRE", - "QVRBX1RSQUNLX0VSUk9SX0NPREVfSU5WQUxJRF9IQU5ETEUQARIuCipEQVRB", - "X1RSQUNLX0VSUk9SX0NPREVfRFVQTElDQVRFX1RSQUNLX05BTUUQAhIrCidE", - "QVRBX1RSQUNLX0VSUk9SX0NPREVfVFJBQ0tfVU5QVUJMSVNIRUQQAxIlCiFE", - "QVRBX1RSQUNLX0VSUk9SX0NPREVfQlVGRkVSX0ZVTEwQBBItCilEQVRBX1RS", - "QUNLX0VSUk9SX0NPREVfU1VCU0NSSVBUSU9OX0NMT1NFRBAFEiMKH0RBVEFf", - "VFJBQ0tfRVJST1JfQ09ERV9DQU5DRUxMRUQQBhIoCiREQVRBX1RSQUNLX0VS", - "Uk9SX0NPREVfUFJPVE9DT0xfRVJST1IQBxIiCh5EQVRBX1RSQUNLX0VSUk9S", - "X0NPREVfSU5URVJOQUwQCCrzAwoZUHVibGlzaERhdGFUcmFja0Vycm9yQ29k", - "ZRIpCiVQVUJMSVNIX0RBVEFfVFJBQ0tfRVJST1JfQ09ERV9VTktOT1dOEAAS", - "MAosUFVCTElTSF9EQVRBX1RSQUNLX0VSUk9SX0NPREVfSU5WQUxJRF9IQU5E", - "TEUQARIwCixQVUJMSVNIX0RBVEFfVFJBQ0tfRVJST1JfQ09ERV9EVVBMSUNB", - "VEVfTkFNRRACEikKJVBVQkxJU0hfREFUQV9UUkFDS19FUlJPUl9DT0RFX1RJ", - "TUVPVVQQAxIuCipQVUJMSVNIX0RBVEFfVFJBQ0tfRVJST1JfQ09ERV9ESVND", - "T05ORUNURUQQBBItCilQVUJMSVNIX0RBVEFfVFJBQ0tfRVJST1JfQ09ERV9O", - "T1RfQUxMT1dFRBAFEi4KKlBVQkxJU0hfREFUQV9UUkFDS19FUlJPUl9DT0RF", - "X0lOVkFMSURfTkFNRRAGEi8KK1BVQkxJU0hfREFUQV9UUkFDS19FUlJPUl9D", - "T0RFX0xJTUlUX1JFQUNIRUQQBxIwCixQVUJMSVNIX0RBVEFfVFJBQ0tfRVJS", - "T1JfQ09ERV9QUk9UT0NPTF9FUlJPUhAIEioKJlBVQkxJU0hfREFUQV9UUkFD", - "S19FUlJPUl9DT0RFX0lOVEVSTkFMEAkqrwIKHkxvY2FsRGF0YVRyYWNrVHJ5", - "UHVzaEVycm9yQ29kZRIwCixMT0NBTF9EQVRBX1RSQUNLX1RSWV9QVVNIX0VS", - "Uk9SX0NPREVfVU5LTk9XThAAEjcKM0xPQ0FMX0RBVEFfVFJBQ0tfVFJZX1BV", - "U0hfRVJST1JfQ09ERV9JTlZBTElEX0hBTkRMRRABEjoKNkxPQ0FMX0RBVEFf", - "VFJBQ0tfVFJZX1BVU0hfRVJST1JfQ09ERV9UUkFDS19VTlBVQkxJU0hFRBAC", - "EjMKL0xPQ0FMX0RBVEFfVFJBQ0tfVFJZX1BVU0hfRVJST1JfQ09ERV9RVUVV", - "RV9GVUxMEAMSMQotTE9DQUxfREFUQV9UUkFDS19UUllfUFVTSF9FUlJPUl9D", - "T0RFX0lOVEVSTkFMEAQq8AIKG1N1YnNjcmliZURhdGFUcmFja0Vycm9yQ29k", - "ZRIrCidTVUJTQ1JJQkVfREFUQV9UUkFDS19FUlJPUl9DT0RFX1VOS05PV04Q", - "ABIyCi5TVUJTQ1JJQkVfREFUQV9UUkFDS19FUlJPUl9DT0RFX0lOVkFMSURf", - "SEFORExFEAESLworU1VCU0NSSUJFX0RBVEFfVFJBQ0tfRVJST1JfQ09ERV9V", - "TlBVQkxJU0hFRBACEisKJ1NVQlNDUklCRV9EQVRBX1RSQUNLX0VSUk9SX0NP", - "REVfVElNRU9VVBADEjAKLFNVQlNDUklCRV9EQVRBX1RSQUNLX0VSUk9SX0NP", - "REVfRElTQ09OTkVDVEVEEAQSMgouU1VCU0NSSUJFX0RBVEFfVFJBQ0tfRVJS", - "T1JfQ09ERV9QUk9UT0NPTF9FUlJPUhAFEiwKKFNVQlNDUklCRV9EQVRBX1RS", - "QUNLX0VSUk9SX0NPREVfSU5URVJOQUwQBkIQqgINTGl2ZUtpdC5Qcm90bw==")); + "IAIoCzIdLmxpdmVraXQucHJvdG8uRGF0YVRyYWNrRnJhbWUiSwoSRGF0YVRy", + "YWNrU3RyZWFtRU9TEjUKBWVycm9yGAEgASgLMiYubGl2ZWtpdC5wcm90by5T", + "dWJzY3JpYmVEYXRhVHJhY2tFcnJvciqHAwoSRGF0YVRyYWNrRXJyb3JDb2Rl", + "EiEKHURBVEFfVFJBQ0tfRVJST1JfQ09ERV9VTktOT1dOEAASKAokREFUQV9U", + "UkFDS19FUlJPUl9DT0RFX0lOVkFMSURfSEFORExFEAESLgoqREFUQV9UUkFD", + "S19FUlJPUl9DT0RFX0RVUExJQ0FURV9UUkFDS19OQU1FEAISKwonREFUQV9U", + "UkFDS19FUlJPUl9DT0RFX1RSQUNLX1VOUFVCTElTSEVEEAMSJQohREFUQV9U", + "UkFDS19FUlJPUl9DT0RFX0JVRkZFUl9GVUxMEAQSLQopREFUQV9UUkFDS19F", + "UlJPUl9DT0RFX1NVQlNDUklQVElPTl9DTE9TRUQQBRIjCh9EQVRBX1RSQUNL", + "X0VSUk9SX0NPREVfQ0FOQ0VMTEVEEAYSKAokREFUQV9UUkFDS19FUlJPUl9D", + "T0RFX1BST1RPQ09MX0VSUk9SEAcSIgoeREFUQV9UUkFDS19FUlJPUl9DT0RF", + "X0lOVEVSTkFMEAgq8wMKGVB1Ymxpc2hEYXRhVHJhY2tFcnJvckNvZGUSKQol", + "UFVCTElTSF9EQVRBX1RSQUNLX0VSUk9SX0NPREVfVU5LTk9XThAAEjAKLFBV", + "QkxJU0hfREFUQV9UUkFDS19FUlJPUl9DT0RFX0lOVkFMSURfSEFORExFEAES", + "MAosUFVCTElTSF9EQVRBX1RSQUNLX0VSUk9SX0NPREVfRFVQTElDQVRFX05B", + "TUUQAhIpCiVQVUJMSVNIX0RBVEFfVFJBQ0tfRVJST1JfQ09ERV9USU1FT1VU", + "EAMSLgoqUFVCTElTSF9EQVRBX1RSQUNLX0VSUk9SX0NPREVfRElTQ09OTkVD", + "VEVEEAQSLQopUFVCTElTSF9EQVRBX1RSQUNLX0VSUk9SX0NPREVfTk9UX0FM", + "TE9XRUQQBRIuCipQVUJMSVNIX0RBVEFfVFJBQ0tfRVJST1JfQ09ERV9JTlZB", + "TElEX05BTUUQBhIvCitQVUJMSVNIX0RBVEFfVFJBQ0tfRVJST1JfQ09ERV9M", + "SU1JVF9SRUFDSEVEEAcSMAosUFVCTElTSF9EQVRBX1RSQUNLX0VSUk9SX0NP", + "REVfUFJPVE9DT0xfRVJST1IQCBIqCiZQVUJMSVNIX0RBVEFfVFJBQ0tfRVJS", + "T1JfQ09ERV9JTlRFUk5BTBAJKq8CCh5Mb2NhbERhdGFUcmFja1RyeVB1c2hF", + "cnJvckNvZGUSMAosTE9DQUxfREFUQV9UUkFDS19UUllfUFVTSF9FUlJPUl9D", + "T0RFX1VOS05PV04QABI3CjNMT0NBTF9EQVRBX1RSQUNLX1RSWV9QVVNIX0VS", + "Uk9SX0NPREVfSU5WQUxJRF9IQU5ETEUQARI6CjZMT0NBTF9EQVRBX1RSQUNL", + "X1RSWV9QVVNIX0VSUk9SX0NPREVfVFJBQ0tfVU5QVUJMSVNIRUQQAhIzCi9M", + "T0NBTF9EQVRBX1RSQUNLX1RSWV9QVVNIX0VSUk9SX0NPREVfUVVFVUVfRlVM", + "TBADEjEKLUxPQ0FMX0RBVEFfVFJBQ0tfVFJZX1BVU0hfRVJST1JfQ09ERV9J", + "TlRFUk5BTBAEKvACChtTdWJzY3JpYmVEYXRhVHJhY2tFcnJvckNvZGUSKwon", + "U1VCU0NSSUJFX0RBVEFfVFJBQ0tfRVJST1JfQ09ERV9VTktOT1dOEAASMgou", + "U1VCU0NSSUJFX0RBVEFfVFJBQ0tfRVJST1JfQ09ERV9JTlZBTElEX0hBTkRM", + "RRABEi8KK1NVQlNDUklCRV9EQVRBX1RSQUNLX0VSUk9SX0NPREVfVU5QVUJM", + "SVNIRUQQAhIrCidTVUJTQ1JJQkVfREFUQV9UUkFDS19FUlJPUl9DT0RFX1RJ", + "TUVPVVQQAxIwCixTVUJTQ1JJQkVfREFUQV9UUkFDS19FUlJPUl9DT0RFX0RJ", + "U0NPTk5FQ1RFRBAEEjIKLlNVQlNDUklCRV9EQVRBX1RSQUNLX0VSUk9SX0NP", + "REVfUFJPVE9DT0xfRVJST1IQBRIsCihTVUJTQ1JJQkVfREFUQV9UUkFDS19F", + "UlJPUl9DT0RFX0lOVEVSTkFMEAZCEKoCDUxpdmVLaXQuUHJvdG8=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::LiveKit.Proto.HandleReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.DataTrackErrorCode), typeof(global::LiveKit.Proto.PublishDataTrackErrorCode), typeof(global::LiveKit.Proto.LocalDataTrackTryPushErrorCode), typeof(global::LiveKit.Proto.SubscribeDataTrackErrorCode), }, null, new pbr::GeneratedClrTypeInfo[] { @@ -7120,7 +7121,7 @@ public DataTrackStreamEOS() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public DataTrackStreamEOS(DataTrackStreamEOS other) : this() { - error_ = other.error_; + error_ = other.error_ != null ? other.error_.Clone() : null; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -7132,33 +7133,19 @@ public DataTrackStreamEOS Clone() { /// Field number for the "error" field. public const int ErrorFieldNumber = 1; - private readonly static string ErrorDefaultValue = ""; - - private string error_; + private global::LiveKit.Proto.SubscribeDataTrackError error_; /// - /// If the track could not be subscribed to, a message describing the error. - /// Absent if the stream ended normally. + /// Present if stream ended before any frames were emitted due to subscription establishment failing. + /// Absent if the stream ended normally (i.e., due to the track being unpublished). /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Error { - get { return error_ ?? ErrorDefaultValue; } + public global::LiveKit.Proto.SubscribeDataTrackError Error { + get { return error_; } set { - error_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + error_ = value; } } - /// Gets whether the "error" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasError { - get { return error_ != null; } - } - /// Clears the value of the "error" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearError() { - error_ = null; - } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -7175,7 +7162,7 @@ public bool Equals(DataTrackStreamEOS other) { if (ReferenceEquals(other, this)) { return true; } - if (Error != other.Error) return false; + if (!object.Equals(Error, other.Error)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -7183,7 +7170,7 @@ public bool Equals(DataTrackStreamEOS other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (HasError) hash ^= Error.GetHashCode(); + if (error_ != null) hash ^= Error.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -7202,9 +7189,9 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (HasError) { + if (error_ != null) { output.WriteRawTag(10); - output.WriteString(Error); + output.WriteMessage(Error); } if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -7216,9 +7203,9 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasError) { + if (error_ != null) { output.WriteRawTag(10); - output.WriteString(Error); + output.WriteMessage(Error); } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); @@ -7230,8 +7217,8 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (HasError) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Error); + if (error_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Error); } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); @@ -7245,8 +7232,11 @@ public void MergeFrom(DataTrackStreamEOS other) { if (other == null) { return; } - if (other.HasError) { - Error = other.Error; + if (other.error_ != null) { + if (error_ == null) { + Error = new global::LiveKit.Proto.SubscribeDataTrackError(); + } + Error.MergeFrom(other.Error); } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -7268,7 +7258,10 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - Error = input.ReadString(); + if (error_ == null) { + Error = new global::LiveKit.Proto.SubscribeDataTrackError(); + } + input.ReadMessage(Error); break; } } @@ -7291,7 +7284,10 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 10: { - Error = input.ReadString(); + if (error_ == null) { + Error = new global::LiveKit.Proto.SubscribeDataTrackError(); + } + input.ReadMessage(Error); break; } } diff --git a/Runtime/Scripts/Proto/Ffi.cs b/Runtime/Scripts/Proto/Ffi.cs index b0a8bdbb..f3f1808a 100644 --- a/Runtime/Scripts/Proto/Ffi.cs +++ b/Runtime/Scripts/Proto/Ffi.cs @@ -27,7 +27,7 @@ static FfiReflection() { "CglmZmkucHJvdG8SDWxpdmVraXQucHJvdG8aCmUyZWUucHJvdG8aC3RyYWNr", "LnByb3RvGhd0cmFja19wdWJsaWNhdGlvbi5wcm90bxoKcm9vbS5wcm90bxoR", "dmlkZW9fZnJhbWUucHJvdG8aEWF1ZGlvX2ZyYW1lLnByb3RvGglycGMucHJv", - "dG8aEWRhdGFfc3RyZWFtLnByb3RvGhBkYXRhX3RyYWNrLnByb3RvIqAqCgpG", + "dG8aEWRhdGFfc3RyZWFtLnByb3RvGhBkYXRhX3RyYWNrLnByb3RvIsguCgpG", "ZmlSZXF1ZXN0EjAKB2Rpc3Bvc2UYAiABKAsyHS5saXZla2l0LnByb3RvLkRp", "c3Bvc2VSZXF1ZXN0SAASMAoHY29ubmVjdBgDIAEoCzIdLmxpdmVraXQucHJv", "dG8uQ29ubmVjdFJlcXVlc3RIABI2CgpkaXNjb25uZWN0GAQgASgLMiAubGl2", @@ -147,207 +147,233 @@ static FfiReflection() { "ZXN0SAASWgoecmVtb3RlX2RhdGFfdHJhY2tfaXNfcHVibGlzaGVkGEogASgL", "MjAubGl2ZWtpdC5wcm90by5SZW1vdGVEYXRhVHJhY2tJc1B1Ymxpc2hlZFJl", "cXVlc3RIABJLChZkYXRhX3RyYWNrX3N0cmVhbV9yZWFkGEsgASgLMikubGl2", - "ZWtpdC5wcm90by5EYXRhVHJhY2tTdHJlYW1SZWFkUmVxdWVzdEgAQgkKB21l", - "c3NhZ2UipioKC0ZmaVJlc3BvbnNlEjEKB2Rpc3Bvc2UYAiABKAsyHi5saXZl", - "a2l0LnByb3RvLkRpc3Bvc2VSZXNwb25zZUgAEjEKB2Nvbm5lY3QYAyABKAsy", - "Hi5saXZla2l0LnByb3RvLkNvbm5lY3RSZXNwb25zZUgAEjcKCmRpc2Nvbm5l", - "Y3QYBCABKAsyIS5saXZla2l0LnByb3RvLkRpc2Nvbm5lY3RSZXNwb25zZUgA", - "EjwKDXB1Ymxpc2hfdHJhY2sYBSABKAsyIy5saXZla2l0LnByb3RvLlB1Ymxp", - "c2hUcmFja1Jlc3BvbnNlSAASQAoPdW5wdWJsaXNoX3RyYWNrGAYgASgLMiUu", - "bGl2ZWtpdC5wcm90by5VbnB1Ymxpc2hUcmFja1Jlc3BvbnNlSAASOgoMcHVi", - "bGlzaF9kYXRhGAcgASgLMiIubGl2ZWtpdC5wcm90by5QdWJsaXNoRGF0YVJl", - "c3BvbnNlSAASPgoOc2V0X3N1YnNjcmliZWQYCCABKAsyJC5saXZla2l0LnBy", - "b3RvLlNldFN1YnNjcmliZWRSZXNwb25zZUgAEkUKEnNldF9sb2NhbF9tZXRh", - "ZGF0YRgJIAEoCzInLmxpdmVraXQucHJvdG8uU2V0TG9jYWxNZXRhZGF0YVJl", - "c3BvbnNlSAASPQoOc2V0X2xvY2FsX25hbWUYCiABKAsyIy5saXZla2l0LnBy", - "b3RvLlNldExvY2FsTmFtZVJlc3BvbnNlSAASSQoUc2V0X2xvY2FsX2F0dHJp", - "YnV0ZXMYCyABKAsyKS5saXZla2l0LnByb3RvLlNldExvY2FsQXR0cmlidXRl", - "c1Jlc3BvbnNlSAASQwoRZ2V0X3Nlc3Npb25fc3RhdHMYDCABKAsyJi5saXZl", - "a2l0LnByb3RvLkdldFNlc3Npb25TdGF0c1Jlc3BvbnNlSAASTAoVcHVibGlz", - "aF90cmFuc2NyaXB0aW9uGA0gASgLMisubGl2ZWtpdC5wcm90by5QdWJsaXNo", - "VHJhbnNjcmlwdGlvblJlc3BvbnNlSAASQQoQcHVibGlzaF9zaXBfZHRtZhgO", - "IAEoCzIlLmxpdmVraXQucHJvdG8uUHVibGlzaFNpcER0bWZSZXNwb25zZUgA", - "EkUKEmNyZWF0ZV92aWRlb190cmFjaxgPIAEoCzInLmxpdmVraXQucHJvdG8u", - "Q3JlYXRlVmlkZW9UcmFja1Jlc3BvbnNlSAASRQoSY3JlYXRlX2F1ZGlvX3Ry", - "YWNrGBAgASgLMicubGl2ZWtpdC5wcm90by5DcmVhdGVBdWRpb1RyYWNrUmVz", - "cG9uc2VIABJBChBsb2NhbF90cmFja19tdXRlGBEgASgLMiUubGl2ZWtpdC5w", - "cm90by5Mb2NhbFRyYWNrTXV0ZVJlc3BvbnNlSAASRwoTZW5hYmxlX3JlbW90", - "ZV90cmFjaxgSIAEoCzIoLmxpdmVraXQucHJvdG8uRW5hYmxlUmVtb3RlVHJh", - "Y2tSZXNwb25zZUgAEjQKCWdldF9zdGF0cxgTIAEoCzIfLmxpdmVraXQucHJv", - "dG8uR2V0U3RhdHNSZXNwb25zZUgAEmQKInNldF90cmFja19zdWJzY3JpcHRp", - "b25fcGVybWlzc2lvbnMYLyABKAsyNi5saXZla2l0LnByb3RvLlNldFRyYWNr", - "U3Vic2NyaXB0aW9uUGVybWlzc2lvbnNSZXNwb25zZUgAEkEKEG5ld192aWRl", - "b19zdHJlYW0YFCABKAsyJS5saXZla2l0LnByb3RvLk5ld1ZpZGVvU3RyZWFt", - "UmVzcG9uc2VIABJBChBuZXdfdmlkZW9fc291cmNlGBUgASgLMiUubGl2ZWtp", - "dC5wcm90by5OZXdWaWRlb1NvdXJjZVJlc3BvbnNlSAASRwoTY2FwdHVyZV92", - "aWRlb19mcmFtZRgWIAEoCzIoLmxpdmVraXQucHJvdG8uQ2FwdHVyZVZpZGVv", - "RnJhbWVSZXNwb25zZUgAEjwKDXZpZGVvX2NvbnZlcnQYFyABKAsyIy5saXZl", - "a2l0LnByb3RvLlZpZGVvQ29udmVydFJlc3BvbnNlSAASWgoddmlkZW9fc3Ry", - "ZWFtX2Zyb21fcGFydGljaXBhbnQYGCABKAsyMS5saXZla2l0LnByb3RvLlZp", - "ZGVvU3RyZWFtRnJvbVBhcnRpY2lwYW50UmVzcG9uc2VIABJBChBuZXdfYXVk", - "aW9fc3RyZWFtGBkgASgLMiUubGl2ZWtpdC5wcm90by5OZXdBdWRpb1N0cmVh", - "bVJlc3BvbnNlSAASQQoQbmV3X2F1ZGlvX3NvdXJjZRgaIAEoCzIlLmxpdmVr", - "aXQucHJvdG8uTmV3QXVkaW9Tb3VyY2VSZXNwb25zZUgAEkcKE2NhcHR1cmVf", - "YXVkaW9fZnJhbWUYGyABKAsyKC5saXZla2l0LnByb3RvLkNhcHR1cmVBdWRp", - "b0ZyYW1lUmVzcG9uc2VIABJFChJjbGVhcl9hdWRpb19idWZmZXIYHCABKAsy", - "Jy5saXZla2l0LnByb3RvLkNsZWFyQXVkaW9CdWZmZXJSZXNwb25zZUgAEkcK", - "E25ld19hdWRpb19yZXNhbXBsZXIYHSABKAsyKC5saXZla2l0LnByb3RvLk5l", - "d0F1ZGlvUmVzYW1wbGVyUmVzcG9uc2VIABJFChJyZW1peF9hbmRfcmVzYW1w", - "bGUYHiABKAsyJy5saXZla2l0LnByb3RvLlJlbWl4QW5kUmVzYW1wbGVSZXNw", - "b25zZUgAEloKHWF1ZGlvX3N0cmVhbV9mcm9tX3BhcnRpY2lwYW50GB8gASgL", - "MjEubGl2ZWtpdC5wcm90by5BdWRpb1N0cmVhbUZyb21QYXJ0aWNpcGFudFJl", - "c3BvbnNlSAASKwoEZTJlZRggIAEoCzIbLmxpdmVraXQucHJvdG8uRTJlZVJl", - "c3BvbnNlSAASQwoRbmV3X3NveF9yZXNhbXBsZXIYISABKAsyJi5saXZla2l0", - "LnByb3RvLk5ld1NveFJlc2FtcGxlclJlc3BvbnNlSAASRQoScHVzaF9zb3hf", - "cmVzYW1wbGVyGCIgASgLMicubGl2ZWtpdC5wcm90by5QdXNoU294UmVzYW1w", - "bGVyUmVzcG9uc2VIABJHChNmbHVzaF9zb3hfcmVzYW1wbGVyGCMgASgLMigu", - "bGl2ZWtpdC5wcm90by5GbHVzaFNveFJlc2FtcGxlclJlc3BvbnNlSAASQwoR", - "c2VuZF9jaGF0X21lc3NhZ2UYJCABKAsyJi5saXZla2l0LnByb3RvLlNlbmRD", - "aGF0TWVzc2FnZVJlc3BvbnNlSAASOAoLcGVyZm9ybV9ycGMYJSABKAsyIS5s", - "aXZla2l0LnByb3RvLlBlcmZvcm1ScGNSZXNwb25zZUgAEkcKE3JlZ2lzdGVy", - "X3JwY19tZXRob2QYJiABKAsyKC5saXZla2l0LnByb3RvLlJlZ2lzdGVyUnBj", - "TWV0aG9kUmVzcG9uc2VIABJLChV1bnJlZ2lzdGVyX3JwY19tZXRob2QYJyAB", - "KAsyKi5saXZla2l0LnByb3RvLlVucmVnaXN0ZXJScGNNZXRob2RSZXNwb25z", - "ZUgAElwKHnJwY19tZXRob2RfaW52b2NhdGlvbl9yZXNwb25zZRgoIAEoCzIy", - "LmxpdmVraXQucHJvdG8uUnBjTWV0aG9kSW52b2NhdGlvblJlc3BvbnNlUmVz", - "cG9uc2VIABJeCh9lbmFibGVfcmVtb3RlX3RyYWNrX3B1YmxpY2F0aW9uGCkg", - "ASgLMjMubGl2ZWtpdC5wcm90by5FbmFibGVSZW1vdGVUcmFja1B1YmxpY2F0", - "aW9uUmVzcG9uc2VIABJxCil1cGRhdGVfcmVtb3RlX3RyYWNrX3B1YmxpY2F0", - "aW9uX2RpbWVuc2lvbhgqIAEoCzI8LmxpdmVraXQucHJvdG8uVXBkYXRlUmVt", - "b3RlVHJhY2tQdWJsaWNhdGlvbkRpbWVuc2lvblJlc3BvbnNlSAASRQoSc2Vu", - "ZF9zdHJlYW1faGVhZGVyGCsgASgLMicubGl2ZWtpdC5wcm90by5TZW5kU3Ry", - "ZWFtSGVhZGVyUmVzcG9uc2VIABJDChFzZW5kX3N0cmVhbV9jaHVuaxgsIAEo", - "CzImLmxpdmVraXQucHJvdG8uU2VuZFN0cmVhbUNodW5rUmVzcG9uc2VIABJH", - "ChNzZW5kX3N0cmVhbV90cmFpbGVyGC0gASgLMigubGl2ZWtpdC5wcm90by5T", - "ZW5kU3RyZWFtVHJhaWxlclJlc3BvbnNlSAASeQouc2V0X2RhdGFfY2hhbm5l", - "bF9idWZmZXJlZF9hbW91bnRfbG93X3RocmVzaG9sZBguIAEoCzI/LmxpdmVr", - "aXQucHJvdG8uU2V0RGF0YUNoYW5uZWxCdWZmZXJlZEFtb3VudExvd1RocmVz", - "aG9sZFJlc3BvbnNlSAASUAoYbG9hZF9hdWRpb19maWx0ZXJfcGx1Z2luGDAg", - "ASgLMiwubGl2ZWtpdC5wcm90by5Mb2FkQXVkaW9GaWx0ZXJQbHVnaW5SZXNw", - "b25zZUgAEjAKB25ld19hcG0YMSABKAsyHS5saXZla2l0LnByb3RvLk5ld0Fw", - "bVJlc3BvbnNlSAASRQoSYXBtX3Byb2Nlc3Nfc3RyZWFtGDIgASgLMicubGl2", - "ZWtpdC5wcm90by5BcG1Qcm9jZXNzU3RyZWFtUmVzcG9uc2VIABJUChphcG1f", - "cHJvY2Vzc19yZXZlcnNlX3N0cmVhbRgzIAEoCzIuLmxpdmVraXQucHJvdG8u", - "QXBtUHJvY2Vzc1JldmVyc2VTdHJlYW1SZXNwb25zZUgAEkgKFGFwbV9zZXRf", - "c3RyZWFtX2RlbGF5GDQgASgLMigubGl2ZWtpdC5wcm90by5BcG1TZXRTdHJl", - "YW1EZWxheVJlc3BvbnNlSAASVwoVYnl0ZV9yZWFkX2luY3JlbWVudGFsGDUg", - "ASgLMjYubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVhZGVyUmVhZEluY3Jl", - "bWVudGFsUmVzcG9uc2VIABJHCg1ieXRlX3JlYWRfYWxsGDYgASgLMi4ubGl2", - "ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVhZGVyUmVhZEFsbFJlc3BvbnNlSAAS", - "UAoSYnl0ZV93cml0ZV90b19maWxlGDcgASgLMjIubGl2ZWtpdC5wcm90by5C", - "eXRlU3RyZWFtUmVhZGVyV3JpdGVUb0ZpbGVSZXNwb25zZUgAElcKFXRleHRf", - "cmVhZF9pbmNyZW1lbnRhbBg4IAEoCzI2LmxpdmVraXQucHJvdG8uVGV4dFN0", - "cmVhbVJlYWRlclJlYWRJbmNyZW1lbnRhbFJlc3BvbnNlSAASRwoNdGV4dF9y", - "ZWFkX2FsbBg5IAEoCzIuLmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbVJlYWRl", - "clJlYWRBbGxSZXNwb25zZUgAEjoKCXNlbmRfZmlsZRg6IAEoCzIlLmxpdmVr", - "aXQucHJvdG8uU3RyZWFtU2VuZEZpbGVSZXNwb25zZUgAEjoKCXNlbmRfdGV4", - "dBg7IAEoCzIlLmxpdmVraXQucHJvdG8uU3RyZWFtU2VuZFRleHRSZXNwb25z", - "ZUgAEkEKEGJ5dGVfc3RyZWFtX29wZW4YPCABKAsyJS5saXZla2l0LnByb3Rv", - "LkJ5dGVTdHJlYW1PcGVuUmVzcG9uc2VIABJJChFieXRlX3N0cmVhbV93cml0", - "ZRg9IAEoCzIsLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbVdyaXRlcldyaXRl", - "UmVzcG9uc2VIABJJChFieXRlX3N0cmVhbV9jbG9zZRg+IAEoCzIsLmxpdmVr", - "aXQucHJvdG8uQnl0ZVN0cmVhbVdyaXRlckNsb3NlUmVzcG9uc2VIABJBChB0", - "ZXh0X3N0cmVhbV9vcGVuGD8gASgLMiUubGl2ZWtpdC5wcm90by5UZXh0U3Ry", - "ZWFtT3BlblJlc3BvbnNlSAASSQoRdGV4dF9zdHJlYW1fd3JpdGUYQCABKAsy", - "LC5saXZla2l0LnByb3RvLlRleHRTdHJlYW1Xcml0ZXJXcml0ZVJlc3BvbnNl", - "SAASSQoRdGV4dF9zdHJlYW1fY2xvc2UYQSABKAsyLC5saXZla2l0LnByb3Rv", - "LlRleHRTdHJlYW1Xcml0ZXJDbG9zZVJlc3BvbnNlSAASPAoKc2VuZF9ieXRl", - "cxhCIAEoCzImLmxpdmVraXQucHJvdG8uU3RyZWFtU2VuZEJ5dGVzUmVzcG9u", - "c2VIABJnCiRzZXRfcmVtb3RlX3RyYWNrX3B1YmxpY2F0aW9uX3F1YWxpdHkY", - "QyABKAsyNy5saXZla2l0LnByb3RvLlNldFJlbW90ZVRyYWNrUHVibGljYXRp", - "b25RdWFsaXR5UmVzcG9uc2VIABJFChJwdWJsaXNoX2RhdGFfdHJhY2sYRCAB", - "KAsyJy5saXZla2l0LnByb3RvLlB1Ymxpc2hEYXRhVHJhY2tSZXNwb25zZUgA", - "ElEKGWxvY2FsX2RhdGFfdHJhY2tfdHJ5X3B1c2gYRSABKAsyLC5saXZla2l0", - "LnByb3RvLkxvY2FsRGF0YVRyYWNrVHJ5UHVzaFJlc3BvbnNlSAASVAoabG9j", - "YWxfZGF0YV90cmFja191bnB1Ymxpc2gYRiABKAsyLi5saXZla2l0LnByb3Rv", - "LkxvY2FsRGF0YVRyYWNrVW5wdWJsaXNoUmVzcG9uc2VIABJZCh1sb2NhbF9k", - "YXRhX3RyYWNrX2lzX3B1Ymxpc2hlZBhHIAEoCzIwLmxpdmVraXQucHJvdG8u", - "TG9jYWxEYXRhVHJhY2tJc1B1Ymxpc2hlZFJlc3BvbnNlSAASSQoUc3Vic2Ny", - "aWJlX2RhdGFfdHJhY2sYSCABKAsyKS5saXZla2l0LnByb3RvLlN1YnNjcmli", - "ZURhdGFUcmFja1Jlc3BvbnNlSAASWwoecmVtb3RlX2RhdGFfdHJhY2tfaXNf", - "cHVibGlzaGVkGEkgASgLMjEubGl2ZWtpdC5wcm90by5SZW1vdGVEYXRhVHJh", - "Y2tJc1B1Ymxpc2hlZFJlc3BvbnNlSAASTAoWZGF0YV90cmFja19zdHJlYW1f", - "cmVhZBhKIAEoCzIqLmxpdmVraXQucHJvdG8uRGF0YVRyYWNrU3RyZWFtUmVh", - "ZFJlc3BvbnNlSABCCQoHbWVzc2FnZSKUFgoIRmZpRXZlbnQSLgoKcm9vbV9l", - "dmVudBgBIAEoCzIYLmxpdmVraXQucHJvdG8uUm9vbUV2ZW50SAASMAoLdHJh", - "Y2tfZXZlbnQYAiABKAsyGS5saXZla2l0LnByb3RvLlRyYWNrRXZlbnRIABI9", - "ChJ2aWRlb19zdHJlYW1fZXZlbnQYAyABKAsyHy5saXZla2l0LnByb3RvLlZp", - "ZGVvU3RyZWFtRXZlbnRIABI9ChJhdWRpb19zdHJlYW1fZXZlbnQYBCABKAsy", - "Hy5saXZla2l0LnByb3RvLkF1ZGlvU3RyZWFtRXZlbnRIABIxCgdjb25uZWN0", - "GAUgASgLMh4ubGl2ZWtpdC5wcm90by5Db25uZWN0Q2FsbGJhY2tIABI3Cgpk", - "aXNjb25uZWN0GAcgASgLMiEubGl2ZWtpdC5wcm90by5EaXNjb25uZWN0Q2Fs", - "bGJhY2tIABIxCgdkaXNwb3NlGAggASgLMh4ubGl2ZWtpdC5wcm90by5EaXNw", - "b3NlQ2FsbGJhY2tIABI8Cg1wdWJsaXNoX3RyYWNrGAkgASgLMiMubGl2ZWtp", - "dC5wcm90by5QdWJsaXNoVHJhY2tDYWxsYmFja0gAEkAKD3VucHVibGlzaF90", - "cmFjaxgKIAEoCzIlLmxpdmVraXQucHJvdG8uVW5wdWJsaXNoVHJhY2tDYWxs", - "YmFja0gAEjoKDHB1Ymxpc2hfZGF0YRgLIAEoCzIiLmxpdmVraXQucHJvdG8u", - "UHVibGlzaERhdGFDYWxsYmFja0gAEkwKFXB1Ymxpc2hfdHJhbnNjcmlwdGlv", - "bhgMIAEoCzIrLmxpdmVraXQucHJvdG8uUHVibGlzaFRyYW5zY3JpcHRpb25D", - "YWxsYmFja0gAEkcKE2NhcHR1cmVfYXVkaW9fZnJhbWUYDSABKAsyKC5saXZl", - "a2l0LnByb3RvLkNhcHR1cmVBdWRpb0ZyYW1lQ2FsbGJhY2tIABJFChJzZXRf", - "bG9jYWxfbWV0YWRhdGEYDiABKAsyJy5saXZla2l0LnByb3RvLlNldExvY2Fs", - "TWV0YWRhdGFDYWxsYmFja0gAEj0KDnNldF9sb2NhbF9uYW1lGA8gASgLMiMu", - "bGl2ZWtpdC5wcm90by5TZXRMb2NhbE5hbWVDYWxsYmFja0gAEkkKFHNldF9s", - "b2NhbF9hdHRyaWJ1dGVzGBAgASgLMikubGl2ZWtpdC5wcm90by5TZXRMb2Nh", - "bEF0dHJpYnV0ZXNDYWxsYmFja0gAEjQKCWdldF9zdGF0cxgRIAEoCzIfLmxp", - "dmVraXQucHJvdG8uR2V0U3RhdHNDYWxsYmFja0gAEicKBGxvZ3MYEiABKAsy", - "Fy5saXZla2l0LnByb3RvLkxvZ0JhdGNoSAASQwoRZ2V0X3Nlc3Npb25fc3Rh", - "dHMYEyABKAsyJi5saXZla2l0LnByb3RvLkdldFNlc3Npb25TdGF0c0NhbGxi", - "YWNrSAASJQoFcGFuaWMYFCABKAsyFC5saXZla2l0LnByb3RvLlBhbmljSAAS", - "QQoQcHVibGlzaF9zaXBfZHRtZhgVIAEoCzIlLmxpdmVraXQucHJvdG8uUHVi", - "bGlzaFNpcER0bWZDYWxsYmFja0gAEj4KDGNoYXRfbWVzc2FnZRgWIAEoCzIm", - "LmxpdmVraXQucHJvdG8uU2VuZENoYXRNZXNzYWdlQ2FsbGJhY2tIABI4Cgtw", - "ZXJmb3JtX3JwYxgXIAEoCzIhLmxpdmVraXQucHJvdG8uUGVyZm9ybVJwY0Nh", - "bGxiYWNrSAASSAoVcnBjX21ldGhvZF9pbnZvY2F0aW9uGBggASgLMicubGl2", - "ZWtpdC5wcm90by5ScGNNZXRob2RJbnZvY2F0aW9uRXZlbnRIABJFChJzZW5k", - "X3N0cmVhbV9oZWFkZXIYGSABKAsyJy5saXZla2l0LnByb3RvLlNlbmRTdHJl", - "YW1IZWFkZXJDYWxsYmFja0gAEkMKEXNlbmRfc3RyZWFtX2NodW5rGBogASgL", - "MiYubGl2ZWtpdC5wcm90by5TZW5kU3RyZWFtQ2h1bmtDYWxsYmFja0gAEkcK", - "E3NlbmRfc3RyZWFtX3RyYWlsZXIYGyABKAsyKC5saXZla2l0LnByb3RvLlNl", - "bmRTdHJlYW1UcmFpbGVyQ2FsbGJhY2tIABJIChhieXRlX3N0cmVhbV9yZWFk", - "ZXJfZXZlbnQYHCABKAsyJC5saXZla2l0LnByb3RvLkJ5dGVTdHJlYW1SZWFk", - "ZXJFdmVudEgAElUKG2J5dGVfc3RyZWFtX3JlYWRlcl9yZWFkX2FsbBgdIAEo", - "CzIuLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbVJlYWRlclJlYWRBbGxDYWxs", - "YmFja0gAEl4KIGJ5dGVfc3RyZWFtX3JlYWRlcl93cml0ZV90b19maWxlGB4g", - "ASgLMjIubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVhZGVyV3JpdGVUb0Zp", - "bGVDYWxsYmFja0gAEkEKEGJ5dGVfc3RyZWFtX29wZW4YHyABKAsyJS5saXZl", - "a2l0LnByb3RvLkJ5dGVTdHJlYW1PcGVuQ2FsbGJhY2tIABJQChhieXRlX3N0", - "cmVhbV93cml0ZXJfd3JpdGUYICABKAsyLC5saXZla2l0LnByb3RvLkJ5dGVT", - "dHJlYW1Xcml0ZXJXcml0ZUNhbGxiYWNrSAASUAoYYnl0ZV9zdHJlYW1fd3Jp", - "dGVyX2Nsb3NlGCEgASgLMiwubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtV3Jp", - "dGVyQ2xvc2VDYWxsYmFja0gAEjoKCXNlbmRfZmlsZRgiIAEoCzIlLmxpdmVr", - "aXQucHJvdG8uU3RyZWFtU2VuZEZpbGVDYWxsYmFja0gAEkgKGHRleHRfc3Ry", - "ZWFtX3JlYWRlcl9ldmVudBgjIAEoCzIkLmxpdmVraXQucHJvdG8uVGV4dFN0", - "cmVhbVJlYWRlckV2ZW50SAASVQobdGV4dF9zdHJlYW1fcmVhZGVyX3JlYWRf", - "YWxsGCQgASgLMi4ubGl2ZWtpdC5wcm90by5UZXh0U3RyZWFtUmVhZGVyUmVh", - "ZEFsbENhbGxiYWNrSAASQQoQdGV4dF9zdHJlYW1fb3BlbhglIAEoCzIlLmxp", - "dmVraXQucHJvdG8uVGV4dFN0cmVhbU9wZW5DYWxsYmFja0gAElAKGHRleHRf", - "c3RyZWFtX3dyaXRlcl93cml0ZRgmIAEoCzIsLmxpdmVraXQucHJvdG8uVGV4", - "dFN0cmVhbVdyaXRlcldyaXRlQ2FsbGJhY2tIABJQChh0ZXh0X3N0cmVhbV93", - "cml0ZXJfY2xvc2UYJyABKAsyLC5saXZla2l0LnByb3RvLlRleHRTdHJlYW1X", - "cml0ZXJDbG9zZUNhbGxiYWNrSAASOgoJc2VuZF90ZXh0GCggASgLMiUubGl2", - "ZWtpdC5wcm90by5TdHJlYW1TZW5kVGV4dENhbGxiYWNrSAASPAoKc2VuZF9i", - "eXRlcxgpIAEoCzImLmxpdmVraXQucHJvdG8uU3RyZWFtU2VuZEJ5dGVzQ2Fs", - "bGJhY2tIABJFChJwdWJsaXNoX2RhdGFfdHJhY2sYKiABKAsyJy5saXZla2l0", - "LnByb3RvLlB1Ymxpc2hEYXRhVHJhY2tDYWxsYmFja0gAEkYKF2RhdGFfdHJh", - "Y2tfc3RyZWFtX2V2ZW50GCsgASgLMiMubGl2ZWtpdC5wcm90by5EYXRhVHJh", - "Y2tTdHJlYW1FdmVudEgAQgkKB21lc3NhZ2UiHwoORGlzcG9zZVJlcXVlc3QS", - "DQoFYXN5bmMYASACKAgiIwoPRGlzcG9zZVJlc3BvbnNlEhAKCGFzeW5jX2lk", - "GAEgASgEIiMKD0Rpc3Bvc2VDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBCKF", - "AQoJTG9nUmVjb3JkEiYKBWxldmVsGAEgAigOMhcubGl2ZWtpdC5wcm90by5M", - "b2dMZXZlbBIOCgZ0YXJnZXQYAiACKAkSEwoLbW9kdWxlX3BhdGgYAyABKAkS", - "DAoEZmlsZRgEIAEoCRIMCgRsaW5lGAUgASgNEg8KB21lc3NhZ2UYBiACKAki", - "NQoITG9nQmF0Y2gSKQoHcmVjb3JkcxgBIAMoCzIYLmxpdmVraXQucHJvdG8u", - "TG9nUmVjb3JkIhgKBVBhbmljEg8KB21lc3NhZ2UYASACKAkqUwoITG9nTGV2", - "ZWwSDQoJTE9HX0VSUk9SEAASDAoITE9HX1dBUk4QARIMCghMT0dfSU5GTxAC", - "Eg0KCUxPR19ERUJVRxADEg0KCUxPR19UUkFDRRAEQhCqAg1MaXZlS2l0LlBy", - "b3Rv")); + "ZWtpdC5wcm90by5EYXRhVHJhY2tTdHJlYW1SZWFkUmVxdWVzdEgAEkMKEXNp", + "bXVsYXRlX3NjZW5hcmlvGEwgASgLMiYubGl2ZWtpdC5wcm90by5TaW11bGF0", + "ZVNjZW5hcmlvUmVxdWVzdEgAEkQKEm5ld19wbGF0Zm9ybV9hdWRpbxhNIAEo", + "CzImLmxpdmVraXQucHJvdG8uTmV3UGxhdGZvcm1BdWRpb1JlcXVlc3RIABJC", + "ChFnZXRfYXVkaW9fZGV2aWNlcxhOIAEoCzIlLmxpdmVraXQucHJvdG8uR2V0", + "QXVkaW9EZXZpY2VzUmVxdWVzdEgAEkgKFHNldF9yZWNvcmRpbmdfZGV2aWNl", + "GE8gASgLMigubGl2ZWtpdC5wcm90by5TZXRSZWNvcmRpbmdEZXZpY2VSZXF1", + "ZXN0SAASRAoSc2V0X3BsYXlvdXRfZGV2aWNlGFAgASgLMiYubGl2ZWtpdC5w", + "cm90by5TZXRQbGF5b3V0RGV2aWNlUmVxdWVzdEgAEj8KD3N0YXJ0X3JlY29y", + "ZGluZxhRIAEoCzIkLmxpdmVraXQucHJvdG8uU3RhcnRSZWNvcmRpbmdSZXF1", + "ZXN0SAASPQoOc3RvcF9yZWNvcmRpbmcYUiABKAsyIy5saXZla2l0LnByb3Rv", + "LlN0b3BSZWNvcmRpbmdSZXF1ZXN0SAASRwoUcmVhZHlfZm9yX3Jvb21fZXZl", + "bnQYUyABKAsyJy5saXZla2l0LnByb3RvLlJlYWR5Rm9yUm9vbUV2ZW50UmVx", + "dWVzdEgAQgkKB21lc3NhZ2Ui1i4KC0ZmaVJlc3BvbnNlEjEKB2Rpc3Bvc2UY", + "AiABKAsyHi5saXZla2l0LnByb3RvLkRpc3Bvc2VSZXNwb25zZUgAEjEKB2Nv", + "bm5lY3QYAyABKAsyHi5saXZla2l0LnByb3RvLkNvbm5lY3RSZXNwb25zZUgA", + "EjcKCmRpc2Nvbm5lY3QYBCABKAsyIS5saXZla2l0LnByb3RvLkRpc2Nvbm5l", + "Y3RSZXNwb25zZUgAEjwKDXB1Ymxpc2hfdHJhY2sYBSABKAsyIy5saXZla2l0", + "LnByb3RvLlB1Ymxpc2hUcmFja1Jlc3BvbnNlSAASQAoPdW5wdWJsaXNoX3Ry", + "YWNrGAYgASgLMiUubGl2ZWtpdC5wcm90by5VbnB1Ymxpc2hUcmFja1Jlc3Bv", + "bnNlSAASOgoMcHVibGlzaF9kYXRhGAcgASgLMiIubGl2ZWtpdC5wcm90by5Q", + "dWJsaXNoRGF0YVJlc3BvbnNlSAASPgoOc2V0X3N1YnNjcmliZWQYCCABKAsy", + "JC5saXZla2l0LnByb3RvLlNldFN1YnNjcmliZWRSZXNwb25zZUgAEkUKEnNl", + "dF9sb2NhbF9tZXRhZGF0YRgJIAEoCzInLmxpdmVraXQucHJvdG8uU2V0TG9j", + "YWxNZXRhZGF0YVJlc3BvbnNlSAASPQoOc2V0X2xvY2FsX25hbWUYCiABKAsy", + "Iy5saXZla2l0LnByb3RvLlNldExvY2FsTmFtZVJlc3BvbnNlSAASSQoUc2V0", + "X2xvY2FsX2F0dHJpYnV0ZXMYCyABKAsyKS5saXZla2l0LnByb3RvLlNldExv", + "Y2FsQXR0cmlidXRlc1Jlc3BvbnNlSAASQwoRZ2V0X3Nlc3Npb25fc3RhdHMY", + "DCABKAsyJi5saXZla2l0LnByb3RvLkdldFNlc3Npb25TdGF0c1Jlc3BvbnNl", + "SAASTAoVcHVibGlzaF90cmFuc2NyaXB0aW9uGA0gASgLMisubGl2ZWtpdC5w", + "cm90by5QdWJsaXNoVHJhbnNjcmlwdGlvblJlc3BvbnNlSAASQQoQcHVibGlz", + "aF9zaXBfZHRtZhgOIAEoCzIlLmxpdmVraXQucHJvdG8uUHVibGlzaFNpcER0", + "bWZSZXNwb25zZUgAEkUKEmNyZWF0ZV92aWRlb190cmFjaxgPIAEoCzInLmxp", + "dmVraXQucHJvdG8uQ3JlYXRlVmlkZW9UcmFja1Jlc3BvbnNlSAASRQoSY3Jl", + "YXRlX2F1ZGlvX3RyYWNrGBAgASgLMicubGl2ZWtpdC5wcm90by5DcmVhdGVB", + "dWRpb1RyYWNrUmVzcG9uc2VIABJBChBsb2NhbF90cmFja19tdXRlGBEgASgL", + "MiUubGl2ZWtpdC5wcm90by5Mb2NhbFRyYWNrTXV0ZVJlc3BvbnNlSAASRwoT", + "ZW5hYmxlX3JlbW90ZV90cmFjaxgSIAEoCzIoLmxpdmVraXQucHJvdG8uRW5h", + "YmxlUmVtb3RlVHJhY2tSZXNwb25zZUgAEjQKCWdldF9zdGF0cxgTIAEoCzIf", + "LmxpdmVraXQucHJvdG8uR2V0U3RhdHNSZXNwb25zZUgAEmQKInNldF90cmFj", + "a19zdWJzY3JpcHRpb25fcGVybWlzc2lvbnMYLyABKAsyNi5saXZla2l0LnBy", + "b3RvLlNldFRyYWNrU3Vic2NyaXB0aW9uUGVybWlzc2lvbnNSZXNwb25zZUgA", + "EkEKEG5ld192aWRlb19zdHJlYW0YFCABKAsyJS5saXZla2l0LnByb3RvLk5l", + "d1ZpZGVvU3RyZWFtUmVzcG9uc2VIABJBChBuZXdfdmlkZW9fc291cmNlGBUg", + "ASgLMiUubGl2ZWtpdC5wcm90by5OZXdWaWRlb1NvdXJjZVJlc3BvbnNlSAAS", + "RwoTY2FwdHVyZV92aWRlb19mcmFtZRgWIAEoCzIoLmxpdmVraXQucHJvdG8u", + "Q2FwdHVyZVZpZGVvRnJhbWVSZXNwb25zZUgAEjwKDXZpZGVvX2NvbnZlcnQY", + "FyABKAsyIy5saXZla2l0LnByb3RvLlZpZGVvQ29udmVydFJlc3BvbnNlSAAS", + "WgoddmlkZW9fc3RyZWFtX2Zyb21fcGFydGljaXBhbnQYGCABKAsyMS5saXZl", + "a2l0LnByb3RvLlZpZGVvU3RyZWFtRnJvbVBhcnRpY2lwYW50UmVzcG9uc2VI", + "ABJBChBuZXdfYXVkaW9fc3RyZWFtGBkgASgLMiUubGl2ZWtpdC5wcm90by5O", + "ZXdBdWRpb1N0cmVhbVJlc3BvbnNlSAASQQoQbmV3X2F1ZGlvX3NvdXJjZRga", + "IAEoCzIlLmxpdmVraXQucHJvdG8uTmV3QXVkaW9Tb3VyY2VSZXNwb25zZUgA", + "EkcKE2NhcHR1cmVfYXVkaW9fZnJhbWUYGyABKAsyKC5saXZla2l0LnByb3Rv", + "LkNhcHR1cmVBdWRpb0ZyYW1lUmVzcG9uc2VIABJFChJjbGVhcl9hdWRpb19i", + "dWZmZXIYHCABKAsyJy5saXZla2l0LnByb3RvLkNsZWFyQXVkaW9CdWZmZXJS", + "ZXNwb25zZUgAEkcKE25ld19hdWRpb19yZXNhbXBsZXIYHSABKAsyKC5saXZl", + "a2l0LnByb3RvLk5ld0F1ZGlvUmVzYW1wbGVyUmVzcG9uc2VIABJFChJyZW1p", + "eF9hbmRfcmVzYW1wbGUYHiABKAsyJy5saXZla2l0LnByb3RvLlJlbWl4QW5k", + "UmVzYW1wbGVSZXNwb25zZUgAEloKHWF1ZGlvX3N0cmVhbV9mcm9tX3BhcnRp", + "Y2lwYW50GB8gASgLMjEubGl2ZWtpdC5wcm90by5BdWRpb1N0cmVhbUZyb21Q", + "YXJ0aWNpcGFudFJlc3BvbnNlSAASKwoEZTJlZRggIAEoCzIbLmxpdmVraXQu", + "cHJvdG8uRTJlZVJlc3BvbnNlSAASQwoRbmV3X3NveF9yZXNhbXBsZXIYISAB", + "KAsyJi5saXZla2l0LnByb3RvLk5ld1NveFJlc2FtcGxlclJlc3BvbnNlSAAS", + "RQoScHVzaF9zb3hfcmVzYW1wbGVyGCIgASgLMicubGl2ZWtpdC5wcm90by5Q", + "dXNoU294UmVzYW1wbGVyUmVzcG9uc2VIABJHChNmbHVzaF9zb3hfcmVzYW1w", + "bGVyGCMgASgLMigubGl2ZWtpdC5wcm90by5GbHVzaFNveFJlc2FtcGxlclJl", + "c3BvbnNlSAASQwoRc2VuZF9jaGF0X21lc3NhZ2UYJCABKAsyJi5saXZla2l0", + "LnByb3RvLlNlbmRDaGF0TWVzc2FnZVJlc3BvbnNlSAASOAoLcGVyZm9ybV9y", + "cGMYJSABKAsyIS5saXZla2l0LnByb3RvLlBlcmZvcm1ScGNSZXNwb25zZUgA", + "EkcKE3JlZ2lzdGVyX3JwY19tZXRob2QYJiABKAsyKC5saXZla2l0LnByb3Rv", + "LlJlZ2lzdGVyUnBjTWV0aG9kUmVzcG9uc2VIABJLChV1bnJlZ2lzdGVyX3Jw", + "Y19tZXRob2QYJyABKAsyKi5saXZla2l0LnByb3RvLlVucmVnaXN0ZXJScGNN", + "ZXRob2RSZXNwb25zZUgAElwKHnJwY19tZXRob2RfaW52b2NhdGlvbl9yZXNw", + "b25zZRgoIAEoCzIyLmxpdmVraXQucHJvdG8uUnBjTWV0aG9kSW52b2NhdGlv", + "blJlc3BvbnNlUmVzcG9uc2VIABJeCh9lbmFibGVfcmVtb3RlX3RyYWNrX3B1", + "YmxpY2F0aW9uGCkgASgLMjMubGl2ZWtpdC5wcm90by5FbmFibGVSZW1vdGVU", + "cmFja1B1YmxpY2F0aW9uUmVzcG9uc2VIABJxCil1cGRhdGVfcmVtb3RlX3Ry", + "YWNrX3B1YmxpY2F0aW9uX2RpbWVuc2lvbhgqIAEoCzI8LmxpdmVraXQucHJv", + "dG8uVXBkYXRlUmVtb3RlVHJhY2tQdWJsaWNhdGlvbkRpbWVuc2lvblJlc3Bv", + "bnNlSAASRQoSc2VuZF9zdHJlYW1faGVhZGVyGCsgASgLMicubGl2ZWtpdC5w", + "cm90by5TZW5kU3RyZWFtSGVhZGVyUmVzcG9uc2VIABJDChFzZW5kX3N0cmVh", + "bV9jaHVuaxgsIAEoCzImLmxpdmVraXQucHJvdG8uU2VuZFN0cmVhbUNodW5r", + "UmVzcG9uc2VIABJHChNzZW5kX3N0cmVhbV90cmFpbGVyGC0gASgLMigubGl2", + "ZWtpdC5wcm90by5TZW5kU3RyZWFtVHJhaWxlclJlc3BvbnNlSAASeQouc2V0", + "X2RhdGFfY2hhbm5lbF9idWZmZXJlZF9hbW91bnRfbG93X3RocmVzaG9sZBgu", + "IAEoCzI/LmxpdmVraXQucHJvdG8uU2V0RGF0YUNoYW5uZWxCdWZmZXJlZEFt", + "b3VudExvd1RocmVzaG9sZFJlc3BvbnNlSAASUAoYbG9hZF9hdWRpb19maWx0", + "ZXJfcGx1Z2luGDAgASgLMiwubGl2ZWtpdC5wcm90by5Mb2FkQXVkaW9GaWx0", + "ZXJQbHVnaW5SZXNwb25zZUgAEjAKB25ld19hcG0YMSABKAsyHS5saXZla2l0", + "LnByb3RvLk5ld0FwbVJlc3BvbnNlSAASRQoSYXBtX3Byb2Nlc3Nfc3RyZWFt", + "GDIgASgLMicubGl2ZWtpdC5wcm90by5BcG1Qcm9jZXNzU3RyZWFtUmVzcG9u", + "c2VIABJUChphcG1fcHJvY2Vzc19yZXZlcnNlX3N0cmVhbRgzIAEoCzIuLmxp", + "dmVraXQucHJvdG8uQXBtUHJvY2Vzc1JldmVyc2VTdHJlYW1SZXNwb25zZUgA", + "EkgKFGFwbV9zZXRfc3RyZWFtX2RlbGF5GDQgASgLMigubGl2ZWtpdC5wcm90", + "by5BcG1TZXRTdHJlYW1EZWxheVJlc3BvbnNlSAASVwoVYnl0ZV9yZWFkX2lu", + "Y3JlbWVudGFsGDUgASgLMjYubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVh", + "ZGVyUmVhZEluY3JlbWVudGFsUmVzcG9uc2VIABJHCg1ieXRlX3JlYWRfYWxs", + "GDYgASgLMi4ubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVhZGVyUmVhZEFs", + "bFJlc3BvbnNlSAASUAoSYnl0ZV93cml0ZV90b19maWxlGDcgASgLMjIubGl2", + "ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVhZGVyV3JpdGVUb0ZpbGVSZXNwb25z", + "ZUgAElcKFXRleHRfcmVhZF9pbmNyZW1lbnRhbBg4IAEoCzI2LmxpdmVraXQu", + "cHJvdG8uVGV4dFN0cmVhbVJlYWRlclJlYWRJbmNyZW1lbnRhbFJlc3BvbnNl", + "SAASRwoNdGV4dF9yZWFkX2FsbBg5IAEoCzIuLmxpdmVraXQucHJvdG8uVGV4", + "dFN0cmVhbVJlYWRlclJlYWRBbGxSZXNwb25zZUgAEjoKCXNlbmRfZmlsZRg6", + "IAEoCzIlLmxpdmVraXQucHJvdG8uU3RyZWFtU2VuZEZpbGVSZXNwb25zZUgA", + "EjoKCXNlbmRfdGV4dBg7IAEoCzIlLmxpdmVraXQucHJvdG8uU3RyZWFtU2Vu", + "ZFRleHRSZXNwb25zZUgAEkEKEGJ5dGVfc3RyZWFtX29wZW4YPCABKAsyJS5s", + "aXZla2l0LnByb3RvLkJ5dGVTdHJlYW1PcGVuUmVzcG9uc2VIABJJChFieXRl", + "X3N0cmVhbV93cml0ZRg9IAEoCzIsLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVh", + "bVdyaXRlcldyaXRlUmVzcG9uc2VIABJJChFieXRlX3N0cmVhbV9jbG9zZRg+", + "IAEoCzIsLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbVdyaXRlckNsb3NlUmVz", + "cG9uc2VIABJBChB0ZXh0X3N0cmVhbV9vcGVuGD8gASgLMiUubGl2ZWtpdC5w", + "cm90by5UZXh0U3RyZWFtT3BlblJlc3BvbnNlSAASSQoRdGV4dF9zdHJlYW1f", + "d3JpdGUYQCABKAsyLC5saXZla2l0LnByb3RvLlRleHRTdHJlYW1Xcml0ZXJX", + "cml0ZVJlc3BvbnNlSAASSQoRdGV4dF9zdHJlYW1fY2xvc2UYQSABKAsyLC5s", + "aXZla2l0LnByb3RvLlRleHRTdHJlYW1Xcml0ZXJDbG9zZVJlc3BvbnNlSAAS", + "PAoKc2VuZF9ieXRlcxhCIAEoCzImLmxpdmVraXQucHJvdG8uU3RyZWFtU2Vu", + "ZEJ5dGVzUmVzcG9uc2VIABJnCiRzZXRfcmVtb3RlX3RyYWNrX3B1YmxpY2F0", + "aW9uX3F1YWxpdHkYQyABKAsyNy5saXZla2l0LnByb3RvLlNldFJlbW90ZVRy", + "YWNrUHVibGljYXRpb25RdWFsaXR5UmVzcG9uc2VIABJFChJwdWJsaXNoX2Rh", + "dGFfdHJhY2sYRCABKAsyJy5saXZla2l0LnByb3RvLlB1Ymxpc2hEYXRhVHJh", + "Y2tSZXNwb25zZUgAElEKGWxvY2FsX2RhdGFfdHJhY2tfdHJ5X3B1c2gYRSAB", + "KAsyLC5saXZla2l0LnByb3RvLkxvY2FsRGF0YVRyYWNrVHJ5UHVzaFJlc3Bv", + "bnNlSAASVAoabG9jYWxfZGF0YV90cmFja191bnB1Ymxpc2gYRiABKAsyLi5s", + "aXZla2l0LnByb3RvLkxvY2FsRGF0YVRyYWNrVW5wdWJsaXNoUmVzcG9uc2VI", + "ABJZCh1sb2NhbF9kYXRhX3RyYWNrX2lzX3B1Ymxpc2hlZBhHIAEoCzIwLmxp", + "dmVraXQucHJvdG8uTG9jYWxEYXRhVHJhY2tJc1B1Ymxpc2hlZFJlc3BvbnNl", + "SAASSQoUc3Vic2NyaWJlX2RhdGFfdHJhY2sYSCABKAsyKS5saXZla2l0LnBy", + "b3RvLlN1YnNjcmliZURhdGFUcmFja1Jlc3BvbnNlSAASWwoecmVtb3RlX2Rh", + "dGFfdHJhY2tfaXNfcHVibGlzaGVkGEkgASgLMjEubGl2ZWtpdC5wcm90by5S", + "ZW1vdGVEYXRhVHJhY2tJc1B1Ymxpc2hlZFJlc3BvbnNlSAASTAoWZGF0YV90", + "cmFja19zdHJlYW1fcmVhZBhKIAEoCzIqLmxpdmVraXQucHJvdG8uRGF0YVRy", + "YWNrU3RyZWFtUmVhZFJlc3BvbnNlSAASRAoRc2ltdWxhdGVfc2NlbmFyaW8Y", + "SyABKAsyJy5saXZla2l0LnByb3RvLlNpbXVsYXRlU2NlbmFyaW9SZXNwb25z", + "ZUgAEkUKEm5ld19wbGF0Zm9ybV9hdWRpbxhMIAEoCzInLmxpdmVraXQucHJv", + "dG8uTmV3UGxhdGZvcm1BdWRpb1Jlc3BvbnNlSAASQwoRZ2V0X2F1ZGlvX2Rl", + "dmljZXMYTSABKAsyJi5saXZla2l0LnByb3RvLkdldEF1ZGlvRGV2aWNlc1Jl", + "c3BvbnNlSAASSQoUc2V0X3JlY29yZGluZ19kZXZpY2UYTiABKAsyKS5saXZl", + "a2l0LnByb3RvLlNldFJlY29yZGluZ0RldmljZVJlc3BvbnNlSAASRQoSc2V0", + "X3BsYXlvdXRfZGV2aWNlGE8gASgLMicubGl2ZWtpdC5wcm90by5TZXRQbGF5", + "b3V0RGV2aWNlUmVzcG9uc2VIABJACg9zdGFydF9yZWNvcmRpbmcYUCABKAsy", + "JS5saXZla2l0LnByb3RvLlN0YXJ0UmVjb3JkaW5nUmVzcG9uc2VIABI+Cg5z", + "dG9wX3JlY29yZGluZxhRIAEoCzIkLmxpdmVraXQucHJvdG8uU3RvcFJlY29y", + "ZGluZ1Jlc3BvbnNlSAASSAoUcmVhZHlfZm9yX3Jvb21fZXZlbnQYUiABKAsy", + "KC5saXZla2l0LnByb3RvLlJlYWR5Rm9yUm9vbUV2ZW50UmVzcG9uc2VIAEIJ", + "CgdtZXNzYWdlItoWCghGZmlFdmVudBIuCgpyb29tX2V2ZW50GAEgASgLMhgu", + "bGl2ZWtpdC5wcm90by5Sb29tRXZlbnRIABIwCgt0cmFja19ldmVudBgCIAEo", + "CzIZLmxpdmVraXQucHJvdG8uVHJhY2tFdmVudEgAEj0KEnZpZGVvX3N0cmVh", + "bV9ldmVudBgDIAEoCzIfLmxpdmVraXQucHJvdG8uVmlkZW9TdHJlYW1FdmVu", + "dEgAEj0KEmF1ZGlvX3N0cmVhbV9ldmVudBgEIAEoCzIfLmxpdmVraXQucHJv", + "dG8uQXVkaW9TdHJlYW1FdmVudEgAEjEKB2Nvbm5lY3QYBSABKAsyHi5saXZl", + "a2l0LnByb3RvLkNvbm5lY3RDYWxsYmFja0gAEjcKCmRpc2Nvbm5lY3QYByAB", + "KAsyIS5saXZla2l0LnByb3RvLkRpc2Nvbm5lY3RDYWxsYmFja0gAEjEKB2Rp", + "c3Bvc2UYCCABKAsyHi5saXZla2l0LnByb3RvLkRpc3Bvc2VDYWxsYmFja0gA", + "EjwKDXB1Ymxpc2hfdHJhY2sYCSABKAsyIy5saXZla2l0LnByb3RvLlB1Ymxp", + "c2hUcmFja0NhbGxiYWNrSAASQAoPdW5wdWJsaXNoX3RyYWNrGAogASgLMiUu", + "bGl2ZWtpdC5wcm90by5VbnB1Ymxpc2hUcmFja0NhbGxiYWNrSAASOgoMcHVi", + "bGlzaF9kYXRhGAsgASgLMiIubGl2ZWtpdC5wcm90by5QdWJsaXNoRGF0YUNh", + "bGxiYWNrSAASTAoVcHVibGlzaF90cmFuc2NyaXB0aW9uGAwgASgLMisubGl2", + "ZWtpdC5wcm90by5QdWJsaXNoVHJhbnNjcmlwdGlvbkNhbGxiYWNrSAASRwoT", + "Y2FwdHVyZV9hdWRpb19mcmFtZRgNIAEoCzIoLmxpdmVraXQucHJvdG8uQ2Fw", + "dHVyZUF1ZGlvRnJhbWVDYWxsYmFja0gAEkUKEnNldF9sb2NhbF9tZXRhZGF0", + "YRgOIAEoCzInLmxpdmVraXQucHJvdG8uU2V0TG9jYWxNZXRhZGF0YUNhbGxi", + "YWNrSAASPQoOc2V0X2xvY2FsX25hbWUYDyABKAsyIy5saXZla2l0LnByb3Rv", + "LlNldExvY2FsTmFtZUNhbGxiYWNrSAASSQoUc2V0X2xvY2FsX2F0dHJpYnV0", + "ZXMYECABKAsyKS5saXZla2l0LnByb3RvLlNldExvY2FsQXR0cmlidXRlc0Nh", + "bGxiYWNrSAASNAoJZ2V0X3N0YXRzGBEgASgLMh8ubGl2ZWtpdC5wcm90by5H", + "ZXRTdGF0c0NhbGxiYWNrSAASJwoEbG9ncxgSIAEoCzIXLmxpdmVraXQucHJv", + "dG8uTG9nQmF0Y2hIABJDChFnZXRfc2Vzc2lvbl9zdGF0cxgTIAEoCzImLmxp", + "dmVraXQucHJvdG8uR2V0U2Vzc2lvblN0YXRzQ2FsbGJhY2tIABIlCgVwYW5p", + "YxgUIAEoCzIULmxpdmVraXQucHJvdG8uUGFuaWNIABJBChBwdWJsaXNoX3Np", + "cF9kdG1mGBUgASgLMiUubGl2ZWtpdC5wcm90by5QdWJsaXNoU2lwRHRtZkNh", + "bGxiYWNrSAASPgoMY2hhdF9tZXNzYWdlGBYgASgLMiYubGl2ZWtpdC5wcm90", + "by5TZW5kQ2hhdE1lc3NhZ2VDYWxsYmFja0gAEjgKC3BlcmZvcm1fcnBjGBcg", + "ASgLMiEubGl2ZWtpdC5wcm90by5QZXJmb3JtUnBjQ2FsbGJhY2tIABJIChVy", + "cGNfbWV0aG9kX2ludm9jYXRpb24YGCABKAsyJy5saXZla2l0LnByb3RvLlJw", + "Y01ldGhvZEludm9jYXRpb25FdmVudEgAEkUKEnNlbmRfc3RyZWFtX2hlYWRl", + "chgZIAEoCzInLmxpdmVraXQucHJvdG8uU2VuZFN0cmVhbUhlYWRlckNhbGxi", + "YWNrSAASQwoRc2VuZF9zdHJlYW1fY2h1bmsYGiABKAsyJi5saXZla2l0LnBy", + "b3RvLlNlbmRTdHJlYW1DaHVua0NhbGxiYWNrSAASRwoTc2VuZF9zdHJlYW1f", + "dHJhaWxlchgbIAEoCzIoLmxpdmVraXQucHJvdG8uU2VuZFN0cmVhbVRyYWls", + "ZXJDYWxsYmFja0gAEkgKGGJ5dGVfc3RyZWFtX3JlYWRlcl9ldmVudBgcIAEo", + "CzIkLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbVJlYWRlckV2ZW50SAASVQob", + "Ynl0ZV9zdHJlYW1fcmVhZGVyX3JlYWRfYWxsGB0gASgLMi4ubGl2ZWtpdC5w", + "cm90by5CeXRlU3RyZWFtUmVhZGVyUmVhZEFsbENhbGxiYWNrSAASXgogYnl0", + "ZV9zdHJlYW1fcmVhZGVyX3dyaXRlX3RvX2ZpbGUYHiABKAsyMi5saXZla2l0", + "LnByb3RvLkJ5dGVTdHJlYW1SZWFkZXJXcml0ZVRvRmlsZUNhbGxiYWNrSAAS", + "QQoQYnl0ZV9zdHJlYW1fb3BlbhgfIAEoCzIlLmxpdmVraXQucHJvdG8uQnl0", + "ZVN0cmVhbU9wZW5DYWxsYmFja0gAElAKGGJ5dGVfc3RyZWFtX3dyaXRlcl93", + "cml0ZRggIAEoCzIsLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbVdyaXRlcldy", + "aXRlQ2FsbGJhY2tIABJQChhieXRlX3N0cmVhbV93cml0ZXJfY2xvc2UYISAB", + "KAsyLC5saXZla2l0LnByb3RvLkJ5dGVTdHJlYW1Xcml0ZXJDbG9zZUNhbGxi", + "YWNrSAASOgoJc2VuZF9maWxlGCIgASgLMiUubGl2ZWtpdC5wcm90by5TdHJl", + "YW1TZW5kRmlsZUNhbGxiYWNrSAASSAoYdGV4dF9zdHJlYW1fcmVhZGVyX2V2", + "ZW50GCMgASgLMiQubGl2ZWtpdC5wcm90by5UZXh0U3RyZWFtUmVhZGVyRXZl", + "bnRIABJVCht0ZXh0X3N0cmVhbV9yZWFkZXJfcmVhZF9hbGwYJCABKAsyLi5s", + "aXZla2l0LnByb3RvLlRleHRTdHJlYW1SZWFkZXJSZWFkQWxsQ2FsbGJhY2tI", + "ABJBChB0ZXh0X3N0cmVhbV9vcGVuGCUgASgLMiUubGl2ZWtpdC5wcm90by5U", + "ZXh0U3RyZWFtT3BlbkNhbGxiYWNrSAASUAoYdGV4dF9zdHJlYW1fd3JpdGVy", + "X3dyaXRlGCYgASgLMiwubGl2ZWtpdC5wcm90by5UZXh0U3RyZWFtV3JpdGVy", + "V3JpdGVDYWxsYmFja0gAElAKGHRleHRfc3RyZWFtX3dyaXRlcl9jbG9zZRgn", + "IAEoCzIsLmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbVdyaXRlckNsb3NlQ2Fs", + "bGJhY2tIABI6CglzZW5kX3RleHQYKCABKAsyJS5saXZla2l0LnByb3RvLlN0", + "cmVhbVNlbmRUZXh0Q2FsbGJhY2tIABI8CgpzZW5kX2J5dGVzGCkgASgLMiYu", + "bGl2ZWtpdC5wcm90by5TdHJlYW1TZW5kQnl0ZXNDYWxsYmFja0gAEkUKEnB1", + "Ymxpc2hfZGF0YV90cmFjaxgqIAEoCzInLmxpdmVraXQucHJvdG8uUHVibGlz", + "aERhdGFUcmFja0NhbGxiYWNrSAASRgoXZGF0YV90cmFja19zdHJlYW1fZXZl", + "bnQYKyABKAsyIy5saXZla2l0LnByb3RvLkRhdGFUcmFja1N0cmVhbUV2ZW50", + "SAASRAoRc2ltdWxhdGVfc2NlbmFyaW8YLCABKAsyJy5saXZla2l0LnByb3Rv", + "LlNpbXVsYXRlU2NlbmFyaW9DYWxsYmFja0gAQgkKB21lc3NhZ2UiHwoORGlz", + "cG9zZVJlcXVlc3QSDQoFYXN5bmMYASACKAgiIwoPRGlzcG9zZVJlc3BvbnNl", + "EhAKCGFzeW5jX2lkGAEgASgEIiMKD0Rpc3Bvc2VDYWxsYmFjaxIQCghhc3lu", + "Y19pZBgBIAIoBCKFAQoJTG9nUmVjb3JkEiYKBWxldmVsGAEgAigOMhcubGl2", + "ZWtpdC5wcm90by5Mb2dMZXZlbBIOCgZ0YXJnZXQYAiACKAkSEwoLbW9kdWxl", + "X3BhdGgYAyABKAkSDAoEZmlsZRgEIAEoCRIMCgRsaW5lGAUgASgNEg8KB21l", + "c3NhZ2UYBiACKAkiNQoITG9nQmF0Y2gSKQoHcmVjb3JkcxgBIAMoCzIYLmxp", + "dmVraXQucHJvdG8uTG9nUmVjb3JkIhgKBVBhbmljEg8KB21lc3NhZ2UYASAC", + "KAkqUwoITG9nTGV2ZWwSDQoJTE9HX0VSUk9SEAASDAoITE9HX1dBUk4QARIM", + "CghMT0dfSU5GTxACEg0KCUxPR19ERUJVRxADEg0KCUxPR19UUkFDRRAEQhCq", + "Ag1MaXZlS2l0LlByb3Rv")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::LiveKit.Proto.E2EeReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, global::LiveKit.Proto.TrackPublicationReflection.Descriptor, global::LiveKit.Proto.RoomReflection.Descriptor, global::LiveKit.Proto.VideoFrameReflection.Descriptor, global::LiveKit.Proto.AudioFrameReflection.Descriptor, global::LiveKit.Proto.RpcReflection.Descriptor, global::LiveKit.Proto.DataStreamReflection.Descriptor, global::LiveKit.Proto.DataTrackReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.LogLevel), }, null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiRequest), global::LiveKit.Proto.FfiRequest.Parser, new[]{ "Dispose", "Connect", "Disconnect", "PublishTrack", "UnpublishTrack", "PublishData", "SetSubscribed", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetSessionStats", "PublishTranscription", "PublishSipDtmf", "CreateVideoTrack", "CreateAudioTrack", "LocalTrackMute", "EnableRemoteTrack", "GetStats", "SetTrackSubscriptionPermissions", "NewVideoStream", "NewVideoSource", "CaptureVideoFrame", "VideoConvert", "VideoStreamFromParticipant", "NewAudioStream", "NewAudioSource", "CaptureAudioFrame", "ClearAudioBuffer", "NewAudioResampler", "RemixAndResample", "E2Ee", "AudioStreamFromParticipant", "NewSoxResampler", "PushSoxResampler", "FlushSoxResampler", "SendChatMessage", "EditChatMessage", "PerformRpc", "RegisterRpcMethod", "UnregisterRpcMethod", "RpcMethodInvocationResponse", "EnableRemoteTrackPublication", "UpdateRemoteTrackPublicationDimension", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "SetDataChannelBufferedAmountLowThreshold", "LoadAudioFilterPlugin", "NewApm", "ApmProcessStream", "ApmProcessReverseStream", "ApmSetStreamDelay", "ByteReadIncremental", "ByteReadAll", "ByteWriteToFile", "TextReadIncremental", "TextReadAll", "SendFile", "SendText", "ByteStreamOpen", "ByteStreamWrite", "ByteStreamClose", "TextStreamOpen", "TextStreamWrite", "TextStreamClose", "SendBytes", "SetRemoteTrackPublicationQuality", "PublishDataTrack", "LocalDataTrackTryPush", "LocalDataTrackUnpublish", "LocalDataTrackIsPublished", "SubscribeDataTrack", "RemoteDataTrackIsPublished", "DataTrackStreamRead" }, new[]{ "Message" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiResponse), global::LiveKit.Proto.FfiResponse.Parser, new[]{ "Dispose", "Connect", "Disconnect", "PublishTrack", "UnpublishTrack", "PublishData", "SetSubscribed", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetSessionStats", "PublishTranscription", "PublishSipDtmf", "CreateVideoTrack", "CreateAudioTrack", "LocalTrackMute", "EnableRemoteTrack", "GetStats", "SetTrackSubscriptionPermissions", "NewVideoStream", "NewVideoSource", "CaptureVideoFrame", "VideoConvert", "VideoStreamFromParticipant", "NewAudioStream", "NewAudioSource", "CaptureAudioFrame", "ClearAudioBuffer", "NewAudioResampler", "RemixAndResample", "AudioStreamFromParticipant", "E2Ee", "NewSoxResampler", "PushSoxResampler", "FlushSoxResampler", "SendChatMessage", "PerformRpc", "RegisterRpcMethod", "UnregisterRpcMethod", "RpcMethodInvocationResponse", "EnableRemoteTrackPublication", "UpdateRemoteTrackPublicationDimension", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "SetDataChannelBufferedAmountLowThreshold", "LoadAudioFilterPlugin", "NewApm", "ApmProcessStream", "ApmProcessReverseStream", "ApmSetStreamDelay", "ByteReadIncremental", "ByteReadAll", "ByteWriteToFile", "TextReadIncremental", "TextReadAll", "SendFile", "SendText", "ByteStreamOpen", "ByteStreamWrite", "ByteStreamClose", "TextStreamOpen", "TextStreamWrite", "TextStreamClose", "SendBytes", "SetRemoteTrackPublicationQuality", "PublishDataTrack", "LocalDataTrackTryPush", "LocalDataTrackUnpublish", "LocalDataTrackIsPublished", "SubscribeDataTrack", "RemoteDataTrackIsPublished", "DataTrackStreamRead" }, new[]{ "Message" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiEvent), global::LiveKit.Proto.FfiEvent.Parser, new[]{ "RoomEvent", "TrackEvent", "VideoStreamEvent", "AudioStreamEvent", "Connect", "Disconnect", "Dispose", "PublishTrack", "UnpublishTrack", "PublishData", "PublishTranscription", "CaptureAudioFrame", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetStats", "Logs", "GetSessionStats", "Panic", "PublishSipDtmf", "ChatMessage", "PerformRpc", "RpcMethodInvocation", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "ByteStreamReaderEvent", "ByteStreamReaderReadAll", "ByteStreamReaderWriteToFile", "ByteStreamOpen", "ByteStreamWriterWrite", "ByteStreamWriterClose", "SendFile", "TextStreamReaderEvent", "TextStreamReaderReadAll", "TextStreamOpen", "TextStreamWriterWrite", "TextStreamWriterClose", "SendText", "SendBytes", "PublishDataTrack", "DataTrackStreamEvent" }, new[]{ "Message" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiRequest), global::LiveKit.Proto.FfiRequest.Parser, new[]{ "Dispose", "Connect", "Disconnect", "PublishTrack", "UnpublishTrack", "PublishData", "SetSubscribed", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetSessionStats", "PublishTranscription", "PublishSipDtmf", "CreateVideoTrack", "CreateAudioTrack", "LocalTrackMute", "EnableRemoteTrack", "GetStats", "SetTrackSubscriptionPermissions", "NewVideoStream", "NewVideoSource", "CaptureVideoFrame", "VideoConvert", "VideoStreamFromParticipant", "NewAudioStream", "NewAudioSource", "CaptureAudioFrame", "ClearAudioBuffer", "NewAudioResampler", "RemixAndResample", "E2Ee", "AudioStreamFromParticipant", "NewSoxResampler", "PushSoxResampler", "FlushSoxResampler", "SendChatMessage", "EditChatMessage", "PerformRpc", "RegisterRpcMethod", "UnregisterRpcMethod", "RpcMethodInvocationResponse", "EnableRemoteTrackPublication", "UpdateRemoteTrackPublicationDimension", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "SetDataChannelBufferedAmountLowThreshold", "LoadAudioFilterPlugin", "NewApm", "ApmProcessStream", "ApmProcessReverseStream", "ApmSetStreamDelay", "ByteReadIncremental", "ByteReadAll", "ByteWriteToFile", "TextReadIncremental", "TextReadAll", "SendFile", "SendText", "ByteStreamOpen", "ByteStreamWrite", "ByteStreamClose", "TextStreamOpen", "TextStreamWrite", "TextStreamClose", "SendBytes", "SetRemoteTrackPublicationQuality", "PublishDataTrack", "LocalDataTrackTryPush", "LocalDataTrackUnpublish", "LocalDataTrackIsPublished", "SubscribeDataTrack", "RemoteDataTrackIsPublished", "DataTrackStreamRead", "SimulateScenario", "NewPlatformAudio", "GetAudioDevices", "SetRecordingDevice", "SetPlayoutDevice", "StartRecording", "StopRecording", "ReadyForRoomEvent" }, new[]{ "Message" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiResponse), global::LiveKit.Proto.FfiResponse.Parser, new[]{ "Dispose", "Connect", "Disconnect", "PublishTrack", "UnpublishTrack", "PublishData", "SetSubscribed", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetSessionStats", "PublishTranscription", "PublishSipDtmf", "CreateVideoTrack", "CreateAudioTrack", "LocalTrackMute", "EnableRemoteTrack", "GetStats", "SetTrackSubscriptionPermissions", "NewVideoStream", "NewVideoSource", "CaptureVideoFrame", "VideoConvert", "VideoStreamFromParticipant", "NewAudioStream", "NewAudioSource", "CaptureAudioFrame", "ClearAudioBuffer", "NewAudioResampler", "RemixAndResample", "AudioStreamFromParticipant", "E2Ee", "NewSoxResampler", "PushSoxResampler", "FlushSoxResampler", "SendChatMessage", "PerformRpc", "RegisterRpcMethod", "UnregisterRpcMethod", "RpcMethodInvocationResponse", "EnableRemoteTrackPublication", "UpdateRemoteTrackPublicationDimension", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "SetDataChannelBufferedAmountLowThreshold", "LoadAudioFilterPlugin", "NewApm", "ApmProcessStream", "ApmProcessReverseStream", "ApmSetStreamDelay", "ByteReadIncremental", "ByteReadAll", "ByteWriteToFile", "TextReadIncremental", "TextReadAll", "SendFile", "SendText", "ByteStreamOpen", "ByteStreamWrite", "ByteStreamClose", "TextStreamOpen", "TextStreamWrite", "TextStreamClose", "SendBytes", "SetRemoteTrackPublicationQuality", "PublishDataTrack", "LocalDataTrackTryPush", "LocalDataTrackUnpublish", "LocalDataTrackIsPublished", "SubscribeDataTrack", "RemoteDataTrackIsPublished", "DataTrackStreamRead", "SimulateScenario", "NewPlatformAudio", "GetAudioDevices", "SetRecordingDevice", "SetPlayoutDevice", "StartRecording", "StopRecording", "ReadyForRoomEvent" }, new[]{ "Message" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiEvent), global::LiveKit.Proto.FfiEvent.Parser, new[]{ "RoomEvent", "TrackEvent", "VideoStreamEvent", "AudioStreamEvent", "Connect", "Disconnect", "Dispose", "PublishTrack", "UnpublishTrack", "PublishData", "PublishTranscription", "CaptureAudioFrame", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetStats", "Logs", "GetSessionStats", "Panic", "PublishSipDtmf", "ChatMessage", "PerformRpc", "RpcMethodInvocation", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "ByteStreamReaderEvent", "ByteStreamReaderReadAll", "ByteStreamReaderWriteToFile", "ByteStreamOpen", "ByteStreamWriterWrite", "ByteStreamWriterClose", "SendFile", "TextStreamReaderEvent", "TextStreamReaderReadAll", "TextStreamOpen", "TextStreamWriterWrite", "TextStreamWriterClose", "SendText", "SendBytes", "PublishDataTrack", "DataTrackStreamEvent", "SimulateScenario" }, new[]{ "Message" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisposeRequest), global::LiveKit.Proto.DisposeRequest.Parser, new[]{ "Async" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisposeResponse), global::LiveKit.Proto.DisposeResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisposeCallback), global::LiveKit.Proto.DisposeCallback.Parser, new[]{ "AsyncId" }, null, null, null, null), @@ -633,6 +659,30 @@ public FfiRequest(FfiRequest other) : this() { case MessageOneofCase.DataTrackStreamRead: DataTrackStreamRead = other.DataTrackStreamRead.Clone(); break; + case MessageOneofCase.SimulateScenario: + SimulateScenario = other.SimulateScenario.Clone(); + break; + case MessageOneofCase.NewPlatformAudio: + NewPlatformAudio = other.NewPlatformAudio.Clone(); + break; + case MessageOneofCase.GetAudioDevices: + GetAudioDevices = other.GetAudioDevices.Clone(); + break; + case MessageOneofCase.SetRecordingDevice: + SetRecordingDevice = other.SetRecordingDevice.Clone(); + break; + case MessageOneofCase.SetPlayoutDevice: + SetPlayoutDevice = other.SetPlayoutDevice.Clone(); + break; + case MessageOneofCase.StartRecording: + StartRecording = other.StartRecording.Clone(); + break; + case MessageOneofCase.StopRecording: + StopRecording = other.StopRecording.Clone(); + break; + case MessageOneofCase.ReadyForRoomEvent: + ReadyForRoomEvent = other.ReadyForRoomEvent.Clone(); + break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -1568,6 +1618,111 @@ public FfiRequest Clone() { } } + /// Field number for the "simulate_scenario" field. + public const int SimulateScenarioFieldNumber = 76; + /// + /// Reconnection / chaos testing + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.SimulateScenarioRequest SimulateScenario { + get { return messageCase_ == MessageOneofCase.SimulateScenario ? (global::LiveKit.Proto.SimulateScenarioRequest) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.SimulateScenario; + } + } + + /// Field number for the "new_platform_audio" field. + public const int NewPlatformAudioFieldNumber = 77; + /// + /// Platform Audio (ADM) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.NewPlatformAudioRequest NewPlatformAudio { + get { return messageCase_ == MessageOneofCase.NewPlatformAudio ? (global::LiveKit.Proto.NewPlatformAudioRequest) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.NewPlatformAudio; + } + } + + /// Field number for the "get_audio_devices" field. + public const int GetAudioDevicesFieldNumber = 78; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.GetAudioDevicesRequest GetAudioDevices { + get { return messageCase_ == MessageOneofCase.GetAudioDevices ? (global::LiveKit.Proto.GetAudioDevicesRequest) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.GetAudioDevices; + } + } + + /// Field number for the "set_recording_device" field. + public const int SetRecordingDeviceFieldNumber = 79; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.SetRecordingDeviceRequest SetRecordingDevice { + get { return messageCase_ == MessageOneofCase.SetRecordingDevice ? (global::LiveKit.Proto.SetRecordingDeviceRequest) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.SetRecordingDevice; + } + } + + /// Field number for the "set_playout_device" field. + public const int SetPlayoutDeviceFieldNumber = 80; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.SetPlayoutDeviceRequest SetPlayoutDevice { + get { return messageCase_ == MessageOneofCase.SetPlayoutDevice ? (global::LiveKit.Proto.SetPlayoutDeviceRequest) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.SetPlayoutDevice; + } + } + + /// Field number for the "start_recording" field. + public const int StartRecordingFieldNumber = 81; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.StartRecordingRequest StartRecording { + get { return messageCase_ == MessageOneofCase.StartRecording ? (global::LiveKit.Proto.StartRecordingRequest) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.StartRecording; + } + } + + /// Field number for the "stop_recording" field. + public const int StopRecordingFieldNumber = 82; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.StopRecordingRequest StopRecording { + get { return messageCase_ == MessageOneofCase.StopRecording ? (global::LiveKit.Proto.StopRecordingRequest) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.StopRecording; + } + } + + /// Field number for the "ready_for_room_event" field. + public const int ReadyForRoomEventFieldNumber = 83; + /// + /// Room event ready signal + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.ReadyForRoomEventRequest ReadyForRoomEvent { + get { return messageCase_ == MessageOneofCase.ReadyForRoomEvent ? (global::LiveKit.Proto.ReadyForRoomEventRequest) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.ReadyForRoomEvent; + } + } + private object message_; /// Enum of possible cases for the "message" oneof. public enum MessageOneofCase { @@ -1646,6 +1801,14 @@ public enum MessageOneofCase { SubscribeDataTrack = 73, RemoteDataTrackIsPublished = 74, DataTrackStreamRead = 75, + SimulateScenario = 76, + NewPlatformAudio = 77, + GetAudioDevices = 78, + SetRecordingDevice = 79, + SetPlayoutDevice = 80, + StartRecording = 81, + StopRecording = 82, + ReadyForRoomEvent = 83, } private MessageOneofCase messageCase_ = MessageOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -1750,6 +1913,14 @@ public bool Equals(FfiRequest other) { if (!object.Equals(SubscribeDataTrack, other.SubscribeDataTrack)) return false; if (!object.Equals(RemoteDataTrackIsPublished, other.RemoteDataTrackIsPublished)) return false; if (!object.Equals(DataTrackStreamRead, other.DataTrackStreamRead)) return false; + if (!object.Equals(SimulateScenario, other.SimulateScenario)) return false; + if (!object.Equals(NewPlatformAudio, other.NewPlatformAudio)) return false; + if (!object.Equals(GetAudioDevices, other.GetAudioDevices)) return false; + if (!object.Equals(SetRecordingDevice, other.SetRecordingDevice)) return false; + if (!object.Equals(SetPlayoutDevice, other.SetPlayoutDevice)) return false; + if (!object.Equals(StartRecording, other.StartRecording)) return false; + if (!object.Equals(StopRecording, other.StopRecording)) return false; + if (!object.Equals(ReadyForRoomEvent, other.ReadyForRoomEvent)) return false; if (MessageCase != other.MessageCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1832,6 +2003,14 @@ public override int GetHashCode() { if (messageCase_ == MessageOneofCase.SubscribeDataTrack) hash ^= SubscribeDataTrack.GetHashCode(); if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) hash ^= RemoteDataTrackIsPublished.GetHashCode(); if (messageCase_ == MessageOneofCase.DataTrackStreamRead) hash ^= DataTrackStreamRead.GetHashCode(); + if (messageCase_ == MessageOneofCase.SimulateScenario) hash ^= SimulateScenario.GetHashCode(); + if (messageCase_ == MessageOneofCase.NewPlatformAudio) hash ^= NewPlatformAudio.GetHashCode(); + if (messageCase_ == MessageOneofCase.GetAudioDevices) hash ^= GetAudioDevices.GetHashCode(); + if (messageCase_ == MessageOneofCase.SetRecordingDevice) hash ^= SetRecordingDevice.GetHashCode(); + if (messageCase_ == MessageOneofCase.SetPlayoutDevice) hash ^= SetPlayoutDevice.GetHashCode(); + if (messageCase_ == MessageOneofCase.StartRecording) hash ^= StartRecording.GetHashCode(); + if (messageCase_ == MessageOneofCase.StopRecording) hash ^= StopRecording.GetHashCode(); + if (messageCase_ == MessageOneofCase.ReadyForRoomEvent) hash ^= ReadyForRoomEvent.GetHashCode(); hash ^= (int) messageCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -2147,6 +2326,38 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(218, 4); output.WriteMessage(DataTrackStreamRead); } + if (messageCase_ == MessageOneofCase.SimulateScenario) { + output.WriteRawTag(226, 4); + output.WriteMessage(SimulateScenario); + } + if (messageCase_ == MessageOneofCase.NewPlatformAudio) { + output.WriteRawTag(234, 4); + output.WriteMessage(NewPlatformAudio); + } + if (messageCase_ == MessageOneofCase.GetAudioDevices) { + output.WriteRawTag(242, 4); + output.WriteMessage(GetAudioDevices); + } + if (messageCase_ == MessageOneofCase.SetRecordingDevice) { + output.WriteRawTag(250, 4); + output.WriteMessage(SetRecordingDevice); + } + if (messageCase_ == MessageOneofCase.SetPlayoutDevice) { + output.WriteRawTag(130, 5); + output.WriteMessage(SetPlayoutDevice); + } + if (messageCase_ == MessageOneofCase.StartRecording) { + output.WriteRawTag(138, 5); + output.WriteMessage(StartRecording); + } + if (messageCase_ == MessageOneofCase.StopRecording) { + output.WriteRawTag(146, 5); + output.WriteMessage(StopRecording); + } + if (messageCase_ == MessageOneofCase.ReadyForRoomEvent) { + output.WriteRawTag(154, 5); + output.WriteMessage(ReadyForRoomEvent); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -2453,6 +2664,38 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(218, 4); output.WriteMessage(DataTrackStreamRead); } + if (messageCase_ == MessageOneofCase.SimulateScenario) { + output.WriteRawTag(226, 4); + output.WriteMessage(SimulateScenario); + } + if (messageCase_ == MessageOneofCase.NewPlatformAudio) { + output.WriteRawTag(234, 4); + output.WriteMessage(NewPlatformAudio); + } + if (messageCase_ == MessageOneofCase.GetAudioDevices) { + output.WriteRawTag(242, 4); + output.WriteMessage(GetAudioDevices); + } + if (messageCase_ == MessageOneofCase.SetRecordingDevice) { + output.WriteRawTag(250, 4); + output.WriteMessage(SetRecordingDevice); + } + if (messageCase_ == MessageOneofCase.SetPlayoutDevice) { + output.WriteRawTag(130, 5); + output.WriteMessage(SetPlayoutDevice); + } + if (messageCase_ == MessageOneofCase.StartRecording) { + output.WriteRawTag(138, 5); + output.WriteMessage(StartRecording); + } + if (messageCase_ == MessageOneofCase.StopRecording) { + output.WriteRawTag(146, 5); + output.WriteMessage(StopRecording); + } + if (messageCase_ == MessageOneofCase.ReadyForRoomEvent) { + output.WriteRawTag(154, 5); + output.WriteMessage(ReadyForRoomEvent); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -2685,6 +2928,30 @@ public int CalculateSize() { if (messageCase_ == MessageOneofCase.DataTrackStreamRead) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(DataTrackStreamRead); } + if (messageCase_ == MessageOneofCase.SimulateScenario) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(SimulateScenario); + } + if (messageCase_ == MessageOneofCase.NewPlatformAudio) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(NewPlatformAudio); + } + if (messageCase_ == MessageOneofCase.GetAudioDevices) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(GetAudioDevices); + } + if (messageCase_ == MessageOneofCase.SetRecordingDevice) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(SetRecordingDevice); + } + if (messageCase_ == MessageOneofCase.SetPlayoutDevice) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(SetPlayoutDevice); + } + if (messageCase_ == MessageOneofCase.StartRecording) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(StartRecording); + } + if (messageCase_ == MessageOneofCase.StopRecording) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(StopRecording); + } + if (messageCase_ == MessageOneofCase.ReadyForRoomEvent) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(ReadyForRoomEvent); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -3142,6 +3409,54 @@ public void MergeFrom(FfiRequest other) { } DataTrackStreamRead.MergeFrom(other.DataTrackStreamRead); break; + case MessageOneofCase.SimulateScenario: + if (SimulateScenario == null) { + SimulateScenario = new global::LiveKit.Proto.SimulateScenarioRequest(); + } + SimulateScenario.MergeFrom(other.SimulateScenario); + break; + case MessageOneofCase.NewPlatformAudio: + if (NewPlatformAudio == null) { + NewPlatformAudio = new global::LiveKit.Proto.NewPlatformAudioRequest(); + } + NewPlatformAudio.MergeFrom(other.NewPlatformAudio); + break; + case MessageOneofCase.GetAudioDevices: + if (GetAudioDevices == null) { + GetAudioDevices = new global::LiveKit.Proto.GetAudioDevicesRequest(); + } + GetAudioDevices.MergeFrom(other.GetAudioDevices); + break; + case MessageOneofCase.SetRecordingDevice: + if (SetRecordingDevice == null) { + SetRecordingDevice = new global::LiveKit.Proto.SetRecordingDeviceRequest(); + } + SetRecordingDevice.MergeFrom(other.SetRecordingDevice); + break; + case MessageOneofCase.SetPlayoutDevice: + if (SetPlayoutDevice == null) { + SetPlayoutDevice = new global::LiveKit.Proto.SetPlayoutDeviceRequest(); + } + SetPlayoutDevice.MergeFrom(other.SetPlayoutDevice); + break; + case MessageOneofCase.StartRecording: + if (StartRecording == null) { + StartRecording = new global::LiveKit.Proto.StartRecordingRequest(); + } + StartRecording.MergeFrom(other.StartRecording); + break; + case MessageOneofCase.StopRecording: + if (StopRecording == null) { + StopRecording = new global::LiveKit.Proto.StopRecordingRequest(); + } + StopRecording.MergeFrom(other.StopRecording); + break; + case MessageOneofCase.ReadyForRoomEvent: + if (ReadyForRoomEvent == null) { + ReadyForRoomEvent = new global::LiveKit.Proto.ReadyForRoomEventRequest(); + } + ReadyForRoomEvent.MergeFrom(other.ReadyForRoomEvent); + break; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -3829,6 +4144,78 @@ public void MergeFrom(pb::CodedInputStream input) { DataTrackStreamRead = subBuilder; break; } + case 610: { + global::LiveKit.Proto.SimulateScenarioRequest subBuilder = new global::LiveKit.Proto.SimulateScenarioRequest(); + if (messageCase_ == MessageOneofCase.SimulateScenario) { + subBuilder.MergeFrom(SimulateScenario); + } + input.ReadMessage(subBuilder); + SimulateScenario = subBuilder; + break; + } + case 618: { + global::LiveKit.Proto.NewPlatformAudioRequest subBuilder = new global::LiveKit.Proto.NewPlatformAudioRequest(); + if (messageCase_ == MessageOneofCase.NewPlatformAudio) { + subBuilder.MergeFrom(NewPlatformAudio); + } + input.ReadMessage(subBuilder); + NewPlatformAudio = subBuilder; + break; + } + case 626: { + global::LiveKit.Proto.GetAudioDevicesRequest subBuilder = new global::LiveKit.Proto.GetAudioDevicesRequest(); + if (messageCase_ == MessageOneofCase.GetAudioDevices) { + subBuilder.MergeFrom(GetAudioDevices); + } + input.ReadMessage(subBuilder); + GetAudioDevices = subBuilder; + break; + } + case 634: { + global::LiveKit.Proto.SetRecordingDeviceRequest subBuilder = new global::LiveKit.Proto.SetRecordingDeviceRequest(); + if (messageCase_ == MessageOneofCase.SetRecordingDevice) { + subBuilder.MergeFrom(SetRecordingDevice); + } + input.ReadMessage(subBuilder); + SetRecordingDevice = subBuilder; + break; + } + case 642: { + global::LiveKit.Proto.SetPlayoutDeviceRequest subBuilder = new global::LiveKit.Proto.SetPlayoutDeviceRequest(); + if (messageCase_ == MessageOneofCase.SetPlayoutDevice) { + subBuilder.MergeFrom(SetPlayoutDevice); + } + input.ReadMessage(subBuilder); + SetPlayoutDevice = subBuilder; + break; + } + case 650: { + global::LiveKit.Proto.StartRecordingRequest subBuilder = new global::LiveKit.Proto.StartRecordingRequest(); + if (messageCase_ == MessageOneofCase.StartRecording) { + subBuilder.MergeFrom(StartRecording); + } + input.ReadMessage(subBuilder); + StartRecording = subBuilder; + break; + } + case 658: { + global::LiveKit.Proto.StopRecordingRequest subBuilder = new global::LiveKit.Proto.StopRecordingRequest(); + if (messageCase_ == MessageOneofCase.StopRecording) { + subBuilder.MergeFrom(StopRecording); + } + input.ReadMessage(subBuilder); + StopRecording = subBuilder; + break; + } + case 666: { + global::LiveKit.Proto.ReadyForRoomEventRequest subBuilder = new global::LiveKit.Proto.ReadyForRoomEventRequest(); + if (messageCase_ == MessageOneofCase.ReadyForRoomEvent) { + subBuilder.MergeFrom(ReadyForRoomEvent); + } + input.ReadMessage(subBuilder); + ReadyForRoomEvent = subBuilder; + break; + } } } #endif @@ -4514,6 +4901,78 @@ public void MergeFrom(pb::CodedInputStream input) { DataTrackStreamRead = subBuilder; break; } + case 610: { + global::LiveKit.Proto.SimulateScenarioRequest subBuilder = new global::LiveKit.Proto.SimulateScenarioRequest(); + if (messageCase_ == MessageOneofCase.SimulateScenario) { + subBuilder.MergeFrom(SimulateScenario); + } + input.ReadMessage(subBuilder); + SimulateScenario = subBuilder; + break; + } + case 618: { + global::LiveKit.Proto.NewPlatformAudioRequest subBuilder = new global::LiveKit.Proto.NewPlatformAudioRequest(); + if (messageCase_ == MessageOneofCase.NewPlatformAudio) { + subBuilder.MergeFrom(NewPlatformAudio); + } + input.ReadMessage(subBuilder); + NewPlatformAudio = subBuilder; + break; + } + case 626: { + global::LiveKit.Proto.GetAudioDevicesRequest subBuilder = new global::LiveKit.Proto.GetAudioDevicesRequest(); + if (messageCase_ == MessageOneofCase.GetAudioDevices) { + subBuilder.MergeFrom(GetAudioDevices); + } + input.ReadMessage(subBuilder); + GetAudioDevices = subBuilder; + break; + } + case 634: { + global::LiveKit.Proto.SetRecordingDeviceRequest subBuilder = new global::LiveKit.Proto.SetRecordingDeviceRequest(); + if (messageCase_ == MessageOneofCase.SetRecordingDevice) { + subBuilder.MergeFrom(SetRecordingDevice); + } + input.ReadMessage(subBuilder); + SetRecordingDevice = subBuilder; + break; + } + case 642: { + global::LiveKit.Proto.SetPlayoutDeviceRequest subBuilder = new global::LiveKit.Proto.SetPlayoutDeviceRequest(); + if (messageCase_ == MessageOneofCase.SetPlayoutDevice) { + subBuilder.MergeFrom(SetPlayoutDevice); + } + input.ReadMessage(subBuilder); + SetPlayoutDevice = subBuilder; + break; + } + case 650: { + global::LiveKit.Proto.StartRecordingRequest subBuilder = new global::LiveKit.Proto.StartRecordingRequest(); + if (messageCase_ == MessageOneofCase.StartRecording) { + subBuilder.MergeFrom(StartRecording); + } + input.ReadMessage(subBuilder); + StartRecording = subBuilder; + break; + } + case 658: { + global::LiveKit.Proto.StopRecordingRequest subBuilder = new global::LiveKit.Proto.StopRecordingRequest(); + if (messageCase_ == MessageOneofCase.StopRecording) { + subBuilder.MergeFrom(StopRecording); + } + input.ReadMessage(subBuilder); + StopRecording = subBuilder; + break; + } + case 666: { + global::LiveKit.Proto.ReadyForRoomEventRequest subBuilder = new global::LiveKit.Proto.ReadyForRoomEventRequest(); + if (messageCase_ == MessageOneofCase.ReadyForRoomEvent) { + subBuilder.MergeFrom(ReadyForRoomEvent); + } + input.ReadMessage(subBuilder); + ReadyForRoomEvent = subBuilder; + break; + } } } } @@ -4779,6 +5238,30 @@ public FfiResponse(FfiResponse other) : this() { case MessageOneofCase.DataTrackStreamRead: DataTrackStreamRead = other.DataTrackStreamRead.Clone(); break; + case MessageOneofCase.SimulateScenario: + SimulateScenario = other.SimulateScenario.Clone(); + break; + case MessageOneofCase.NewPlatformAudio: + NewPlatformAudio = other.NewPlatformAudio.Clone(); + break; + case MessageOneofCase.GetAudioDevices: + GetAudioDevices = other.GetAudioDevices.Clone(); + break; + case MessageOneofCase.SetRecordingDevice: + SetRecordingDevice = other.SetRecordingDevice.Clone(); + break; + case MessageOneofCase.SetPlayoutDevice: + SetPlayoutDevice = other.SetPlayoutDevice.Clone(); + break; + case MessageOneofCase.StartRecording: + StartRecording = other.StartRecording.Clone(); + break; + case MessageOneofCase.StopRecording: + StopRecording = other.StopRecording.Clone(); + break; + case MessageOneofCase.ReadyForRoomEvent: + ReadyForRoomEvent = other.ReadyForRoomEvent.Clone(); + break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -5702,6 +6185,111 @@ public FfiResponse Clone() { } } + /// Field number for the "simulate_scenario" field. + public const int SimulateScenarioFieldNumber = 75; + /// + /// Reconnection / chaos testing + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.SimulateScenarioResponse SimulateScenario { + get { return messageCase_ == MessageOneofCase.SimulateScenario ? (global::LiveKit.Proto.SimulateScenarioResponse) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.SimulateScenario; + } + } + + /// Field number for the "new_platform_audio" field. + public const int NewPlatformAudioFieldNumber = 76; + /// + /// Platform Audio (ADM) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.NewPlatformAudioResponse NewPlatformAudio { + get { return messageCase_ == MessageOneofCase.NewPlatformAudio ? (global::LiveKit.Proto.NewPlatformAudioResponse) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.NewPlatformAudio; + } + } + + /// Field number for the "get_audio_devices" field. + public const int GetAudioDevicesFieldNumber = 77; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.GetAudioDevicesResponse GetAudioDevices { + get { return messageCase_ == MessageOneofCase.GetAudioDevices ? (global::LiveKit.Proto.GetAudioDevicesResponse) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.GetAudioDevices; + } + } + + /// Field number for the "set_recording_device" field. + public const int SetRecordingDeviceFieldNumber = 78; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.SetRecordingDeviceResponse SetRecordingDevice { + get { return messageCase_ == MessageOneofCase.SetRecordingDevice ? (global::LiveKit.Proto.SetRecordingDeviceResponse) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.SetRecordingDevice; + } + } + + /// Field number for the "set_playout_device" field. + public const int SetPlayoutDeviceFieldNumber = 79; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.SetPlayoutDeviceResponse SetPlayoutDevice { + get { return messageCase_ == MessageOneofCase.SetPlayoutDevice ? (global::LiveKit.Proto.SetPlayoutDeviceResponse) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.SetPlayoutDevice; + } + } + + /// Field number for the "start_recording" field. + public const int StartRecordingFieldNumber = 80; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.StartRecordingResponse StartRecording { + get { return messageCase_ == MessageOneofCase.StartRecording ? (global::LiveKit.Proto.StartRecordingResponse) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.StartRecording; + } + } + + /// Field number for the "stop_recording" field. + public const int StopRecordingFieldNumber = 81; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.StopRecordingResponse StopRecording { + get { return messageCase_ == MessageOneofCase.StopRecording ? (global::LiveKit.Proto.StopRecordingResponse) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.StopRecording; + } + } + + /// Field number for the "ready_for_room_event" field. + public const int ReadyForRoomEventFieldNumber = 82; + /// + /// Room event ready signal + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.ReadyForRoomEventResponse ReadyForRoomEvent { + get { return messageCase_ == MessageOneofCase.ReadyForRoomEvent ? (global::LiveKit.Proto.ReadyForRoomEventResponse) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.ReadyForRoomEvent; + } + } + private object message_; /// Enum of possible cases for the "message" oneof. public enum MessageOneofCase { @@ -5779,6 +6367,14 @@ public enum MessageOneofCase { SubscribeDataTrack = 72, RemoteDataTrackIsPublished = 73, DataTrackStreamRead = 74, + SimulateScenario = 75, + NewPlatformAudio = 76, + GetAudioDevices = 77, + SetRecordingDevice = 78, + SetPlayoutDevice = 79, + StartRecording = 80, + StopRecording = 81, + ReadyForRoomEvent = 82, } private MessageOneofCase messageCase_ = MessageOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -5882,6 +6478,14 @@ public bool Equals(FfiResponse other) { if (!object.Equals(SubscribeDataTrack, other.SubscribeDataTrack)) return false; if (!object.Equals(RemoteDataTrackIsPublished, other.RemoteDataTrackIsPublished)) return false; if (!object.Equals(DataTrackStreamRead, other.DataTrackStreamRead)) return false; + if (!object.Equals(SimulateScenario, other.SimulateScenario)) return false; + if (!object.Equals(NewPlatformAudio, other.NewPlatformAudio)) return false; + if (!object.Equals(GetAudioDevices, other.GetAudioDevices)) return false; + if (!object.Equals(SetRecordingDevice, other.SetRecordingDevice)) return false; + if (!object.Equals(SetPlayoutDevice, other.SetPlayoutDevice)) return false; + if (!object.Equals(StartRecording, other.StartRecording)) return false; + if (!object.Equals(StopRecording, other.StopRecording)) return false; + if (!object.Equals(ReadyForRoomEvent, other.ReadyForRoomEvent)) return false; if (MessageCase != other.MessageCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -5963,6 +6567,14 @@ public override int GetHashCode() { if (messageCase_ == MessageOneofCase.SubscribeDataTrack) hash ^= SubscribeDataTrack.GetHashCode(); if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) hash ^= RemoteDataTrackIsPublished.GetHashCode(); if (messageCase_ == MessageOneofCase.DataTrackStreamRead) hash ^= DataTrackStreamRead.GetHashCode(); + if (messageCase_ == MessageOneofCase.SimulateScenario) hash ^= SimulateScenario.GetHashCode(); + if (messageCase_ == MessageOneofCase.NewPlatformAudio) hash ^= NewPlatformAudio.GetHashCode(); + if (messageCase_ == MessageOneofCase.GetAudioDevices) hash ^= GetAudioDevices.GetHashCode(); + if (messageCase_ == MessageOneofCase.SetRecordingDevice) hash ^= SetRecordingDevice.GetHashCode(); + if (messageCase_ == MessageOneofCase.SetPlayoutDevice) hash ^= SetPlayoutDevice.GetHashCode(); + if (messageCase_ == MessageOneofCase.StartRecording) hash ^= StartRecording.GetHashCode(); + if (messageCase_ == MessageOneofCase.StopRecording) hash ^= StopRecording.GetHashCode(); + if (messageCase_ == MessageOneofCase.ReadyForRoomEvent) hash ^= ReadyForRoomEvent.GetHashCode(); hash ^= (int) messageCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -6274,6 +6886,38 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(210, 4); output.WriteMessage(DataTrackStreamRead); } + if (messageCase_ == MessageOneofCase.SimulateScenario) { + output.WriteRawTag(218, 4); + output.WriteMessage(SimulateScenario); + } + if (messageCase_ == MessageOneofCase.NewPlatformAudio) { + output.WriteRawTag(226, 4); + output.WriteMessage(NewPlatformAudio); + } + if (messageCase_ == MessageOneofCase.GetAudioDevices) { + output.WriteRawTag(234, 4); + output.WriteMessage(GetAudioDevices); + } + if (messageCase_ == MessageOneofCase.SetRecordingDevice) { + output.WriteRawTag(242, 4); + output.WriteMessage(SetRecordingDevice); + } + if (messageCase_ == MessageOneofCase.SetPlayoutDevice) { + output.WriteRawTag(250, 4); + output.WriteMessage(SetPlayoutDevice); + } + if (messageCase_ == MessageOneofCase.StartRecording) { + output.WriteRawTag(130, 5); + output.WriteMessage(StartRecording); + } + if (messageCase_ == MessageOneofCase.StopRecording) { + output.WriteRawTag(138, 5); + output.WriteMessage(StopRecording); + } + if (messageCase_ == MessageOneofCase.ReadyForRoomEvent) { + output.WriteRawTag(146, 5); + output.WriteMessage(ReadyForRoomEvent); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -6576,6 +7220,38 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(210, 4); output.WriteMessage(DataTrackStreamRead); } + if (messageCase_ == MessageOneofCase.SimulateScenario) { + output.WriteRawTag(218, 4); + output.WriteMessage(SimulateScenario); + } + if (messageCase_ == MessageOneofCase.NewPlatformAudio) { + output.WriteRawTag(226, 4); + output.WriteMessage(NewPlatformAudio); + } + if (messageCase_ == MessageOneofCase.GetAudioDevices) { + output.WriteRawTag(234, 4); + output.WriteMessage(GetAudioDevices); + } + if (messageCase_ == MessageOneofCase.SetRecordingDevice) { + output.WriteRawTag(242, 4); + output.WriteMessage(SetRecordingDevice); + } + if (messageCase_ == MessageOneofCase.SetPlayoutDevice) { + output.WriteRawTag(250, 4); + output.WriteMessage(SetPlayoutDevice); + } + if (messageCase_ == MessageOneofCase.StartRecording) { + output.WriteRawTag(130, 5); + output.WriteMessage(StartRecording); + } + if (messageCase_ == MessageOneofCase.StopRecording) { + output.WriteRawTag(138, 5); + output.WriteMessage(StopRecording); + } + if (messageCase_ == MessageOneofCase.ReadyForRoomEvent) { + output.WriteRawTag(146, 5); + output.WriteMessage(ReadyForRoomEvent); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -6805,6 +7481,30 @@ public int CalculateSize() { if (messageCase_ == MessageOneofCase.DataTrackStreamRead) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(DataTrackStreamRead); } + if (messageCase_ == MessageOneofCase.SimulateScenario) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(SimulateScenario); + } + if (messageCase_ == MessageOneofCase.NewPlatformAudio) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(NewPlatformAudio); + } + if (messageCase_ == MessageOneofCase.GetAudioDevices) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(GetAudioDevices); + } + if (messageCase_ == MessageOneofCase.SetRecordingDevice) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(SetRecordingDevice); + } + if (messageCase_ == MessageOneofCase.SetPlayoutDevice) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(SetPlayoutDevice); + } + if (messageCase_ == MessageOneofCase.StartRecording) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(StartRecording); + } + if (messageCase_ == MessageOneofCase.StopRecording) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(StopRecording); + } + if (messageCase_ == MessageOneofCase.ReadyForRoomEvent) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(ReadyForRoomEvent); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -7256,6 +7956,54 @@ public void MergeFrom(FfiResponse other) { } DataTrackStreamRead.MergeFrom(other.DataTrackStreamRead); break; + case MessageOneofCase.SimulateScenario: + if (SimulateScenario == null) { + SimulateScenario = new global::LiveKit.Proto.SimulateScenarioResponse(); + } + SimulateScenario.MergeFrom(other.SimulateScenario); + break; + case MessageOneofCase.NewPlatformAudio: + if (NewPlatformAudio == null) { + NewPlatformAudio = new global::LiveKit.Proto.NewPlatformAudioResponse(); + } + NewPlatformAudio.MergeFrom(other.NewPlatformAudio); + break; + case MessageOneofCase.GetAudioDevices: + if (GetAudioDevices == null) { + GetAudioDevices = new global::LiveKit.Proto.GetAudioDevicesResponse(); + } + GetAudioDevices.MergeFrom(other.GetAudioDevices); + break; + case MessageOneofCase.SetRecordingDevice: + if (SetRecordingDevice == null) { + SetRecordingDevice = new global::LiveKit.Proto.SetRecordingDeviceResponse(); + } + SetRecordingDevice.MergeFrom(other.SetRecordingDevice); + break; + case MessageOneofCase.SetPlayoutDevice: + if (SetPlayoutDevice == null) { + SetPlayoutDevice = new global::LiveKit.Proto.SetPlayoutDeviceResponse(); + } + SetPlayoutDevice.MergeFrom(other.SetPlayoutDevice); + break; + case MessageOneofCase.StartRecording: + if (StartRecording == null) { + StartRecording = new global::LiveKit.Proto.StartRecordingResponse(); + } + StartRecording.MergeFrom(other.StartRecording); + break; + case MessageOneofCase.StopRecording: + if (StopRecording == null) { + StopRecording = new global::LiveKit.Proto.StopRecordingResponse(); + } + StopRecording.MergeFrom(other.StopRecording); + break; + case MessageOneofCase.ReadyForRoomEvent: + if (ReadyForRoomEvent == null) { + ReadyForRoomEvent = new global::LiveKit.Proto.ReadyForRoomEventResponse(); + } + ReadyForRoomEvent.MergeFrom(other.ReadyForRoomEvent); + break; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -7934,6 +8682,78 @@ public void MergeFrom(pb::CodedInputStream input) { DataTrackStreamRead = subBuilder; break; } + case 602: { + global::LiveKit.Proto.SimulateScenarioResponse subBuilder = new global::LiveKit.Proto.SimulateScenarioResponse(); + if (messageCase_ == MessageOneofCase.SimulateScenario) { + subBuilder.MergeFrom(SimulateScenario); + } + input.ReadMessage(subBuilder); + SimulateScenario = subBuilder; + break; + } + case 610: { + global::LiveKit.Proto.NewPlatformAudioResponse subBuilder = new global::LiveKit.Proto.NewPlatformAudioResponse(); + if (messageCase_ == MessageOneofCase.NewPlatformAudio) { + subBuilder.MergeFrom(NewPlatformAudio); + } + input.ReadMessage(subBuilder); + NewPlatformAudio = subBuilder; + break; + } + case 618: { + global::LiveKit.Proto.GetAudioDevicesResponse subBuilder = new global::LiveKit.Proto.GetAudioDevicesResponse(); + if (messageCase_ == MessageOneofCase.GetAudioDevices) { + subBuilder.MergeFrom(GetAudioDevices); + } + input.ReadMessage(subBuilder); + GetAudioDevices = subBuilder; + break; + } + case 626: { + global::LiveKit.Proto.SetRecordingDeviceResponse subBuilder = new global::LiveKit.Proto.SetRecordingDeviceResponse(); + if (messageCase_ == MessageOneofCase.SetRecordingDevice) { + subBuilder.MergeFrom(SetRecordingDevice); + } + input.ReadMessage(subBuilder); + SetRecordingDevice = subBuilder; + break; + } + case 634: { + global::LiveKit.Proto.SetPlayoutDeviceResponse subBuilder = new global::LiveKit.Proto.SetPlayoutDeviceResponse(); + if (messageCase_ == MessageOneofCase.SetPlayoutDevice) { + subBuilder.MergeFrom(SetPlayoutDevice); + } + input.ReadMessage(subBuilder); + SetPlayoutDevice = subBuilder; + break; + } + case 642: { + global::LiveKit.Proto.StartRecordingResponse subBuilder = new global::LiveKit.Proto.StartRecordingResponse(); + if (messageCase_ == MessageOneofCase.StartRecording) { + subBuilder.MergeFrom(StartRecording); + } + input.ReadMessage(subBuilder); + StartRecording = subBuilder; + break; + } + case 650: { + global::LiveKit.Proto.StopRecordingResponse subBuilder = new global::LiveKit.Proto.StopRecordingResponse(); + if (messageCase_ == MessageOneofCase.StopRecording) { + subBuilder.MergeFrom(StopRecording); + } + input.ReadMessage(subBuilder); + StopRecording = subBuilder; + break; + } + case 658: { + global::LiveKit.Proto.ReadyForRoomEventResponse subBuilder = new global::LiveKit.Proto.ReadyForRoomEventResponse(); + if (messageCase_ == MessageOneofCase.ReadyForRoomEvent) { + subBuilder.MergeFrom(ReadyForRoomEvent); + } + input.ReadMessage(subBuilder); + ReadyForRoomEvent = subBuilder; + break; + } } } #endif @@ -8610,6 +9430,78 @@ public void MergeFrom(pb::CodedInputStream input) { DataTrackStreamRead = subBuilder; break; } + case 602: { + global::LiveKit.Proto.SimulateScenarioResponse subBuilder = new global::LiveKit.Proto.SimulateScenarioResponse(); + if (messageCase_ == MessageOneofCase.SimulateScenario) { + subBuilder.MergeFrom(SimulateScenario); + } + input.ReadMessage(subBuilder); + SimulateScenario = subBuilder; + break; + } + case 610: { + global::LiveKit.Proto.NewPlatformAudioResponse subBuilder = new global::LiveKit.Proto.NewPlatformAudioResponse(); + if (messageCase_ == MessageOneofCase.NewPlatformAudio) { + subBuilder.MergeFrom(NewPlatformAudio); + } + input.ReadMessage(subBuilder); + NewPlatformAudio = subBuilder; + break; + } + case 618: { + global::LiveKit.Proto.GetAudioDevicesResponse subBuilder = new global::LiveKit.Proto.GetAudioDevicesResponse(); + if (messageCase_ == MessageOneofCase.GetAudioDevices) { + subBuilder.MergeFrom(GetAudioDevices); + } + input.ReadMessage(subBuilder); + GetAudioDevices = subBuilder; + break; + } + case 626: { + global::LiveKit.Proto.SetRecordingDeviceResponse subBuilder = new global::LiveKit.Proto.SetRecordingDeviceResponse(); + if (messageCase_ == MessageOneofCase.SetRecordingDevice) { + subBuilder.MergeFrom(SetRecordingDevice); + } + input.ReadMessage(subBuilder); + SetRecordingDevice = subBuilder; + break; + } + case 634: { + global::LiveKit.Proto.SetPlayoutDeviceResponse subBuilder = new global::LiveKit.Proto.SetPlayoutDeviceResponse(); + if (messageCase_ == MessageOneofCase.SetPlayoutDevice) { + subBuilder.MergeFrom(SetPlayoutDevice); + } + input.ReadMessage(subBuilder); + SetPlayoutDevice = subBuilder; + break; + } + case 642: { + global::LiveKit.Proto.StartRecordingResponse subBuilder = new global::LiveKit.Proto.StartRecordingResponse(); + if (messageCase_ == MessageOneofCase.StartRecording) { + subBuilder.MergeFrom(StartRecording); + } + input.ReadMessage(subBuilder); + StartRecording = subBuilder; + break; + } + case 650: { + global::LiveKit.Proto.StopRecordingResponse subBuilder = new global::LiveKit.Proto.StopRecordingResponse(); + if (messageCase_ == MessageOneofCase.StopRecording) { + subBuilder.MergeFrom(StopRecording); + } + input.ReadMessage(subBuilder); + StopRecording = subBuilder; + break; + } + case 658: { + global::LiveKit.Proto.ReadyForRoomEventResponse subBuilder = new global::LiveKit.Proto.ReadyForRoomEventResponse(); + if (messageCase_ == MessageOneofCase.ReadyForRoomEvent) { + subBuilder.MergeFrom(ReadyForRoomEvent); + } + input.ReadMessage(subBuilder); + ReadyForRoomEvent = subBuilder; + break; + } } } } @@ -8784,6 +9676,9 @@ public FfiEvent(FfiEvent other) : this() { case MessageOneofCase.DataTrackStreamEvent: DataTrackStreamEvent = other.DataTrackStreamEvent.Clone(); break; + case MessageOneofCase.SimulateScenario: + SimulateScenario = other.SimulateScenario.Clone(); + break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -9311,6 +10206,18 @@ public FfiEvent Clone() { } } + /// Field number for the "simulate_scenario" field. + public const int SimulateScenarioFieldNumber = 44; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.SimulateScenarioCallback SimulateScenario { + get { return messageCase_ == MessageOneofCase.SimulateScenario ? (global::LiveKit.Proto.SimulateScenarioCallback) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.SimulateScenario; + } + } + private object message_; /// Enum of possible cases for the "message" oneof. public enum MessageOneofCase { @@ -9357,6 +10264,7 @@ public enum MessageOneofCase { SendBytes = 41, PublishDataTrack = 42, DataTrackStreamEvent = 43, + SimulateScenario = 44, } private MessageOneofCase messageCase_ = MessageOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -9429,6 +10337,7 @@ public bool Equals(FfiEvent other) { if (!object.Equals(SendBytes, other.SendBytes)) return false; if (!object.Equals(PublishDataTrack, other.PublishDataTrack)) return false; if (!object.Equals(DataTrackStreamEvent, other.DataTrackStreamEvent)) return false; + if (!object.Equals(SimulateScenario, other.SimulateScenario)) return false; if (MessageCase != other.MessageCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -9479,6 +10388,7 @@ public override int GetHashCode() { if (messageCase_ == MessageOneofCase.SendBytes) hash ^= SendBytes.GetHashCode(); if (messageCase_ == MessageOneofCase.PublishDataTrack) hash ^= PublishDataTrack.GetHashCode(); if (messageCase_ == MessageOneofCase.DataTrackStreamEvent) hash ^= DataTrackStreamEvent.GetHashCode(); + if (messageCase_ == MessageOneofCase.SimulateScenario) hash ^= SimulateScenario.GetHashCode(); hash ^= (int) messageCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -9666,6 +10576,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(218, 2); output.WriteMessage(DataTrackStreamEvent); } + if (messageCase_ == MessageOneofCase.SimulateScenario) { + output.WriteRawTag(226, 2); + output.WriteMessage(SimulateScenario); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -9844,6 +10758,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(218, 2); output.WriteMessage(DataTrackStreamEvent); } + if (messageCase_ == MessageOneofCase.SimulateScenario) { + output.WriteRawTag(226, 2); + output.WriteMessage(SimulateScenario); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -9980,6 +10898,9 @@ public int CalculateSize() { if (messageCase_ == MessageOneofCase.DataTrackStreamEvent) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(DataTrackStreamEvent); } + if (messageCase_ == MessageOneofCase.SimulateScenario) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(SimulateScenario); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -10245,6 +11166,12 @@ public void MergeFrom(FfiEvent other) { } DataTrackStreamEvent.MergeFrom(other.DataTrackStreamEvent); break; + case MessageOneofCase.SimulateScenario: + if (SimulateScenario == null) { + SimulateScenario = new global::LiveKit.Proto.SimulateScenarioCallback(); + } + SimulateScenario.MergeFrom(other.SimulateScenario); + break; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -10644,6 +11571,15 @@ public void MergeFrom(pb::CodedInputStream input) { DataTrackStreamEvent = subBuilder; break; } + case 354: { + global::LiveKit.Proto.SimulateScenarioCallback subBuilder = new global::LiveKit.Proto.SimulateScenarioCallback(); + if (messageCase_ == MessageOneofCase.SimulateScenario) { + subBuilder.MergeFrom(SimulateScenario); + } + input.ReadMessage(subBuilder); + SimulateScenario = subBuilder; + break; + } } } #endif @@ -11041,6 +11977,15 @@ public void MergeFrom(pb::CodedInputStream input) { DataTrackStreamEvent = subBuilder; break; } + case 354: { + global::LiveKit.Proto.SimulateScenarioCallback subBuilder = new global::LiveKit.Proto.SimulateScenarioCallback(); + if (messageCase_ == MessageOneofCase.SimulateScenario) { + subBuilder.MergeFrom(SimulateScenario); + } + input.ReadMessage(subBuilder); + SimulateScenario = subBuilder; + break; + } } } } diff --git a/Runtime/Scripts/Proto/Room.cs b/Runtime/Scripts/Proto/Room.cs index c9e129d7..8c1e174e 100644 --- a/Runtime/Scripts/Proto/Room.cs +++ b/Runtime/Scripts/Proto/Room.cs @@ -45,315 +45,334 @@ static RoomReflection() { "dF9hc3luY19pZBgCIAEoBBIvCgZyZWFzb24YAyABKA4yHy5saXZla2l0LnBy", "b3RvLkRpc2Nvbm5lY3RSZWFzb24iJgoSRGlzY29ubmVjdFJlc3BvbnNlEhAK", "CGFzeW5jX2lkGAEgAigEIiYKEkRpc2Nvbm5lY3RDYWxsYmFjaxIQCghhc3lu", - "Y19pZBgBIAIoBCKcAQoTUHVibGlzaFRyYWNrUmVxdWVzdBIgChhsb2NhbF9w", - "YXJ0aWNpcGFudF9oYW5kbGUYASACKAQSFAoMdHJhY2tfaGFuZGxlGAIgAigE", - "EjMKB29wdGlvbnMYAyACKAsyIi5saXZla2l0LnByb3RvLlRyYWNrUHVibGlz", - "aE9wdGlvbnMSGAoQcmVxdWVzdF9hc3luY19pZBgEIAEoBCIoChRQdWJsaXNo", - "VHJhY2tSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCKBAQoUUHVibGlzaFRy", - "YWNrQ2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDwoFZXJyb3IYAiABKAlI", - "ABI7CgtwdWJsaWNhdGlvbhgDIAEoCzIkLmxpdmVraXQucHJvdG8uT3duZWRU", - "cmFja1B1YmxpY2F0aW9uSABCCQoHbWVzc2FnZSKBAQoVVW5wdWJsaXNoVHJh", - "Y2tSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIR", - "Cgl0cmFja19zaWQYAiACKAkSGQoRc3RvcF9vbl91bnB1Ymxpc2gYAyACKAgS", - "GAoQcmVxdWVzdF9hc3luY19pZBgEIAEoBCIqChZVbnB1Ymxpc2hUcmFja1Jl", - "c3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIjkKFlVucHVibGlzaFRyYWNrQ2Fs", - "bGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDQoFZXJyb3IYAiABKAki0wEKElB1", - "Ymxpc2hEYXRhUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUY", - "ASACKAQSEAoIZGF0YV9wdHIYAiACKAQSEAoIZGF0YV9sZW4YAyACKAQSEAoI", - "cmVsaWFibGUYBCACKAgSHAoQZGVzdGluYXRpb25fc2lkcxgFIAMoCUICGAES", - "DQoFdG9waWMYBiABKAkSHgoWZGVzdGluYXRpb25faWRlbnRpdGllcxgHIAMo", - "CRIYChByZXF1ZXN0X2FzeW5jX2lkGAggASgEIicKE1B1Ymxpc2hEYXRhUmVz", - "cG9uc2USEAoIYXN5bmNfaWQYASACKAQiNgoTUHVibGlzaERhdGFDYWxsYmFj", - "axIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSLAAQobUHVibGlz", - "aFRyYW5zY3JpcHRpb25SZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hh", - "bmRsZRgBIAIoBBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgCIAIoCRIQCgh0", - "cmFja19pZBgDIAIoCRI1CghzZWdtZW50cxgEIAMoCzIjLmxpdmVraXQucHJv", - "dG8uVHJhbnNjcmlwdGlvblNlZ21lbnQSGAoQcmVxdWVzdF9hc3luY19pZBgF", - "IAEoBCIwChxQdWJsaXNoVHJhbnNjcmlwdGlvblJlc3BvbnNlEhAKCGFzeW5j", - "X2lkGAEgAigEIj8KHFB1Ymxpc2hUcmFuc2NyaXB0aW9uQ2FsbGJhY2sSEAoI", - "YXN5bmNfaWQYASACKAQSDQoFZXJyb3IYAiABKAkikAEKFVB1Ymxpc2hTaXBE", - "dG1mUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQS", - "DAoEY29kZRgCIAIoDRINCgVkaWdpdBgDIAIoCRIeChZkZXN0aW5hdGlvbl9p", - "ZGVudGl0aWVzGAQgAygJEhgKEHJlcXVlc3RfYXN5bmNfaWQYBSABKAQiKgoW", - "UHVibGlzaFNpcER0bWZSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCI5ChZQ", - "dWJsaXNoU2lwRHRtZkNhbGxiYWNrEhAKCGFzeW5jX2lkGAEgAigEEg0KBWVy", - "cm9yGAIgASgJImcKF1NldExvY2FsTWV0YWRhdGFSZXF1ZXN0EiAKGGxvY2Fs", - "X3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIQCghtZXRhZGF0YRgCIAIoCRIY", - "ChByZXF1ZXN0X2FzeW5jX2lkGAMgASgEIiwKGFNldExvY2FsTWV0YWRhdGFS", - "ZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCI7ChhTZXRMb2NhbE1ldGFkYXRh", - "Q2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDQoFZXJyb3IYAiABKAkingEK", - "FlNlbmRDaGF0TWVzc2FnZVJlcXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRf", - "aGFuZGxlGAEgAigEEg8KB21lc3NhZ2UYAiACKAkSHgoWZGVzdGluYXRpb25f", - "aWRlbnRpdGllcxgDIAMoCRIXCg9zZW5kZXJfaWRlbnRpdHkYBCABKAkSGAoQ", - "cmVxdWVzdF9hc3luY19pZBgFIAEoBCLWAQoWRWRpdENoYXRNZXNzYWdlUmVx", - "dWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQSEQoJZWRp", - "dF90ZXh0GAIgAigJEjQKEG9yaWdpbmFsX21lc3NhZ2UYAyACKAsyGi5saXZl", - "a2l0LnByb3RvLkNoYXRNZXNzYWdlEh4KFmRlc3RpbmF0aW9uX2lkZW50aXRp", - "ZXMYBCADKAkSFwoPc2VuZGVyX2lkZW50aXR5GAUgASgJEhgKEHJlcXVlc3Rf", - "YXN5bmNfaWQYBiABKAQiKwoXU2VuZENoYXRNZXNzYWdlUmVzcG9uc2USEAoI", - "YXN5bmNfaWQYASACKAQiewoXU2VuZENoYXRNZXNzYWdlQ2FsbGJhY2sSEAoI", - "YXN5bmNfaWQYASACKAQSDwoFZXJyb3IYAiABKAlIABIyCgxjaGF0X21lc3Nh", - "Z2UYAyABKAsyGi5saXZla2l0LnByb3RvLkNoYXRNZXNzYWdlSABCCQoHbWVz", - "c2FnZSKLAQoZU2V0TG9jYWxBdHRyaWJ1dGVzUmVxdWVzdBIgChhsb2NhbF9w", - "YXJ0aWNpcGFudF9oYW5kbGUYASACKAQSMgoKYXR0cmlidXRlcxgCIAMoCzIe", - "LmxpdmVraXQucHJvdG8uQXR0cmlidXRlc0VudHJ5EhgKEHJlcXVlc3RfYXN5", - "bmNfaWQYAyABKAQiLQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAIoCRIN", - "CgV2YWx1ZRgCIAIoCSIuChpTZXRMb2NhbEF0dHJpYnV0ZXNSZXNwb25zZRIQ", - "Cghhc3luY19pZBgBIAIoBCI9ChpTZXRMb2NhbEF0dHJpYnV0ZXNDYWxsYmFj", - "axIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSJfChNTZXRMb2Nh", - "bE5hbWVSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIo", - "BBIMCgRuYW1lGAIgAigJEhgKEHJlcXVlc3RfYXN5bmNfaWQYAyABKAQiKAoU", - "U2V0TG9jYWxOYW1lUmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQiNwoUU2V0", - "TG9jYWxOYW1lQ2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDQoFZXJyb3IY", - "AiABKAkiRQoUU2V0U3Vic2NyaWJlZFJlcXVlc3QSEQoJc3Vic2NyaWJlGAEg", - "AigIEhoKEnB1YmxpY2F0aW9uX2hhbmRsZRgCIAIoBCIXChVTZXRTdWJzY3Jp", - "YmVkUmVzcG9uc2UiRwoWR2V0U2Vzc2lvblN0YXRzUmVxdWVzdBITCgtyb29t", - "X2hhbmRsZRgBIAIoBBIYChByZXF1ZXN0X2FzeW5jX2lkGAIgASgEIisKF0dl", - "dFNlc3Npb25TdGF0c1Jlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIvcBChdH", - "ZXRTZXNzaW9uU3RhdHNDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBIPCgVl", - "cnJvchgCIAEoCUgAEj8KBnJlc3VsdBgDIAEoCzItLmxpdmVraXQucHJvdG8u", - "R2V0U2Vzc2lvblN0YXRzQ2FsbGJhY2suUmVzdWx0SAAabQoGUmVzdWx0EjAK", - "D3B1Ymxpc2hlcl9zdGF0cxgBIAMoCzIXLmxpdmVraXQucHJvdG8uUnRjU3Rh", - "dHMSMQoQc3Vic2NyaWJlcl9zdGF0cxgCIAMoCzIXLmxpdmVraXQucHJvdG8u", - "UnRjU3RhdHNCCQoHbWVzc2FnZSI7Cg1WaWRlb0VuY29kaW5nEhMKC21heF9i", - "aXRyYXRlGAEgAigEEhUKDW1heF9mcmFtZXJhdGUYAiACKAEiJAoNQXVkaW9F", - "bmNvZGluZxITCgttYXhfYml0cmF0ZRgBIAIoBCK1AgoTVHJhY2tQdWJsaXNo", - "T3B0aW9ucxI0Cg52aWRlb19lbmNvZGluZxgBIAEoCzIcLmxpdmVraXQucHJv", - "dG8uVmlkZW9FbmNvZGluZxI0Cg5hdWRpb19lbmNvZGluZxgCIAEoCzIcLmxp", - "dmVraXQucHJvdG8uQXVkaW9FbmNvZGluZxIuCgt2aWRlb19jb2RlYxgDIAEo", - "DjIZLmxpdmVraXQucHJvdG8uVmlkZW9Db2RlYxILCgNkdHgYBCABKAgSCwoD", - "cmVkGAUgASgIEhEKCXNpbXVsY2FzdBgGIAEoCBIqCgZzb3VyY2UYByABKA4y", - "Gi5saXZla2l0LnByb3RvLlRyYWNrU291cmNlEg4KBnN0cmVhbRgIIAEoCRIZ", - "ChFwcmVjb25uZWN0X2J1ZmZlchgJIAEoCCI9CglJY2VTZXJ2ZXISDAoEdXJs", - "cxgBIAMoCRIQCgh1c2VybmFtZRgCIAEoCRIQCghwYXNzd29yZBgDIAEoCSLE", - "AQoJUnRjQ29uZmlnEjsKEmljZV90cmFuc3BvcnRfdHlwZRgBIAEoDjIfLmxp", - "dmVraXQucHJvdG8uSWNlVHJhbnNwb3J0VHlwZRJLChpjb250aW51YWxfZ2F0", - "aGVyaW5nX3BvbGljeRgCIAEoDjInLmxpdmVraXQucHJvdG8uQ29udGludWFs", - "R2F0aGVyaW5nUG9saWN5Ei0KC2ljZV9zZXJ2ZXJzGAMgAygLMhgubGl2ZWtp", - "dC5wcm90by5JY2VTZXJ2ZXIirgIKC1Jvb21PcHRpb25zEhYKDmF1dG9fc3Vi", - "c2NyaWJlGAEgASgIEhcKD2FkYXB0aXZlX3N0cmVhbRgCIAEoCBIQCghkeW5h", - "Y2FzdBgDIAEoCBIsCgRlMmVlGAQgASgLMhoubGl2ZWtpdC5wcm90by5FMmVl", - "T3B0aW9uc0ICGAESLAoKcnRjX2NvbmZpZxgFIAEoCzIYLmxpdmVraXQucHJv", - "dG8uUnRjQ29uZmlnEhQKDGpvaW5fcmV0cmllcxgGIAEoDRIuCgplbmNyeXB0", - "aW9uGAcgASgLMhoubGl2ZWtpdC5wcm90by5FMmVlT3B0aW9ucxIeChZzaW5n", - "bGVfcGVlcl9jb25uZWN0aW9uGAggASgIEhoKEmNvbm5lY3RfdGltZW91dF9t", - "cxgJIAEoBCJ3ChRUcmFuc2NyaXB0aW9uU2VnbWVudBIKCgJpZBgBIAIoCRIM", - "CgR0ZXh0GAIgAigJEhIKCnN0YXJ0X3RpbWUYAyACKAQSEAoIZW5kX3RpbWUY", - "BCACKAQSDQoFZmluYWwYBSACKAgSEAoIbGFuZ3VhZ2UYBiACKAkiMAoKQnVm", - "ZmVySW5mbxIQCghkYXRhX3B0chgBIAIoBBIQCghkYXRhX2xlbhgCIAIoBCJl", - "CgtPd25lZEJ1ZmZlchItCgZoYW5kbGUYASACKAsyHS5saXZla2l0LnByb3Rv", - "LkZmaU93bmVkSGFuZGxlEicKBGRhdGEYAiACKAsyGS5saXZla2l0LnByb3Rv", - "LkJ1ZmZlckluZm8ihRcKCVJvb21FdmVudBITCgtyb29tX2hhbmRsZRgBIAIo", - "BBJEChVwYXJ0aWNpcGFudF9jb25uZWN0ZWQYAiABKAsyIy5saXZla2l0LnBy", - "b3RvLlBhcnRpY2lwYW50Q29ubmVjdGVkSAASSgoYcGFydGljaXBhbnRfZGlz", - "Y29ubmVjdGVkGAMgASgLMiYubGl2ZWtpdC5wcm90by5QYXJ0aWNpcGFudERp", - "c2Nvbm5lY3RlZEgAEkMKFWxvY2FsX3RyYWNrX3B1Ymxpc2hlZBgEIAEoCzIi", - "LmxpdmVraXQucHJvdG8uTG9jYWxUcmFja1B1Ymxpc2hlZEgAEkcKF2xvY2Fs", - "X3RyYWNrX3VucHVibGlzaGVkGAUgASgLMiQubGl2ZWtpdC5wcm90by5Mb2Nh", - "bFRyYWNrVW5wdWJsaXNoZWRIABJFChZsb2NhbF90cmFja19zdWJzY3JpYmVk", - "GAYgASgLMiMubGl2ZWtpdC5wcm90by5Mb2NhbFRyYWNrU3Vic2NyaWJlZEgA", - "EjgKD3RyYWNrX3B1Ymxpc2hlZBgHIAEoCzIdLmxpdmVraXQucHJvdG8uVHJh", - "Y2tQdWJsaXNoZWRIABI8ChF0cmFja191bnB1Ymxpc2hlZBgIIAEoCzIfLmxp", - "dmVraXQucHJvdG8uVHJhY2tVbnB1Ymxpc2hlZEgAEjoKEHRyYWNrX3N1YnNj", - "cmliZWQYCSABKAsyHi5saXZla2l0LnByb3RvLlRyYWNrU3Vic2NyaWJlZEgA", - "Ej4KEnRyYWNrX3Vuc3Vic2NyaWJlZBgKIAEoCzIgLmxpdmVraXQucHJvdG8u", - "VHJhY2tVbnN1YnNjcmliZWRIABJLChl0cmFja19zdWJzY3JpcHRpb25fZmFp", - "bGVkGAsgASgLMiYubGl2ZWtpdC5wcm90by5UcmFja1N1YnNjcmlwdGlvbkZh", - "aWxlZEgAEjAKC3RyYWNrX211dGVkGAwgASgLMhkubGl2ZWtpdC5wcm90by5U", - "cmFja011dGVkSAASNAoNdHJhY2tfdW5tdXRlZBgNIAEoCzIbLmxpdmVraXQu", - "cHJvdG8uVHJhY2tVbm11dGVkSAASRwoXYWN0aXZlX3NwZWFrZXJzX2NoYW5n", - "ZWQYDiABKAsyJC5saXZla2l0LnByb3RvLkFjdGl2ZVNwZWFrZXJzQ2hhbmdl", - "ZEgAEkMKFXJvb21fbWV0YWRhdGFfY2hhbmdlZBgPIAEoCzIiLmxpdmVraXQu", - "cHJvdG8uUm9vbU1ldGFkYXRhQ2hhbmdlZEgAEjkKEHJvb21fc2lkX2NoYW5n", - "ZWQYECABKAsyHS5saXZla2l0LnByb3RvLlJvb21TaWRDaGFuZ2VkSAASUQoc", - "cGFydGljaXBhbnRfbWV0YWRhdGFfY2hhbmdlZBgRIAEoCzIpLmxpdmVraXQu", - "cHJvdG8uUGFydGljaXBhbnRNZXRhZGF0YUNoYW5nZWRIABJJChhwYXJ0aWNp", - "cGFudF9uYW1lX2NoYW5nZWQYEiABKAsyJS5saXZla2l0LnByb3RvLlBhcnRp", - "Y2lwYW50TmFtZUNoYW5nZWRIABJVCh5wYXJ0aWNpcGFudF9hdHRyaWJ1dGVz", - "X2NoYW5nZWQYEyABKAsyKy5saXZla2l0LnByb3RvLlBhcnRpY2lwYW50QXR0", - "cmlidXRlc0NoYW5nZWRIABJNChpjb25uZWN0aW9uX3F1YWxpdHlfY2hhbmdl", - "ZBgUIAEoCzInLmxpdmVraXQucHJvdG8uQ29ubmVjdGlvblF1YWxpdHlDaGFu", - "Z2VkSAASSQoYY29ubmVjdGlvbl9zdGF0ZV9jaGFuZ2VkGBUgASgLMiUubGl2", - "ZWtpdC5wcm90by5Db25uZWN0aW9uU3RhdGVDaGFuZ2VkSAASMwoMZGlzY29u", - "bmVjdGVkGBYgASgLMhsubGl2ZWtpdC5wcm90by5EaXNjb25uZWN0ZWRIABIz", - "CgxyZWNvbm5lY3RpbmcYFyABKAsyGy5saXZla2l0LnByb3RvLlJlY29ubmVj", - "dGluZ0gAEjEKC3JlY29ubmVjdGVkGBggASgLMhoubGl2ZWtpdC5wcm90by5S", - "ZWNvbm5lY3RlZEgAEj0KEmUyZWVfc3RhdGVfY2hhbmdlZBgZIAEoCzIfLmxp", - "dmVraXQucHJvdG8uRTJlZVN0YXRlQ2hhbmdlZEgAEiUKA2VvcxgaIAEoCzIW", - "LmxpdmVraXQucHJvdG8uUm9vbUVPU0gAEkEKFGRhdGFfcGFja2V0X3JlY2Vp", - "dmVkGBsgASgLMiEubGl2ZWtpdC5wcm90by5EYXRhUGFja2V0UmVjZWl2ZWRI", - "ABJGChZ0cmFuc2NyaXB0aW9uX3JlY2VpdmVkGBwgASgLMiQubGl2ZWtpdC5w", - "cm90by5UcmFuc2NyaXB0aW9uUmVjZWl2ZWRIABI6CgxjaGF0X21lc3NhZ2UY", - "HSABKAsyIi5saXZla2l0LnByb3RvLkNoYXRNZXNzYWdlUmVjZWl2ZWRIABJJ", - "ChZzdHJlYW1faGVhZGVyX3JlY2VpdmVkGB4gASgLMicubGl2ZWtpdC5wcm90", - "by5EYXRhU3RyZWFtSGVhZGVyUmVjZWl2ZWRIABJHChVzdHJlYW1fY2h1bmtf", - "cmVjZWl2ZWQYHyABKAsyJi5saXZla2l0LnByb3RvLkRhdGFTdHJlYW1DaHVu", - "a1JlY2VpdmVkSAASSwoXc3RyZWFtX3RyYWlsZXJfcmVjZWl2ZWQYICABKAsy", - "KC5saXZla2l0LnByb3RvLkRhdGFTdHJlYW1UcmFpbGVyUmVjZWl2ZWRIABJp", - "CiJkYXRhX2NoYW5uZWxfbG93X3RocmVzaG9sZF9jaGFuZ2VkGCEgASgLMjsu", - "bGl2ZWtpdC5wcm90by5EYXRhQ2hhbm5lbEJ1ZmZlcmVkQW1vdW50TG93VGhy", - "ZXNob2xkQ2hhbmdlZEgAEj0KEmJ5dGVfc3RyZWFtX29wZW5lZBgiIAEoCzIf", - "LmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbU9wZW5lZEgAEj0KEnRleHRfc3Ry", - "ZWFtX29wZW5lZBgjIAEoCzIfLmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbU9w", - "ZW5lZEgAEi8KDHJvb21fdXBkYXRlZBgkIAEoCzIXLmxpdmVraXQucHJvdG8u", - "Um9vbUluZm9IABIoCgVtb3ZlZBglIAEoCzIXLmxpdmVraXQucHJvdG8uUm9v", - "bUluZm9IABJCChRwYXJ0aWNpcGFudHNfdXBkYXRlZBgmIAEoCzIiLmxpdmVr", - "aXQucHJvdG8uUGFydGljaXBhbnRzVXBkYXRlZEgAEmIKJXBhcnRpY2lwYW50", - "X2VuY3J5cHRpb25fc3RhdHVzX2NoYW5nZWQYJyABKAsyMS5saXZla2l0LnBy", - "b3RvLlBhcnRpY2lwYW50RW5jcnlwdGlvblN0YXR1c0NoYW5nZWRIABJVCh5w", - "YXJ0aWNpcGFudF9wZXJtaXNzaW9uX2NoYW5nZWQYKSABKAsyKy5saXZla2l0", - "LnByb3RvLlBhcnRpY2lwYW50UGVybWlzc2lvbkNoYW5nZWRIABI4Cg90b2tl", - "bl9yZWZyZXNoZWQYKCABKAsyHS5saXZla2l0LnByb3RvLlRva2VuUmVmcmVz", - "aGVkSAASPgoScGFydGljaXBhbnRfYWN0aXZlGCogASgLMiAubGl2ZWtpdC5w", - "cm90by5QYXJ0aWNpcGFudEFjdGl2ZUgAEkEKFGRhdGFfdHJhY2tfcHVibGlz", - "aGVkGCsgASgLMiEubGl2ZWtpdC5wcm90by5EYXRhVHJhY2tQdWJsaXNoZWRI", - "ABJFChZkYXRhX3RyYWNrX3VucHVibGlzaGVkGCwgASgLMiMubGl2ZWtpdC5w", - "cm90by5EYXRhVHJhY2tVbnB1Ymxpc2hlZEgAQgkKB21lc3NhZ2UiyQIKCFJv", - "b21JbmZvEgsKA3NpZBgBIAEoCRIMCgRuYW1lGAIgAigJEhAKCG1ldGFkYXRh", - "GAMgAigJEi4KJmxvc3N5X2RjX2J1ZmZlcmVkX2Ftb3VudF9sb3dfdGhyZXNo", - "b2xkGAQgAigEEjEKKXJlbGlhYmxlX2RjX2J1ZmZlcmVkX2Ftb3VudF9sb3df", - "dGhyZXNob2xkGAUgAigEEhUKDWVtcHR5X3RpbWVvdXQYBiACKA0SGQoRZGVw", - "YXJ0dXJlX3RpbWVvdXQYByACKA0SGAoQbWF4X3BhcnRpY2lwYW50cxgIIAIo", - "DRIVCg1jcmVhdGlvbl90aW1lGAkgAigDEhgKEG51bV9wYXJ0aWNpcGFudHMY", - "CiACKA0SFgoObnVtX3B1Ymxpc2hlcnMYCyACKA0SGAoQYWN0aXZlX3JlY29y", - "ZGluZxgMIAIoCCJhCglPd25lZFJvb20SLQoGaGFuZGxlGAEgAigLMh0ubGl2", - "ZWtpdC5wcm90by5GZmlPd25lZEhhbmRsZRIlCgRpbmZvGAIgAigLMhcubGl2", - "ZWtpdC5wcm90by5Sb29tSW5mbyJLChNQYXJ0aWNpcGFudHNVcGRhdGVkEjQK", - "DHBhcnRpY2lwYW50cxgBIAMoCzIeLmxpdmVraXQucHJvdG8uUGFydGljaXBh", - "bnRJbmZvIkUKFFBhcnRpY2lwYW50Q29ubmVjdGVkEi0KBGluZm8YASACKAsy", - "Hy5saXZla2l0LnByb3RvLk93bmVkUGFydGljaXBhbnQiMQoRUGFydGljaXBh", - "bnRBY3RpdmUSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkicwoXUGFy", - "dGljaXBhbnREaXNjb25uZWN0ZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkY", - "ASACKAkSOgoRZGlzY29ubmVjdF9yZWFzb24YAiACKA4yHy5saXZla2l0LnBy", - "b3RvLkRpc2Nvbm5lY3RSZWFzb24iKAoTTG9jYWxUcmFja1B1Ymxpc2hlZBIR", - "Cgl0cmFja19zaWQYASACKAkiMAoVTG9jYWxUcmFja1VucHVibGlzaGVkEhcK", - "D3B1YmxpY2F0aW9uX3NpZBgBIAIoCSIpChRMb2NhbFRyYWNrU3Vic2NyaWJl", - "ZBIRCgl0cmFja19zaWQYAiACKAkiaQoOVHJhY2tQdWJsaXNoZWQSHAoUcGFy", - "dGljaXBhbnRfaWRlbnRpdHkYASACKAkSOQoLcHVibGljYXRpb24YAiACKAsy", - "JC5saXZla2l0LnByb3RvLk93bmVkVHJhY2tQdWJsaWNhdGlvbiJJChBUcmFj", - "a1VucHVibGlzaGVkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgAigJEhcK", - "D3B1YmxpY2F0aW9uX3NpZBgCIAIoCSJZCg9UcmFja1N1YnNjcmliZWQSHAoU", - "cGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkSKAoFdHJhY2sYAiACKAsyGS5s", - "aXZla2l0LnByb3RvLk93bmVkVHJhY2siRAoRVHJhY2tVbnN1YnNjcmliZWQS", - "HAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkSEQoJdHJhY2tfc2lkGAIg", - "AigJIlkKF1RyYWNrU3Vic2NyaXB0aW9uRmFpbGVkEhwKFHBhcnRpY2lwYW50", - "X2lkZW50aXR5GAEgAigJEhEKCXRyYWNrX3NpZBgCIAIoCRINCgVlcnJvchgD", - "IAIoCSI9CgpUcmFja011dGVkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEg", - "AigJEhEKCXRyYWNrX3NpZBgCIAIoCSI/CgxUcmFja1VubXV0ZWQSHAoUcGFy", - "dGljaXBhbnRfaWRlbnRpdHkYASACKAkSEQoJdHJhY2tfc2lkGAIgAigJIl8K", - "EEUyZWVTdGF0ZUNoYW5nZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASAC", - "KAkSLQoFc3RhdGUYAiACKA4yHi5saXZla2l0LnByb3RvLkVuY3J5cHRpb25T", - "dGF0ZSI3ChVBY3RpdmVTcGVha2Vyc0NoYW5nZWQSHgoWcGFydGljaXBhbnRf", - "aWRlbnRpdGllcxgBIAMoCSInChNSb29tTWV0YWRhdGFDaGFuZ2VkEhAKCG1l", - "dGFkYXRhGAEgAigJIh0KDlJvb21TaWRDaGFuZ2VkEgsKA3NpZBgBIAIoCSJM", - "ChpQYXJ0aWNpcGFudE1ldGFkYXRhQ2hhbmdlZBIcChRwYXJ0aWNpcGFudF9p", - "ZGVudGl0eRgBIAIoCRIQCghtZXRhZGF0YRgCIAIoCSKsAQocUGFydGljaXBh", - "bnRBdHRyaWJ1dGVzQ2hhbmdlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgB", - "IAIoCRIyCgphdHRyaWJ1dGVzGAIgAygLMh4ubGl2ZWtpdC5wcm90by5BdHRy", - "aWJ1dGVzRW50cnkSOgoSY2hhbmdlZF9hdHRyaWJ1dGVzGAMgAygLMh4ubGl2", - "ZWtpdC5wcm90by5BdHRyaWJ1dGVzRW50cnkiWAoiUGFydGljaXBhbnRFbmNy", - "eXB0aW9uU3RhdHVzQ2hhbmdlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgB", - "IAIoCRIUCgxpc19lbmNyeXB0ZWQYAiACKAgiRAoWUGFydGljaXBhbnROYW1l", - "Q2hhbmdlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIMCgRuYW1l", - "GAIgAigJInYKHFBhcnRpY2lwYW50UGVybWlzc2lvbkNoYW5nZWQSHAoUcGFy", - "dGljaXBhbnRfaWRlbnRpdHkYASACKAkSOAoKcGVybWlzc2lvbhgCIAEoCzIk", - "LmxpdmVraXQucHJvdG8uUGFydGljaXBhbnRQZXJtaXNzaW9uImsKGENvbm5l", - "Y3Rpb25RdWFsaXR5Q2hhbmdlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgB", - "IAIoCRIxCgdxdWFsaXR5GAIgAigOMiAubGl2ZWtpdC5wcm90by5Db25uZWN0", - "aW9uUXVhbGl0eSJFCgpVc2VyUGFja2V0EigKBGRhdGEYASACKAsyGi5saXZl", - "a2l0LnByb3RvLk93bmVkQnVmZmVyEg0KBXRvcGljGAIgASgJInkKC0NoYXRN", - "ZXNzYWdlEgoKAmlkGAEgAigJEhEKCXRpbWVzdGFtcBgCIAIoAxIPCgdtZXNz", - "YWdlGAMgAigJEhYKDmVkaXRfdGltZXN0YW1wGAQgASgDEg8KB2RlbGV0ZWQY", - "BSABKAgSEQoJZ2VuZXJhdGVkGAYgASgIImAKE0NoYXRNZXNzYWdlUmVjZWl2", - "ZWQSKwoHbWVzc2FnZRgBIAIoCzIaLmxpdmVraXQucHJvdG8uQ2hhdE1lc3Nh", - "Z2USHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYAiACKAkiJgoHU2lwRFRNRhIM", - "CgRjb2RlGAEgAigNEg0KBWRpZ2l0GAIgASgJIr8BChJEYXRhUGFja2V0UmVj", - "ZWl2ZWQSKwoEa2luZBgBIAIoDjIdLmxpdmVraXQucHJvdG8uRGF0YVBhY2tl", - "dEtpbmQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYAiACKAkSKQoEdXNlchgE", - "IAEoCzIZLmxpdmVraXQucHJvdG8uVXNlclBhY2tldEgAEioKCHNpcF9kdG1m", - "GAUgASgLMhYubGl2ZWtpdC5wcm90by5TaXBEVE1GSABCBwoFdmFsdWUifwoV", - "VHJhbnNjcmlwdGlvblJlY2VpdmVkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5", - "GAEgASgJEhEKCXRyYWNrX3NpZBgCIAEoCRI1CghzZWdtZW50cxgDIAMoCzIj", - "LmxpdmVraXQucHJvdG8uVHJhbnNjcmlwdGlvblNlZ21lbnQiRwoWQ29ubmVj", - "dGlvblN0YXRlQ2hhbmdlZBItCgVzdGF0ZRgBIAIoDjIeLmxpdmVraXQucHJv", - "dG8uQ29ubmVjdGlvblN0YXRlIgsKCUNvbm5lY3RlZCI/CgxEaXNjb25uZWN0", - "ZWQSLwoGcmVhc29uGAEgAigOMh8ubGl2ZWtpdC5wcm90by5EaXNjb25uZWN0", - "UmVhc29uIg4KDFJlY29ubmVjdGluZyINCgtSZWNvbm5lY3RlZCIfCg5Ub2tl", - "blJlZnJlc2hlZBINCgV0b2tlbhgBIAIoCSIJCgdSb29tRU9TIo4HCgpEYXRh", - "U3RyZWFtGqoBCgpUZXh0SGVhZGVyEj8KDm9wZXJhdGlvbl90eXBlGAEgAigO", - "MicubGl2ZWtpdC5wcm90by5EYXRhU3RyZWFtLk9wZXJhdGlvblR5cGUSDwoH", - "dmVyc2lvbhgCIAEoBRIaChJyZXBseV90b19zdHJlYW1faWQYAyABKAkSGwoT", - "YXR0YWNoZWRfc3RyZWFtX2lkcxgEIAMoCRIRCglnZW5lcmF0ZWQYBSABKAga", - "GgoKQnl0ZUhlYWRlchIMCgRuYW1lGAEgAigJGusCCgZIZWFkZXISEQoJc3Ry", - "ZWFtX2lkGAEgAigJEhEKCXRpbWVzdGFtcBgCIAIoAxIRCgltaW1lX3R5cGUY", - "AyACKAkSDQoFdG9waWMYBCACKAkSFAoMdG90YWxfbGVuZ3RoGAUgASgEEkQK", - "CmF0dHJpYnV0ZXMYBiADKAsyMC5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0u", - "SGVhZGVyLkF0dHJpYnV0ZXNFbnRyeRI7Cgt0ZXh0X2hlYWRlchgHIAEoCzIk", - "LmxpdmVraXQucHJvdG8uRGF0YVN0cmVhbS5UZXh0SGVhZGVySAASOwoLYnl0", - "ZV9oZWFkZXIYCCABKAsyJC5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0uQnl0", - "ZUhlYWRlckgAGjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoF", - "dmFsdWUYAiABKAk6AjgBQhAKDmNvbnRlbnRfaGVhZGVyGl0KBUNodW5rEhEK", - "CXN0cmVhbV9pZBgBIAIoCRITCgtjaHVua19pbmRleBgCIAIoBBIPCgdjb250", - "ZW50GAMgAigMEg8KB3ZlcnNpb24YBCABKAUSCgoCaXYYBSABKAwapgEKB1Ry", - "YWlsZXISEQoJc3RyZWFtX2lkGAEgAigJEg4KBnJlYXNvbhgCIAIoCRJFCgph", - "dHRyaWJ1dGVzGAMgAygLMjEubGl2ZWtpdC5wcm90by5EYXRhU3RyZWFtLlRy", - "YWlsZXIuQXR0cmlidXRlc0VudHJ5GjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNr", - "ZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIkEKDU9wZXJhdGlvblR5cGUS", - "CgoGQ1JFQVRFEAASCgoGVVBEQVRFEAESCgoGREVMRVRFEAISDAoIUkVBQ1RJ", - "T04QAyJqChhEYXRhU3RyZWFtSGVhZGVyUmVjZWl2ZWQSHAoUcGFydGljaXBh", - "bnRfaWRlbnRpdHkYASACKAkSMAoGaGVhZGVyGAIgAigLMiAubGl2ZWtpdC5w", - "cm90by5EYXRhU3RyZWFtLkhlYWRlciJnChdEYXRhU3RyZWFtQ2h1bmtSZWNl", - "aXZlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIuCgVjaHVuaxgC", - "IAIoCzIfLmxpdmVraXQucHJvdG8uRGF0YVN0cmVhbS5DaHVuayJtChlEYXRh", - "U3RyZWFtVHJhaWxlclJlY2VpdmVkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5", - "GAEgAigJEjIKB3RyYWlsZXIYAiACKAsyIS5saXZla2l0LnByb3RvLkRhdGFT", - "dHJlYW0uVHJhaWxlciLAAQoXU2VuZFN0cmVhbUhlYWRlclJlcXVlc3QSIAoY", - "bG9jYWxfcGFydGljaXBhbnRfaGFuZGxlGAEgAigEEjAKBmhlYWRlchgCIAIo", - "CzIgLmxpdmVraXQucHJvdG8uRGF0YVN0cmVhbS5IZWFkZXISHgoWZGVzdGlu", - "YXRpb25faWRlbnRpdGllcxgDIAMoCRIXCg9zZW5kZXJfaWRlbnRpdHkYBCAC", - "KAkSGAoQcmVxdWVzdF9hc3luY19pZBgFIAEoBCK9AQoWU2VuZFN0cmVhbUNo", - "dW5rUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQS", - "LgoFY2h1bmsYAiACKAsyHy5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0uQ2h1", - "bmsSHgoWZGVzdGluYXRpb25faWRlbnRpdGllcxgDIAMoCRIXCg9zZW5kZXJf", - "aWRlbnRpdHkYBCACKAkSGAoQcmVxdWVzdF9hc3luY19pZBgFIAEoBCLDAQoY", - "U2VuZFN0cmVhbVRyYWlsZXJSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50", - "X2hhbmRsZRgBIAIoBBIyCgd0cmFpbGVyGAIgAigLMiEubGl2ZWtpdC5wcm90", - "by5EYXRhU3RyZWFtLlRyYWlsZXISHgoWZGVzdGluYXRpb25faWRlbnRpdGll", - "cxgDIAMoCRIXCg9zZW5kZXJfaWRlbnRpdHkYBCACKAkSGAoQcmVxdWVzdF9h", - "c3luY19pZBgFIAEoBCIsChhTZW5kU3RyZWFtSGVhZGVyUmVzcG9uc2USEAoI", - "YXN5bmNfaWQYASACKAQiKwoXU2VuZFN0cmVhbUNodW5rUmVzcG9uc2USEAoI", - "YXN5bmNfaWQYASACKAQiLQoZU2VuZFN0cmVhbVRyYWlsZXJSZXNwb25zZRIQ", - "Cghhc3luY19pZBgBIAIoBCI7ChhTZW5kU3RyZWFtSGVhZGVyQ2FsbGJhY2sS", - "EAoIYXN5bmNfaWQYASACKAQSDQoFZXJyb3IYAiABKAkiOgoXU2VuZFN0cmVh", - "bUNodW5rQ2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDQoFZXJyb3IYAiAB", - "KAkiPAoZU2VuZFN0cmVhbVRyYWlsZXJDYWxsYmFjaxIQCghhc3luY19pZBgB", - "IAIoBBINCgVlcnJvchgCIAEoCSKTAQovU2V0RGF0YUNoYW5uZWxCdWZmZXJl", - "ZEFtb3VudExvd1RocmVzaG9sZFJlcXVlc3QSIAoYbG9jYWxfcGFydGljaXBh", - "bnRfaGFuZGxlGAEgAigEEhEKCXRocmVzaG9sZBgCIAIoBBIrCgRraW5kGAMg", - "AigOMh0ubGl2ZWtpdC5wcm90by5EYXRhUGFja2V0S2luZCIyCjBTZXREYXRh", - "Q2hhbm5lbEJ1ZmZlcmVkQW1vdW50TG93VGhyZXNob2xkUmVzcG9uc2Uibgos", - "RGF0YUNoYW5uZWxCdWZmZXJlZEFtb3VudExvd1RocmVzaG9sZENoYW5nZWQS", - "KwoEa2luZBgBIAIoDjIdLmxpdmVraXQucHJvdG8uRGF0YVBhY2tldEtpbmQS", - "EQoJdGhyZXNob2xkGAIgAigEImYKEEJ5dGVTdHJlYW1PcGVuZWQSNAoGcmVh", - "ZGVyGAEgAigLMiQubGl2ZWtpdC5wcm90by5Pd25lZEJ5dGVTdHJlYW1SZWFk", - "ZXISHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYAiACKAkiZgoQVGV4dFN0cmVh", - "bU9wZW5lZBI0CgZyZWFkZXIYASACKAsyJC5saXZla2l0LnByb3RvLk93bmVk", - "VGV4dFN0cmVhbVJlYWRlchIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgCIAIo", - "CSJIChJEYXRhVHJhY2tQdWJsaXNoZWQSMgoFdHJhY2sYASACKAsyIy5saXZl", - "a2l0LnByb3RvLk93bmVkUmVtb3RlRGF0YVRyYWNrIiMKFERhdGFUcmFja1Vu", - "cHVibGlzaGVkEgsKA3NpZBgBIAIoCSpQChBJY2VUcmFuc3BvcnRUeXBlEhMK", - "D1RSQU5TUE9SVF9SRUxBWRAAEhQKEFRSQU5TUE9SVF9OT0hPU1QQARIRCg1U", - "UkFOU1BPUlRfQUxMEAIqQwoYQ29udGludWFsR2F0aGVyaW5nUG9saWN5Eg8K", - "C0dBVEhFUl9PTkNFEAASFgoSR0FUSEVSX0NPTlRJTlVBTExZEAEqYAoRQ29u", - "bmVjdGlvblF1YWxpdHkSEAoMUVVBTElUWV9QT09SEAASEAoMUVVBTElUWV9H", - "T09EEAESFQoRUVVBTElUWV9FWENFTExFTlQQAhIQCgxRVUFMSVRZX0xPU1QQ", - "AypTCg9Db25uZWN0aW9uU3RhdGUSFQoRQ09OTl9ESVNDT05ORUNURUQQABIS", - "Cg5DT05OX0NPTk5FQ1RFRBABEhUKEUNPTk5fUkVDT05ORUNUSU5HEAIqMwoO", - "RGF0YVBhY2tldEtpbmQSDgoKS0lORF9MT1NTWRAAEhEKDUtJTkRfUkVMSUFC", - "TEUQAUIQqgINTGl2ZUtpdC5Qcm90bw==")); + "Y19pZBgBIAIoBCJ/ChdTaW11bGF0ZVNjZW5hcmlvUmVxdWVzdBITCgtyb29t", + "X2hhbmRsZRgBIAIoBBI1CghzY2VuYXJpbxgCIAIoDjIjLmxpdmVraXQucHJv", + "dG8uU2ltdWxhdGVTY2VuYXJpb0tpbmQSGAoQcmVxdWVzdF9hc3luY19pZBgD", + "IAEoBCIsChhTaW11bGF0ZVNjZW5hcmlvUmVzcG9uc2USEAoIYXN5bmNfaWQY", + "ASACKAQiOwoYU2ltdWxhdGVTY2VuYXJpb0NhbGxiYWNrEhAKCGFzeW5jX2lk", + "GAEgAigEEg0KBWVycm9yGAIgASgJIpwBChNQdWJsaXNoVHJhY2tSZXF1ZXN0", + "EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIUCgx0cmFja19o", + "YW5kbGUYAiACKAQSMwoHb3B0aW9ucxgDIAIoCzIiLmxpdmVraXQucHJvdG8u", + "VHJhY2tQdWJsaXNoT3B0aW9ucxIYChByZXF1ZXN0X2FzeW5jX2lkGAQgASgE", + "IigKFFB1Ymxpc2hUcmFja1Jlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIoEB", + "ChRQdWJsaXNoVHJhY2tDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBIPCgVl", + "cnJvchgCIAEoCUgAEjsKC3B1YmxpY2F0aW9uGAMgASgLMiQubGl2ZWtpdC5w", + "cm90by5Pd25lZFRyYWNrUHVibGljYXRpb25IAEIJCgdtZXNzYWdlIi8KGFJl", + "YWR5Rm9yUm9vbUV2ZW50UmVxdWVzdBITCgtyb29tX2hhbmRsZRgBIAIoBCIb", + "ChlSZWFkeUZvclJvb21FdmVudFJlc3BvbnNlIoEBChVVbnB1Ymxpc2hUcmFj", + "a1JlcXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRfaGFuZGxlGAEgAigEEhEK", + "CXRyYWNrX3NpZBgCIAIoCRIZChFzdG9wX29uX3VucHVibGlzaBgDIAIoCBIY", + "ChByZXF1ZXN0X2FzeW5jX2lkGAQgASgEIioKFlVucHVibGlzaFRyYWNrUmVz", + "cG9uc2USEAoIYXN5bmNfaWQYASACKAQiOQoWVW5wdWJsaXNoVHJhY2tDYWxs", + "YmFjaxIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSLTAQoSUHVi", + "bGlzaERhdGFSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgB", + "IAIoBBIQCghkYXRhX3B0chgCIAIoBBIQCghkYXRhX2xlbhgDIAIoBBIQCghy", + "ZWxpYWJsZRgEIAIoCBIcChBkZXN0aW5hdGlvbl9zaWRzGAUgAygJQgIYARIN", + "CgV0b3BpYxgGIAEoCRIeChZkZXN0aW5hdGlvbl9pZGVudGl0aWVzGAcgAygJ", + "EhgKEHJlcXVlc3RfYXN5bmNfaWQYCCABKAQiJwoTUHVibGlzaERhdGFSZXNw", + "b25zZRIQCghhc3luY19pZBgBIAIoBCI2ChNQdWJsaXNoRGF0YUNhbGxiYWNr", + "EhAKCGFzeW5jX2lkGAEgAigEEg0KBWVycm9yGAIgASgJIsABChtQdWJsaXNo", + "VHJhbnNjcmlwdGlvblJlcXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRfaGFu", + "ZGxlGAEgAigEEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAIgAigJEhAKCHRy", + "YWNrX2lkGAMgAigJEjUKCHNlZ21lbnRzGAQgAygLMiMubGl2ZWtpdC5wcm90", + "by5UcmFuc2NyaXB0aW9uU2VnbWVudBIYChByZXF1ZXN0X2FzeW5jX2lkGAUg", + "ASgEIjAKHFB1Ymxpc2hUcmFuc2NyaXB0aW9uUmVzcG9uc2USEAoIYXN5bmNf", + "aWQYASACKAQiPwocUHVibGlzaFRyYW5zY3JpcHRpb25DYWxsYmFjaxIQCghh", + "c3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSKQAQoVUHVibGlzaFNpcER0", + "bWZSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIM", + "CgRjb2RlGAIgAigNEg0KBWRpZ2l0GAMgAigJEh4KFmRlc3RpbmF0aW9uX2lk", + "ZW50aXRpZXMYBCADKAkSGAoQcmVxdWVzdF9hc3luY19pZBgFIAEoBCIqChZQ", + "dWJsaXNoU2lwRHRtZlJlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIjkKFlB1", + "Ymxpc2hTaXBEdG1mQ2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDQoFZXJy", + "b3IYAiABKAkiZwoXU2V0TG9jYWxNZXRhZGF0YVJlcXVlc3QSIAoYbG9jYWxf", + "cGFydGljaXBhbnRfaGFuZGxlGAEgAigEEhAKCG1ldGFkYXRhGAIgAigJEhgK", + "EHJlcXVlc3RfYXN5bmNfaWQYAyABKAQiLAoYU2V0TG9jYWxNZXRhZGF0YVJl", + "c3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIjsKGFNldExvY2FsTWV0YWRhdGFD", + "YWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSKeAQoW", + "U2VuZENoYXRNZXNzYWdlUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9o", + "YW5kbGUYASACKAQSDwoHbWVzc2FnZRgCIAIoCRIeChZkZXN0aW5hdGlvbl9p", + "ZGVudGl0aWVzGAMgAygJEhcKD3NlbmRlcl9pZGVudGl0eRgEIAEoCRIYChBy", + "ZXF1ZXN0X2FzeW5jX2lkGAUgASgEItYBChZFZGl0Q2hhdE1lc3NhZ2VSZXF1", + "ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIRCgllZGl0", + "X3RleHQYAiACKAkSNAoQb3JpZ2luYWxfbWVzc2FnZRgDIAIoCzIaLmxpdmVr", + "aXQucHJvdG8uQ2hhdE1lc3NhZ2USHgoWZGVzdGluYXRpb25faWRlbnRpdGll", + "cxgEIAMoCRIXCg9zZW5kZXJfaWRlbnRpdHkYBSABKAkSGAoQcmVxdWVzdF9h", + "c3luY19pZBgGIAEoBCIrChdTZW5kQ2hhdE1lc3NhZ2VSZXNwb25zZRIQCghh", + "c3luY19pZBgBIAIoBCJ7ChdTZW5kQ2hhdE1lc3NhZ2VDYWxsYmFjaxIQCghh", + "c3luY19pZBgBIAIoBBIPCgVlcnJvchgCIAEoCUgAEjIKDGNoYXRfbWVzc2Fn", + "ZRgDIAEoCzIaLmxpdmVraXQucHJvdG8uQ2hhdE1lc3NhZ2VIAEIJCgdtZXNz", + "YWdlIosBChlTZXRMb2NhbEF0dHJpYnV0ZXNSZXF1ZXN0EiAKGGxvY2FsX3Bh", + "cnRpY2lwYW50X2hhbmRsZRgBIAIoBBIyCgphdHRyaWJ1dGVzGAIgAygLMh4u", + "bGl2ZWtpdC5wcm90by5BdHRyaWJ1dGVzRW50cnkSGAoQcmVxdWVzdF9hc3lu", + "Y19pZBgDIAEoBCItCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgAigJEg0K", + "BXZhbHVlGAIgAigJIi4KGlNldExvY2FsQXR0cmlidXRlc1Jlc3BvbnNlEhAK", + "CGFzeW5jX2lkGAEgAigEIj0KGlNldExvY2FsQXR0cmlidXRlc0NhbGxiYWNr", + "EhAKCGFzeW5jX2lkGAEgAigEEg0KBWVycm9yGAIgASgJIl8KE1NldExvY2Fs", + "TmFtZVJlcXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRfaGFuZGxlGAEgAigE", + "EgwKBG5hbWUYAiACKAkSGAoQcmVxdWVzdF9hc3luY19pZBgDIAEoBCIoChRT", + "ZXRMb2NhbE5hbWVSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCI3ChRTZXRM", + "b2NhbE5hbWVDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgC", + "IAEoCSJFChRTZXRTdWJzY3JpYmVkUmVxdWVzdBIRCglzdWJzY3JpYmUYASAC", + "KAgSGgoScHVibGljYXRpb25faGFuZGxlGAIgAigEIhcKFVNldFN1YnNjcmli", + "ZWRSZXNwb25zZSJHChZHZXRTZXNzaW9uU3RhdHNSZXF1ZXN0EhMKC3Jvb21f", + "aGFuZGxlGAEgAigEEhgKEHJlcXVlc3RfYXN5bmNfaWQYAiABKAQiKwoXR2V0", + "U2Vzc2lvblN0YXRzUmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQi9wEKF0dl", + "dFNlc3Npb25TdGF0c0NhbGxiYWNrEhAKCGFzeW5jX2lkGAEgAigEEg8KBWVy", + "cm9yGAIgASgJSAASPwoGcmVzdWx0GAMgASgLMi0ubGl2ZWtpdC5wcm90by5H", + "ZXRTZXNzaW9uU3RhdHNDYWxsYmFjay5SZXN1bHRIABptCgZSZXN1bHQSMAoP", + "cHVibGlzaGVyX3N0YXRzGAEgAygLMhcubGl2ZWtpdC5wcm90by5SdGNTdGF0", + "cxIxChBzdWJzY3JpYmVyX3N0YXRzGAIgAygLMhcubGl2ZWtpdC5wcm90by5S", + "dGNTdGF0c0IJCgdtZXNzYWdlIjsKDVZpZGVvRW5jb2RpbmcSEwoLbWF4X2Jp", + "dHJhdGUYASACKAQSFQoNbWF4X2ZyYW1lcmF0ZRgCIAIoASIkCg1BdWRpb0Vu", + "Y29kaW5nEhMKC21heF9iaXRyYXRlGAEgAigEIpUDChNUcmFja1B1Ymxpc2hP", + "cHRpb25zEjQKDnZpZGVvX2VuY29kaW5nGAEgASgLMhwubGl2ZWtpdC5wcm90", + "by5WaWRlb0VuY29kaW5nEjQKDmF1ZGlvX2VuY29kaW5nGAIgASgLMhwubGl2", + "ZWtpdC5wcm90by5BdWRpb0VuY29kaW5nEi4KC3ZpZGVvX2NvZGVjGAMgASgO", + "MhkubGl2ZWtpdC5wcm90by5WaWRlb0NvZGVjEgsKA2R0eBgEIAEoCBILCgNy", + "ZWQYBSABKAgSEQoJc2ltdWxjYXN0GAYgASgIEioKBnNvdXJjZRgHIAEoDjIa", + "LmxpdmVraXQucHJvdG8uVHJhY2tTb3VyY2USDgoGc3RyZWFtGAggASgJEhkK", + "EXByZWNvbm5lY3RfYnVmZmVyGAkgASgIEkQKF3BhY2tldF90cmFpbGVyX2Zl", + "YXR1cmVzGAogAygOMiMubGl2ZWtpdC5wcm90by5QYWNrZXRUcmFpbGVyRmVh", + "dHVyZRIYChBzY2FsYWJpbGl0eV9tb2RlGAsgASgJIj0KCUljZVNlcnZlchIM", + "CgR1cmxzGAEgAygJEhAKCHVzZXJuYW1lGAIgASgJEhAKCHBhc3N3b3JkGAMg", + "ASgJIsQBCglSdGNDb25maWcSOwoSaWNlX3RyYW5zcG9ydF90eXBlGAEgASgO", + "Mh8ubGl2ZWtpdC5wcm90by5JY2VUcmFuc3BvcnRUeXBlEksKGmNvbnRpbnVh", + "bF9nYXRoZXJpbmdfcG9saWN5GAIgASgOMicubGl2ZWtpdC5wcm90by5Db250", + "aW51YWxHYXRoZXJpbmdQb2xpY3kSLQoLaWNlX3NlcnZlcnMYAyADKAsyGC5s", + "aXZla2l0LnByb3RvLkljZVNlcnZlciKuAgoLUm9vbU9wdGlvbnMSFgoOYXV0", + "b19zdWJzY3JpYmUYASABKAgSFwoPYWRhcHRpdmVfc3RyZWFtGAIgASgIEhAK", + "CGR5bmFjYXN0GAMgASgIEiwKBGUyZWUYBCABKAsyGi5saXZla2l0LnByb3Rv", + "LkUyZWVPcHRpb25zQgIYARIsCgpydGNfY29uZmlnGAUgASgLMhgubGl2ZWtp", + "dC5wcm90by5SdGNDb25maWcSFAoMam9pbl9yZXRyaWVzGAYgASgNEi4KCmVu", + "Y3J5cHRpb24YByABKAsyGi5saXZla2l0LnByb3RvLkUyZWVPcHRpb25zEh4K", + "FnNpbmdsZV9wZWVyX2Nvbm5lY3Rpb24YCCABKAgSGgoSY29ubmVjdF90aW1l", + "b3V0X21zGAkgASgEIncKFFRyYW5zY3JpcHRpb25TZWdtZW50EgoKAmlkGAEg", + "AigJEgwKBHRleHQYAiACKAkSEgoKc3RhcnRfdGltZRgDIAIoBBIQCghlbmRf", + "dGltZRgEIAIoBBINCgVmaW5hbBgFIAIoCBIQCghsYW5ndWFnZRgGIAIoCSIw", + "CgpCdWZmZXJJbmZvEhAKCGRhdGFfcHRyGAEgAigEEhAKCGRhdGFfbGVuGAIg", + "AigEImUKC093bmVkQnVmZmVyEi0KBmhhbmRsZRgBIAIoCzIdLmxpdmVraXQu", + "cHJvdG8uRmZpT3duZWRIYW5kbGUSJwoEZGF0YRgCIAIoCzIZLmxpdmVraXQu", + "cHJvdG8uQnVmZmVySW5mbyLOFwoJUm9vbUV2ZW50EhMKC3Jvb21faGFuZGxl", + "GAEgAigEEkQKFXBhcnRpY2lwYW50X2Nvbm5lY3RlZBgCIAEoCzIjLmxpdmVr", + "aXQucHJvdG8uUGFydGljaXBhbnRDb25uZWN0ZWRIABJKChhwYXJ0aWNpcGFu", + "dF9kaXNjb25uZWN0ZWQYAyABKAsyJi5saXZla2l0LnByb3RvLlBhcnRpY2lw", + "YW50RGlzY29ubmVjdGVkSAASQwoVbG9jYWxfdHJhY2tfcHVibGlzaGVkGAQg", + "ASgLMiIubGl2ZWtpdC5wcm90by5Mb2NhbFRyYWNrUHVibGlzaGVkSAASRwoX", + "bG9jYWxfdHJhY2tfdW5wdWJsaXNoZWQYBSABKAsyJC5saXZla2l0LnByb3Rv", + "LkxvY2FsVHJhY2tVbnB1Ymxpc2hlZEgAEkUKFmxvY2FsX3RyYWNrX3N1YnNj", + "cmliZWQYBiABKAsyIy5saXZla2l0LnByb3RvLkxvY2FsVHJhY2tTdWJzY3Jp", + "YmVkSAASOAoPdHJhY2tfcHVibGlzaGVkGAcgASgLMh0ubGl2ZWtpdC5wcm90", + "by5UcmFja1B1Ymxpc2hlZEgAEjwKEXRyYWNrX3VucHVibGlzaGVkGAggASgL", + "Mh8ubGl2ZWtpdC5wcm90by5UcmFja1VucHVibGlzaGVkSAASOgoQdHJhY2tf", + "c3Vic2NyaWJlZBgJIAEoCzIeLmxpdmVraXQucHJvdG8uVHJhY2tTdWJzY3Jp", + "YmVkSAASPgoSdHJhY2tfdW5zdWJzY3JpYmVkGAogASgLMiAubGl2ZWtpdC5w", + "cm90by5UcmFja1Vuc3Vic2NyaWJlZEgAEksKGXRyYWNrX3N1YnNjcmlwdGlv", + "bl9mYWlsZWQYCyABKAsyJi5saXZla2l0LnByb3RvLlRyYWNrU3Vic2NyaXB0", + "aW9uRmFpbGVkSAASMAoLdHJhY2tfbXV0ZWQYDCABKAsyGS5saXZla2l0LnBy", + "b3RvLlRyYWNrTXV0ZWRIABI0Cg10cmFja191bm11dGVkGA0gASgLMhsubGl2", + "ZWtpdC5wcm90by5UcmFja1VubXV0ZWRIABJHChdhY3RpdmVfc3BlYWtlcnNf", + "Y2hhbmdlZBgOIAEoCzIkLmxpdmVraXQucHJvdG8uQWN0aXZlU3BlYWtlcnND", + "aGFuZ2VkSAASQwoVcm9vbV9tZXRhZGF0YV9jaGFuZ2VkGA8gASgLMiIubGl2", + "ZWtpdC5wcm90by5Sb29tTWV0YWRhdGFDaGFuZ2VkSAASOQoQcm9vbV9zaWRf", + "Y2hhbmdlZBgQIAEoCzIdLmxpdmVraXQucHJvdG8uUm9vbVNpZENoYW5nZWRI", + "ABJRChxwYXJ0aWNpcGFudF9tZXRhZGF0YV9jaGFuZ2VkGBEgASgLMikubGl2", + "ZWtpdC5wcm90by5QYXJ0aWNpcGFudE1ldGFkYXRhQ2hhbmdlZEgAEkkKGHBh", + "cnRpY2lwYW50X25hbWVfY2hhbmdlZBgSIAEoCzIlLmxpdmVraXQucHJvdG8u", + "UGFydGljaXBhbnROYW1lQ2hhbmdlZEgAElUKHnBhcnRpY2lwYW50X2F0dHJp", + "YnV0ZXNfY2hhbmdlZBgTIAEoCzIrLmxpdmVraXQucHJvdG8uUGFydGljaXBh", + "bnRBdHRyaWJ1dGVzQ2hhbmdlZEgAEk0KGmNvbm5lY3Rpb25fcXVhbGl0eV9j", + "aGFuZ2VkGBQgASgLMicubGl2ZWtpdC5wcm90by5Db25uZWN0aW9uUXVhbGl0", + "eUNoYW5nZWRIABJJChhjb25uZWN0aW9uX3N0YXRlX2NoYW5nZWQYFSABKAsy", + "JS5saXZla2l0LnByb3RvLkNvbm5lY3Rpb25TdGF0ZUNoYW5nZWRIABIzCgxk", + "aXNjb25uZWN0ZWQYFiABKAsyGy5saXZla2l0LnByb3RvLkRpc2Nvbm5lY3Rl", + "ZEgAEjMKDHJlY29ubmVjdGluZxgXIAEoCzIbLmxpdmVraXQucHJvdG8uUmVj", + "b25uZWN0aW5nSAASMQoLcmVjb25uZWN0ZWQYGCABKAsyGi5saXZla2l0LnBy", + "b3RvLlJlY29ubmVjdGVkSAASPQoSZTJlZV9zdGF0ZV9jaGFuZ2VkGBkgASgL", + "Mh8ubGl2ZWtpdC5wcm90by5FMmVlU3RhdGVDaGFuZ2VkSAASJQoDZW9zGBog", + "ASgLMhYubGl2ZWtpdC5wcm90by5Sb29tRU9TSAASQQoUZGF0YV9wYWNrZXRf", + "cmVjZWl2ZWQYGyABKAsyIS5saXZla2l0LnByb3RvLkRhdGFQYWNrZXRSZWNl", + "aXZlZEgAEkYKFnRyYW5zY3JpcHRpb25fcmVjZWl2ZWQYHCABKAsyJC5saXZl", + "a2l0LnByb3RvLlRyYW5zY3JpcHRpb25SZWNlaXZlZEgAEjoKDGNoYXRfbWVz", + "c2FnZRgdIAEoCzIiLmxpdmVraXQucHJvdG8uQ2hhdE1lc3NhZ2VSZWNlaXZl", + "ZEgAEkkKFnN0cmVhbV9oZWFkZXJfcmVjZWl2ZWQYHiABKAsyJy5saXZla2l0", + "LnByb3RvLkRhdGFTdHJlYW1IZWFkZXJSZWNlaXZlZEgAEkcKFXN0cmVhbV9j", + "aHVua19yZWNlaXZlZBgfIAEoCzImLmxpdmVraXQucHJvdG8uRGF0YVN0cmVh", + "bUNodW5rUmVjZWl2ZWRIABJLChdzdHJlYW1fdHJhaWxlcl9yZWNlaXZlZBgg", + "IAEoCzIoLmxpdmVraXQucHJvdG8uRGF0YVN0cmVhbVRyYWlsZXJSZWNlaXZl", + "ZEgAEmkKImRhdGFfY2hhbm5lbF9sb3dfdGhyZXNob2xkX2NoYW5nZWQYISAB", + "KAsyOy5saXZla2l0LnByb3RvLkRhdGFDaGFubmVsQnVmZmVyZWRBbW91bnRM", + "b3dUaHJlc2hvbGRDaGFuZ2VkSAASPQoSYnl0ZV9zdHJlYW1fb3BlbmVkGCIg", + "ASgLMh8ubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtT3BlbmVkSAASPQoSdGV4", + "dF9zdHJlYW1fb3BlbmVkGCMgASgLMh8ubGl2ZWtpdC5wcm90by5UZXh0U3Ry", + "ZWFtT3BlbmVkSAASLwoMcm9vbV91cGRhdGVkGCQgASgLMhcubGl2ZWtpdC5w", + "cm90by5Sb29tSW5mb0gAEigKBW1vdmVkGCUgASgLMhcubGl2ZWtpdC5wcm90", + "by5Sb29tSW5mb0gAEkIKFHBhcnRpY2lwYW50c191cGRhdGVkGCYgASgLMiIu", + "bGl2ZWtpdC5wcm90by5QYXJ0aWNpcGFudHNVcGRhdGVkSAASYgolcGFydGlj", + "aXBhbnRfZW5jcnlwdGlvbl9zdGF0dXNfY2hhbmdlZBgnIAEoCzIxLmxpdmVr", + "aXQucHJvdG8uUGFydGljaXBhbnRFbmNyeXB0aW9uU3RhdHVzQ2hhbmdlZEgA", + "ElUKHnBhcnRpY2lwYW50X3Blcm1pc3Npb25fY2hhbmdlZBgpIAEoCzIrLmxp", + "dmVraXQucHJvdG8uUGFydGljaXBhbnRQZXJtaXNzaW9uQ2hhbmdlZEgAEjgK", + "D3Rva2VuX3JlZnJlc2hlZBgoIAEoCzIdLmxpdmVraXQucHJvdG8uVG9rZW5S", + "ZWZyZXNoZWRIABI+ChJwYXJ0aWNpcGFudF9hY3RpdmUYKiABKAsyIC5saXZl", + "a2l0LnByb3RvLlBhcnRpY2lwYW50QWN0aXZlSAASQQoUZGF0YV90cmFja19w", + "dWJsaXNoZWQYKyABKAsyIS5saXZla2l0LnByb3RvLkRhdGFUcmFja1B1Ymxp", + "c2hlZEgAEkUKFmRhdGFfdHJhY2tfdW5wdWJsaXNoZWQYLCABKAsyIy5saXZl", + "a2l0LnByb3RvLkRhdGFUcmFja1VucHVibGlzaGVkSAASRwoXbG9jYWxfdHJh", + "Y2tfcmVwdWJsaXNoZWQYLSABKAsyJC5saXZla2l0LnByb3RvLkxvY2FsVHJh", + "Y2tSZXB1Ymxpc2hlZEgAQgkKB21lc3NhZ2UiyQIKCFJvb21JbmZvEgsKA3Np", + "ZBgBIAEoCRIMCgRuYW1lGAIgAigJEhAKCG1ldGFkYXRhGAMgAigJEi4KJmxv", + "c3N5X2RjX2J1ZmZlcmVkX2Ftb3VudF9sb3dfdGhyZXNob2xkGAQgAigEEjEK", + "KXJlbGlhYmxlX2RjX2J1ZmZlcmVkX2Ftb3VudF9sb3dfdGhyZXNob2xkGAUg", + "AigEEhUKDWVtcHR5X3RpbWVvdXQYBiACKA0SGQoRZGVwYXJ0dXJlX3RpbWVv", + "dXQYByACKA0SGAoQbWF4X3BhcnRpY2lwYW50cxgIIAIoDRIVCg1jcmVhdGlv", + "bl90aW1lGAkgAigDEhgKEG51bV9wYXJ0aWNpcGFudHMYCiACKA0SFgoObnVt", + "X3B1Ymxpc2hlcnMYCyACKA0SGAoQYWN0aXZlX3JlY29yZGluZxgMIAIoCCJh", + "CglPd25lZFJvb20SLQoGaGFuZGxlGAEgAigLMh0ubGl2ZWtpdC5wcm90by5G", + "ZmlPd25lZEhhbmRsZRIlCgRpbmZvGAIgAigLMhcubGl2ZWtpdC5wcm90by5S", + "b29tSW5mbyJLChNQYXJ0aWNpcGFudHNVcGRhdGVkEjQKDHBhcnRpY2lwYW50", + "cxgBIAMoCzIeLmxpdmVraXQucHJvdG8uUGFydGljaXBhbnRJbmZvIkUKFFBh", + "cnRpY2lwYW50Q29ubmVjdGVkEi0KBGluZm8YASACKAsyHy5saXZla2l0LnBy", + "b3RvLk93bmVkUGFydGljaXBhbnQiMQoRUGFydGljaXBhbnRBY3RpdmUSHAoU", + "cGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkicwoXUGFydGljaXBhbnREaXNj", + "b25uZWN0ZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkSOgoRZGlz", + "Y29ubmVjdF9yZWFzb24YAiACKA4yHy5saXZla2l0LnByb3RvLkRpc2Nvbm5l", + "Y3RSZWFzb24iKAoTTG9jYWxUcmFja1B1Ymxpc2hlZBIRCgl0cmFja19zaWQY", + "ASACKAkiMAoVTG9jYWxUcmFja1VucHVibGlzaGVkEhcKD3B1YmxpY2F0aW9u", + "X3NpZBgBIAIoCSJ8ChVMb2NhbFRyYWNrUmVwdWJsaXNoZWQSGgoScHVibGlj", + "YXRpb25faGFuZGxlGAEgAigEEhQKDHByZXZpb3VzX3NpZBgCIAIoCRIxCgRp", + "bmZvGAMgAigLMiMubGl2ZWtpdC5wcm90by5UcmFja1B1YmxpY2F0aW9uSW5m", + "byIpChRMb2NhbFRyYWNrU3Vic2NyaWJlZBIRCgl0cmFja19zaWQYAiACKAki", + "aQoOVHJhY2tQdWJsaXNoZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASAC", + "KAkSOQoLcHVibGljYXRpb24YAiACKAsyJC5saXZla2l0LnByb3RvLk93bmVk", + "VHJhY2tQdWJsaWNhdGlvbiJJChBUcmFja1VucHVibGlzaGVkEhwKFHBhcnRp", + "Y2lwYW50X2lkZW50aXR5GAEgAigJEhcKD3B1YmxpY2F0aW9uX3NpZBgCIAIo", + "CSJZCg9UcmFja1N1YnNjcmliZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkY", + "ASACKAkSKAoFdHJhY2sYAiACKAsyGS5saXZla2l0LnByb3RvLk93bmVkVHJh", + "Y2siRAoRVHJhY2tVbnN1YnNjcmliZWQSHAoUcGFydGljaXBhbnRfaWRlbnRp", + "dHkYASACKAkSEQoJdHJhY2tfc2lkGAIgAigJIlkKF1RyYWNrU3Vic2NyaXB0", + "aW9uRmFpbGVkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgAigJEhEKCXRy", + "YWNrX3NpZBgCIAIoCRINCgVlcnJvchgDIAIoCSI9CgpUcmFja011dGVkEhwK", + "FHBhcnRpY2lwYW50X2lkZW50aXR5GAEgAigJEhEKCXRyYWNrX3NpZBgCIAIo", + "CSI/CgxUcmFja1VubXV0ZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASAC", + "KAkSEQoJdHJhY2tfc2lkGAIgAigJIl8KEEUyZWVTdGF0ZUNoYW5nZWQSHAoU", + "cGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkSLQoFc3RhdGUYAiACKA4yHi5s", + "aXZla2l0LnByb3RvLkVuY3J5cHRpb25TdGF0ZSI3ChVBY3RpdmVTcGVha2Vy", + "c0NoYW5nZWQSHgoWcGFydGljaXBhbnRfaWRlbnRpdGllcxgBIAMoCSInChNS", + "b29tTWV0YWRhdGFDaGFuZ2VkEhAKCG1ldGFkYXRhGAEgAigJIh0KDlJvb21T", + "aWRDaGFuZ2VkEgsKA3NpZBgBIAIoCSJMChpQYXJ0aWNpcGFudE1ldGFkYXRh", + "Q2hhbmdlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIQCghtZXRh", + "ZGF0YRgCIAIoCSKsAQocUGFydGljaXBhbnRBdHRyaWJ1dGVzQ2hhbmdlZBIc", + "ChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIyCgphdHRyaWJ1dGVzGAIg", + "AygLMh4ubGl2ZWtpdC5wcm90by5BdHRyaWJ1dGVzRW50cnkSOgoSY2hhbmdl", + "ZF9hdHRyaWJ1dGVzGAMgAygLMh4ubGl2ZWtpdC5wcm90by5BdHRyaWJ1dGVz", + "RW50cnkiWAoiUGFydGljaXBhbnRFbmNyeXB0aW9uU3RhdHVzQ2hhbmdlZBIc", + "ChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIUCgxpc19lbmNyeXB0ZWQY", + "AiACKAgiRAoWUGFydGljaXBhbnROYW1lQ2hhbmdlZBIcChRwYXJ0aWNpcGFu", + "dF9pZGVudGl0eRgBIAIoCRIMCgRuYW1lGAIgAigJInYKHFBhcnRpY2lwYW50", + "UGVybWlzc2lvbkNoYW5nZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASAC", + "KAkSOAoKcGVybWlzc2lvbhgCIAEoCzIkLmxpdmVraXQucHJvdG8uUGFydGlj", + "aXBhbnRQZXJtaXNzaW9uImsKGENvbm5lY3Rpb25RdWFsaXR5Q2hhbmdlZBIc", + "ChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIxCgdxdWFsaXR5GAIgAigO", + "MiAubGl2ZWtpdC5wcm90by5Db25uZWN0aW9uUXVhbGl0eSJFCgpVc2VyUGFj", + "a2V0EigKBGRhdGEYASACKAsyGi5saXZla2l0LnByb3RvLk93bmVkQnVmZmVy", + "Eg0KBXRvcGljGAIgASgJInkKC0NoYXRNZXNzYWdlEgoKAmlkGAEgAigJEhEK", + "CXRpbWVzdGFtcBgCIAIoAxIPCgdtZXNzYWdlGAMgAigJEhYKDmVkaXRfdGlt", + "ZXN0YW1wGAQgASgDEg8KB2RlbGV0ZWQYBSABKAgSEQoJZ2VuZXJhdGVkGAYg", + "ASgIImAKE0NoYXRNZXNzYWdlUmVjZWl2ZWQSKwoHbWVzc2FnZRgBIAIoCzIa", + "LmxpdmVraXQucHJvdG8uQ2hhdE1lc3NhZ2USHAoUcGFydGljaXBhbnRfaWRl", + "bnRpdHkYAiACKAkiJgoHU2lwRFRNRhIMCgRjb2RlGAEgAigNEg0KBWRpZ2l0", + "GAIgASgJIr8BChJEYXRhUGFja2V0UmVjZWl2ZWQSKwoEa2luZBgBIAIoDjId", + "LmxpdmVraXQucHJvdG8uRGF0YVBhY2tldEtpbmQSHAoUcGFydGljaXBhbnRf", + "aWRlbnRpdHkYAiACKAkSKQoEdXNlchgEIAEoCzIZLmxpdmVraXQucHJvdG8u", + "VXNlclBhY2tldEgAEioKCHNpcF9kdG1mGAUgASgLMhYubGl2ZWtpdC5wcm90", + "by5TaXBEVE1GSABCBwoFdmFsdWUifwoVVHJhbnNjcmlwdGlvblJlY2VpdmVk", + "EhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgASgJEhEKCXRyYWNrX3NpZBgC", + "IAEoCRI1CghzZWdtZW50cxgDIAMoCzIjLmxpdmVraXQucHJvdG8uVHJhbnNj", + "cmlwdGlvblNlZ21lbnQiRwoWQ29ubmVjdGlvblN0YXRlQ2hhbmdlZBItCgVz", + "dGF0ZRgBIAIoDjIeLmxpdmVraXQucHJvdG8uQ29ubmVjdGlvblN0YXRlIgsK", + "CUNvbm5lY3RlZCI/CgxEaXNjb25uZWN0ZWQSLwoGcmVhc29uGAEgAigOMh8u", + "bGl2ZWtpdC5wcm90by5EaXNjb25uZWN0UmVhc29uIg4KDFJlY29ubmVjdGlu", + "ZyINCgtSZWNvbm5lY3RlZCIfCg5Ub2tlblJlZnJlc2hlZBINCgV0b2tlbhgB", + "IAIoCSIJCgdSb29tRU9TIo4HCgpEYXRhU3RyZWFtGqoBCgpUZXh0SGVhZGVy", + "Ej8KDm9wZXJhdGlvbl90eXBlGAEgAigOMicubGl2ZWtpdC5wcm90by5EYXRh", + "U3RyZWFtLk9wZXJhdGlvblR5cGUSDwoHdmVyc2lvbhgCIAEoBRIaChJyZXBs", + "eV90b19zdHJlYW1faWQYAyABKAkSGwoTYXR0YWNoZWRfc3RyZWFtX2lkcxgE", + "IAMoCRIRCglnZW5lcmF0ZWQYBSABKAgaGgoKQnl0ZUhlYWRlchIMCgRuYW1l", + "GAEgAigJGusCCgZIZWFkZXISEQoJc3RyZWFtX2lkGAEgAigJEhEKCXRpbWVz", + "dGFtcBgCIAIoAxIRCgltaW1lX3R5cGUYAyACKAkSDQoFdG9waWMYBCACKAkS", + "FAoMdG90YWxfbGVuZ3RoGAUgASgEEkQKCmF0dHJpYnV0ZXMYBiADKAsyMC5s", + "aXZla2l0LnByb3RvLkRhdGFTdHJlYW0uSGVhZGVyLkF0dHJpYnV0ZXNFbnRy", + "eRI7Cgt0ZXh0X2hlYWRlchgHIAEoCzIkLmxpdmVraXQucHJvdG8uRGF0YVN0", + "cmVhbS5UZXh0SGVhZGVySAASOwoLYnl0ZV9oZWFkZXIYCCABKAsyJC5saXZl", + "a2l0LnByb3RvLkRhdGFTdHJlYW0uQnl0ZUhlYWRlckgAGjEKD0F0dHJpYnV0", + "ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQhAKDmNv", + "bnRlbnRfaGVhZGVyGl0KBUNodW5rEhEKCXN0cmVhbV9pZBgBIAIoCRITCgtj", + "aHVua19pbmRleBgCIAIoBBIPCgdjb250ZW50GAMgAigMEg8KB3ZlcnNpb24Y", + "BCABKAUSCgoCaXYYBSABKAwapgEKB1RyYWlsZXISEQoJc3RyZWFtX2lkGAEg", + "AigJEg4KBnJlYXNvbhgCIAIoCRJFCgphdHRyaWJ1dGVzGAMgAygLMjEubGl2", + "ZWtpdC5wcm90by5EYXRhU3RyZWFtLlRyYWlsZXIuQXR0cmlidXRlc0VudHJ5", + "GjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiAB", + "KAk6AjgBIkEKDU9wZXJhdGlvblR5cGUSCgoGQ1JFQVRFEAASCgoGVVBEQVRF", + "EAESCgoGREVMRVRFEAISDAoIUkVBQ1RJT04QAyJqChhEYXRhU3RyZWFtSGVh", + "ZGVyUmVjZWl2ZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkSMAoG", + "aGVhZGVyGAIgAigLMiAubGl2ZWtpdC5wcm90by5EYXRhU3RyZWFtLkhlYWRl", + "ciJnChdEYXRhU3RyZWFtQ2h1bmtSZWNlaXZlZBIcChRwYXJ0aWNpcGFudF9p", + "ZGVudGl0eRgBIAIoCRIuCgVjaHVuaxgCIAIoCzIfLmxpdmVraXQucHJvdG8u", + "RGF0YVN0cmVhbS5DaHVuayJtChlEYXRhU3RyZWFtVHJhaWxlclJlY2VpdmVk", + "EhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgAigJEjIKB3RyYWlsZXIYAiAC", + "KAsyIS5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0uVHJhaWxlciLAAQoXU2Vu", + "ZFN0cmVhbUhlYWRlclJlcXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRfaGFu", + "ZGxlGAEgAigEEjAKBmhlYWRlchgCIAIoCzIgLmxpdmVraXQucHJvdG8uRGF0", + "YVN0cmVhbS5IZWFkZXISHgoWZGVzdGluYXRpb25faWRlbnRpdGllcxgDIAMo", + "CRIXCg9zZW5kZXJfaWRlbnRpdHkYBCACKAkSGAoQcmVxdWVzdF9hc3luY19p", + "ZBgFIAEoBCK9AQoWU2VuZFN0cmVhbUNodW5rUmVxdWVzdBIgChhsb2NhbF9w", + "YXJ0aWNpcGFudF9oYW5kbGUYASACKAQSLgoFY2h1bmsYAiACKAsyHy5saXZl", + "a2l0LnByb3RvLkRhdGFTdHJlYW0uQ2h1bmsSHgoWZGVzdGluYXRpb25faWRl", + "bnRpdGllcxgDIAMoCRIXCg9zZW5kZXJfaWRlbnRpdHkYBCACKAkSGAoQcmVx", + "dWVzdF9hc3luY19pZBgFIAEoBCLDAQoYU2VuZFN0cmVhbVRyYWlsZXJSZXF1", + "ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIyCgd0cmFp", + "bGVyGAIgAigLMiEubGl2ZWtpdC5wcm90by5EYXRhU3RyZWFtLlRyYWlsZXIS", + "HgoWZGVzdGluYXRpb25faWRlbnRpdGllcxgDIAMoCRIXCg9zZW5kZXJfaWRl", + "bnRpdHkYBCACKAkSGAoQcmVxdWVzdF9hc3luY19pZBgFIAEoBCIsChhTZW5k", + "U3RyZWFtSGVhZGVyUmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQiKwoXU2Vu", + "ZFN0cmVhbUNodW5rUmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQiLQoZU2Vu", + "ZFN0cmVhbVRyYWlsZXJSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCI7ChhT", + "ZW5kU3RyZWFtSGVhZGVyQ2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDQoF", + "ZXJyb3IYAiABKAkiOgoXU2VuZFN0cmVhbUNodW5rQ2FsbGJhY2sSEAoIYXN5", + "bmNfaWQYASACKAQSDQoFZXJyb3IYAiABKAkiPAoZU2VuZFN0cmVhbVRyYWls", + "ZXJDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSKT", + "AQovU2V0RGF0YUNoYW5uZWxCdWZmZXJlZEFtb3VudExvd1RocmVzaG9sZFJl", + "cXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRfaGFuZGxlGAEgAigEEhEKCXRo", + "cmVzaG9sZBgCIAIoBBIrCgRraW5kGAMgAigOMh0ubGl2ZWtpdC5wcm90by5E", + "YXRhUGFja2V0S2luZCIyCjBTZXREYXRhQ2hhbm5lbEJ1ZmZlcmVkQW1vdW50", + "TG93VGhyZXNob2xkUmVzcG9uc2UibgosRGF0YUNoYW5uZWxCdWZmZXJlZEFt", + "b3VudExvd1RocmVzaG9sZENoYW5nZWQSKwoEa2luZBgBIAIoDjIdLmxpdmVr", + "aXQucHJvdG8uRGF0YVBhY2tldEtpbmQSEQoJdGhyZXNob2xkGAIgAigEImYK", + "EEJ5dGVTdHJlYW1PcGVuZWQSNAoGcmVhZGVyGAEgAigLMiQubGl2ZWtpdC5w", + "cm90by5Pd25lZEJ5dGVTdHJlYW1SZWFkZXISHAoUcGFydGljaXBhbnRfaWRl", + "bnRpdHkYAiACKAkiZgoQVGV4dFN0cmVhbU9wZW5lZBI0CgZyZWFkZXIYASAC", + "KAsyJC5saXZla2l0LnByb3RvLk93bmVkVGV4dFN0cmVhbVJlYWRlchIcChRw", + "YXJ0aWNpcGFudF9pZGVudGl0eRgCIAIoCSJIChJEYXRhVHJhY2tQdWJsaXNo", + "ZWQSMgoFdHJhY2sYASACKAsyIy5saXZla2l0LnByb3RvLk93bmVkUmVtb3Rl", + "RGF0YVRyYWNrIiMKFERhdGFUcmFja1VucHVibGlzaGVkEgsKA3NpZBgBIAIo", + "CSrmAQoUU2ltdWxhdGVTY2VuYXJpb0tpbmQSHQoZU0lNVUxBVEVfU0lHTkFM", + "X1JFQ09OTkVDVBAAEhQKEFNJTVVMQVRFX1NQRUFLRVIQARIZChVTSU1VTEFU", + "RV9OT0RFX0ZBSUxVUkUQAhIZChVTSU1VTEFURV9TRVJWRVJfTEVBVkUQAxIW", + "ChJTSU1VTEFURV9NSUdSQVRJT04QBBIWChJTSU1VTEFURV9GT1JDRV9UQ1AQ", + "BRIWChJTSU1VTEFURV9GT1JDRV9UTFMQBhIbChdTSU1VTEFURV9GVUxMX1JF", + "Q09OTkVDVBAHKlAKEEljZVRyYW5zcG9ydFR5cGUSEwoPVFJBTlNQT1JUX1JF", + "TEFZEAASFAoQVFJBTlNQT1JUX05PSE9TVBABEhEKDVRSQU5TUE9SVF9BTEwQ", + "AipDChhDb250aW51YWxHYXRoZXJpbmdQb2xpY3kSDwoLR0FUSEVSX09OQ0UQ", + "ABIWChJHQVRIRVJfQ09OVElOVUFMTFkQASpgChFDb25uZWN0aW9uUXVhbGl0", + "eRIQCgxRVUFMSVRZX1BPT1IQABIQCgxRVUFMSVRZX0dPT0QQARIVChFRVUFM", + "SVRZX0VYQ0VMTEVOVBACEhAKDFFVQUxJVFlfTE9TVBADKlMKD0Nvbm5lY3Rp", + "b25TdGF0ZRIVChFDT05OX0RJU0NPTk5FQ1RFRBAAEhIKDkNPTk5fQ09OTkVD", + "VEVEEAESFQoRQ09OTl9SRUNPTk5FQ1RJTkcQAiozCg5EYXRhUGFja2V0S2lu", + "ZBIOCgpLSU5EX0xPU1NZEAASEQoNS0lORF9SRUxJQUJMRRABQhCqAg1MaXZl", + "S2l0LlByb3Rv")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::LiveKit.Proto.E2EeReflection.Descriptor, global::LiveKit.Proto.HandleReflection.Descriptor, global::LiveKit.Proto.ParticipantReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, global::LiveKit.Proto.VideoFrameReflection.Descriptor, global::LiveKit.Proto.StatsReflection.Descriptor, global::LiveKit.Proto.DataStreamReflection.Descriptor, global::LiveKit.Proto.DataTrackReflection.Descriptor, }, - new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.IceTransportType), typeof(global::LiveKit.Proto.ContinualGatheringPolicy), typeof(global::LiveKit.Proto.ConnectionQuality), typeof(global::LiveKit.Proto.ConnectionState), typeof(global::LiveKit.Proto.DataPacketKind), }, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.SimulateScenarioKind), typeof(global::LiveKit.Proto.IceTransportType), typeof(global::LiveKit.Proto.ContinualGatheringPolicy), typeof(global::LiveKit.Proto.ConnectionQuality), typeof(global::LiveKit.Proto.ConnectionState), typeof(global::LiveKit.Proto.DataPacketKind), }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ConnectRequest), global::LiveKit.Proto.ConnectRequest.Parser, new[]{ "Url", "Token", "Options", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ConnectResponse), global::LiveKit.Proto.ConnectResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ConnectCallback), global::LiveKit.Proto.ConnectCallback.Parser, new[]{ "AsyncId", "Error", "Result" }, new[]{ "Message" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ConnectCallback.Types.ParticipantWithTracks), global::LiveKit.Proto.ConnectCallback.Types.ParticipantWithTracks.Parser, new[]{ "Participant", "Publications" }, null, null, null, null), @@ -361,9 +380,14 @@ static RoomReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisconnectRequest), global::LiveKit.Proto.DisconnectRequest.Parser, new[]{ "RoomHandle", "RequestAsyncId", "Reason" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisconnectResponse), global::LiveKit.Proto.DisconnectResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisconnectCallback), global::LiveKit.Proto.DisconnectCallback.Parser, new[]{ "AsyncId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SimulateScenarioRequest), global::LiveKit.Proto.SimulateScenarioRequest.Parser, new[]{ "RoomHandle", "Scenario", "RequestAsyncId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SimulateScenarioResponse), global::LiveKit.Proto.SimulateScenarioResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SimulateScenarioCallback), global::LiveKit.Proto.SimulateScenarioCallback.Parser, new[]{ "AsyncId", "Error" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishTrackRequest), global::LiveKit.Proto.PublishTrackRequest.Parser, new[]{ "LocalParticipantHandle", "TrackHandle", "Options", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishTrackResponse), global::LiveKit.Proto.PublishTrackResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishTrackCallback), global::LiveKit.Proto.PublishTrackCallback.Parser, new[]{ "AsyncId", "Error", "Publication" }, new[]{ "Message" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ReadyForRoomEventRequest), global::LiveKit.Proto.ReadyForRoomEventRequest.Parser, new[]{ "RoomHandle" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ReadyForRoomEventResponse), global::LiveKit.Proto.ReadyForRoomEventResponse.Parser, null, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.UnpublishTrackRequest), global::LiveKit.Proto.UnpublishTrackRequest.Parser, new[]{ "LocalParticipantHandle", "TrackSid", "StopOnUnpublish", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.UnpublishTrackResponse), global::LiveKit.Proto.UnpublishTrackResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.UnpublishTrackCallback), global::LiveKit.Proto.UnpublishTrackCallback.Parser, new[]{ "AsyncId", "Error" }, null, null, null, null), @@ -397,14 +421,14 @@ static RoomReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.GetSessionStatsCallback), global::LiveKit.Proto.GetSessionStatsCallback.Parser, new[]{ "AsyncId", "Error", "Result" }, new[]{ "Message" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.GetSessionStatsCallback.Types.Result), global::LiveKit.Proto.GetSessionStatsCallback.Types.Result.Parser, new[]{ "PublisherStats", "SubscriberStats" }, null, null, null, null)}), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.VideoEncoding), global::LiveKit.Proto.VideoEncoding.Parser, new[]{ "MaxBitrate", "MaxFramerate" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.AudioEncoding), global::LiveKit.Proto.AudioEncoding.Parser, new[]{ "MaxBitrate" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TrackPublishOptions), global::LiveKit.Proto.TrackPublishOptions.Parser, new[]{ "VideoEncoding", "AudioEncoding", "VideoCodec", "Dtx", "Red", "Simulcast", "Source", "Stream", "PreconnectBuffer" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TrackPublishOptions), global::LiveKit.Proto.TrackPublishOptions.Parser, new[]{ "VideoEncoding", "AudioEncoding", "VideoCodec", "Dtx", "Red", "Simulcast", "Source", "Stream", "PreconnectBuffer", "PacketTrailerFeatures", "ScalabilityMode" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.IceServer), global::LiveKit.Proto.IceServer.Parser, new[]{ "Urls", "Username", "Password" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RtcConfig), global::LiveKit.Proto.RtcConfig.Parser, new[]{ "IceTransportType", "ContinualGatheringPolicy", "IceServers" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RoomOptions), global::LiveKit.Proto.RoomOptions.Parser, new[]{ "AutoSubscribe", "AdaptiveStream", "Dynacast", "E2Ee", "RtcConfig", "JoinRetries", "Encryption", "SinglePeerConnection", "ConnectTimeoutMs" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TranscriptionSegment), global::LiveKit.Proto.TranscriptionSegment.Parser, new[]{ "Id", "Text", "StartTime", "EndTime", "Final", "Language" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.BufferInfo), global::LiveKit.Proto.BufferInfo.Parser, new[]{ "DataPtr", "DataLen" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedBuffer), global::LiveKit.Proto.OwnedBuffer.Parser, new[]{ "Handle", "Data" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RoomEvent), global::LiveKit.Proto.RoomEvent.Parser, new[]{ "RoomHandle", "ParticipantConnected", "ParticipantDisconnected", "LocalTrackPublished", "LocalTrackUnpublished", "LocalTrackSubscribed", "TrackPublished", "TrackUnpublished", "TrackSubscribed", "TrackUnsubscribed", "TrackSubscriptionFailed", "TrackMuted", "TrackUnmuted", "ActiveSpeakersChanged", "RoomMetadataChanged", "RoomSidChanged", "ParticipantMetadataChanged", "ParticipantNameChanged", "ParticipantAttributesChanged", "ConnectionQualityChanged", "ConnectionStateChanged", "Disconnected", "Reconnecting", "Reconnected", "E2EeStateChanged", "Eos", "DataPacketReceived", "TranscriptionReceived", "ChatMessage", "StreamHeaderReceived", "StreamChunkReceived", "StreamTrailerReceived", "DataChannelLowThresholdChanged", "ByteStreamOpened", "TextStreamOpened", "RoomUpdated", "Moved", "ParticipantsUpdated", "ParticipantEncryptionStatusChanged", "ParticipantPermissionChanged", "TokenRefreshed", "ParticipantActive", "DataTrackPublished", "DataTrackUnpublished" }, new[]{ "Message" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RoomEvent), global::LiveKit.Proto.RoomEvent.Parser, new[]{ "RoomHandle", "ParticipantConnected", "ParticipantDisconnected", "LocalTrackPublished", "LocalTrackUnpublished", "LocalTrackSubscribed", "TrackPublished", "TrackUnpublished", "TrackSubscribed", "TrackUnsubscribed", "TrackSubscriptionFailed", "TrackMuted", "TrackUnmuted", "ActiveSpeakersChanged", "RoomMetadataChanged", "RoomSidChanged", "ParticipantMetadataChanged", "ParticipantNameChanged", "ParticipantAttributesChanged", "ConnectionQualityChanged", "ConnectionStateChanged", "Disconnected", "Reconnecting", "Reconnected", "E2EeStateChanged", "Eos", "DataPacketReceived", "TranscriptionReceived", "ChatMessage", "StreamHeaderReceived", "StreamChunkReceived", "StreamTrailerReceived", "DataChannelLowThresholdChanged", "ByteStreamOpened", "TextStreamOpened", "RoomUpdated", "Moved", "ParticipantsUpdated", "ParticipantEncryptionStatusChanged", "ParticipantPermissionChanged", "TokenRefreshed", "ParticipantActive", "DataTrackPublished", "DataTrackUnpublished", "LocalTrackRepublished" }, new[]{ "Message" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RoomInfo), global::LiveKit.Proto.RoomInfo.Parser, new[]{ "Sid", "Name", "Metadata", "LossyDcBufferedAmountLowThreshold", "ReliableDcBufferedAmountLowThreshold", "EmptyTimeout", "DepartureTimeout", "MaxParticipants", "CreationTime", "NumParticipants", "NumPublishers", "ActiveRecording" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedRoom), global::LiveKit.Proto.OwnedRoom.Parser, new[]{ "Handle", "Info" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ParticipantsUpdated), global::LiveKit.Proto.ParticipantsUpdated.Parser, new[]{ "Participants" }, null, null, null, null), @@ -413,6 +437,7 @@ static RoomReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ParticipantDisconnected), global::LiveKit.Proto.ParticipantDisconnected.Parser, new[]{ "ParticipantIdentity", "DisconnectReason" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LocalTrackPublished), global::LiveKit.Proto.LocalTrackPublished.Parser, new[]{ "TrackSid" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LocalTrackUnpublished), global::LiveKit.Proto.LocalTrackUnpublished.Parser, new[]{ "PublicationSid" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LocalTrackRepublished), global::LiveKit.Proto.LocalTrackRepublished.Parser, new[]{ "PublicationHandle", "PreviousSid", "Info" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LocalTrackSubscribed), global::LiveKit.Proto.LocalTrackSubscribed.Parser, new[]{ "TrackSid" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TrackPublished), global::LiveKit.Proto.TrackPublished.Parser, new[]{ "ParticipantIdentity", "Publication" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TrackUnpublished), global::LiveKit.Proto.TrackUnpublished.Parser, new[]{ "ParticipantIdentity", "PublicationSid" }, null, null, null, null), @@ -474,6 +499,30 @@ static RoomReflection() { } #region Enums + /// + /// Simulate a reconnection scenario for testing. Mirrors the variants of + /// `livekit::SimulateScenario`. The Resume / FullReconnect variants are + /// the relevant ones for verifying that resume preserves publications and + /// full reconnect republishes them exactly once. + /// + public enum SimulateScenarioKind { + /// + /// Closes the signal channel locally; engine attempts a Resume. + /// + [pbr::OriginalName("SIMULATE_SIGNAL_RECONNECT")] SimulateSignalReconnect = 0, + [pbr::OriginalName("SIMULATE_SPEAKER")] SimulateSpeaker = 1, + [pbr::OriginalName("SIMULATE_NODE_FAILURE")] SimulateNodeFailure = 2, + [pbr::OriginalName("SIMULATE_SERVER_LEAVE")] SimulateServerLeave = 3, + [pbr::OriginalName("SIMULATE_MIGRATION")] SimulateMigration = 4, + [pbr::OriginalName("SIMULATE_FORCE_TCP")] SimulateForceTcp = 5, + [pbr::OriginalName("SIMULATE_FORCE_TLS")] SimulateForceTls = 6, + /// + /// Asks the server to send `LeaveRequest{Reconnect}`, forcing a full + /// reconnect (new RtcSession; SDK republishes existing local tracks). + /// + [pbr::OriginalName("SIMULATE_FULL_RECONNECT")] SimulateFullReconnect = 7, + } + public enum IceTransportType { [pbr::OriginalName("TRANSPORT_RELAY")] TransportRelay = 0, [pbr::OriginalName("TRANSPORT_NOHOST")] TransportNohost = 1, @@ -2712,21 +2761,18 @@ public void MergeFrom(pb::CodedInputStream input) { } - /// - /// Publish a track to the room - /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class PublishTrackRequest : pb::IMessage + public sealed partial class SimulateScenarioRequest : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PublishTrackRequest()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SimulateScenarioRequest()); private pb::UnknownFieldSet _unknownFields; private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -2742,7 +2788,7 @@ public sealed partial class PublishTrackRequest : pb::IMessageField number for the "local_participant_handle" field. - public const int LocalParticipantHandleFieldNumber = 1; - private readonly static ulong LocalParticipantHandleDefaultValue = 0UL; + /// Field number for the "room_handle" field. + public const int RoomHandleFieldNumber = 1; + private readonly static ulong RoomHandleDefaultValue = 0UL; - private ulong localParticipantHandle_; + private ulong roomHandle_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong LocalParticipantHandle { - get { if ((_hasBits0 & 1) != 0) { return localParticipantHandle_; } else { return LocalParticipantHandleDefaultValue; } } + public ulong RoomHandle { + get { if ((_hasBits0 & 1) != 0) { return roomHandle_; } else { return RoomHandleDefaultValue; } } set { _hasBits0 |= 1; - localParticipantHandle_ = value; + roomHandle_ = value; } } - /// Gets whether the "local_participant_handle" field is set + /// Gets whether the "room_handle" field is set [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLocalParticipantHandle { + public bool HasRoomHandle { get { return (_hasBits0 & 1) != 0; } } - /// Clears the value of the "local_participant_handle" field + /// Clears the value of the "room_handle" field [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLocalParticipantHandle() { + public void ClearRoomHandle() { _hasBits0 &= ~1; } - /// Field number for the "track_handle" field. - public const int TrackHandleFieldNumber = 2; - private readonly static ulong TrackHandleDefaultValue = 0UL; + /// Field number for the "scenario" field. + public const int ScenarioFieldNumber = 2; + private readonly static global::LiveKit.Proto.SimulateScenarioKind ScenarioDefaultValue = global::LiveKit.Proto.SimulateScenarioKind.SimulateSignalReconnect; - private ulong trackHandle_; + private global::LiveKit.Proto.SimulateScenarioKind scenario_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong TrackHandle { - get { if ((_hasBits0 & 2) != 0) { return trackHandle_; } else { return TrackHandleDefaultValue; } } + public global::LiveKit.Proto.SimulateScenarioKind Scenario { + get { if ((_hasBits0 & 2) != 0) { return scenario_; } else { return ScenarioDefaultValue; } } set { _hasBits0 |= 2; - trackHandle_ = value; + scenario_ = value; } } - /// Gets whether the "track_handle" field is set + /// Gets whether the "scenario" field is set [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasTrackHandle { + public bool HasScenario { get { return (_hasBits0 & 2) != 0; } } - /// Clears the value of the "track_handle" field + /// Clears the value of the "scenario" field [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearTrackHandle() { + public void ClearScenario() { _hasBits0 &= ~2; } - /// Field number for the "options" field. - public const int OptionsFieldNumber = 3; - private global::LiveKit.Proto.TrackPublishOptions options_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::LiveKit.Proto.TrackPublishOptions Options { - get { return options_; } - set { - options_ = value; - } - } - /// Field number for the "request_async_id" field. - public const int RequestAsyncIdFieldNumber = 4; + public const int RequestAsyncIdFieldNumber = 3; private readonly static ulong RequestAsyncIdDefaultValue = 0UL; private ulong requestAsyncId_; @@ -2861,21 +2894,20 @@ public void ClearRequestAsyncId() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as PublishTrackRequest); + return Equals(other as SimulateScenarioRequest); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(PublishTrackRequest other) { + public bool Equals(SimulateScenarioRequest other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (LocalParticipantHandle != other.LocalParticipantHandle) return false; - if (TrackHandle != other.TrackHandle) return false; - if (!object.Equals(Options, other.Options)) return false; + if (RoomHandle != other.RoomHandle) return false; + if (Scenario != other.Scenario) return false; if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -2884,9 +2916,8 @@ public bool Equals(PublishTrackRequest other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (HasLocalParticipantHandle) hash ^= LocalParticipantHandle.GetHashCode(); - if (HasTrackHandle) hash ^= TrackHandle.GetHashCode(); - if (options_ != null) hash ^= Options.GetHashCode(); + if (HasRoomHandle) hash ^= RoomHandle.GetHashCode(); + if (HasScenario) hash ^= Scenario.GetHashCode(); if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -2906,20 +2937,16 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (HasLocalParticipantHandle) { + if (HasRoomHandle) { output.WriteRawTag(8); - output.WriteUInt64(LocalParticipantHandle); + output.WriteUInt64(RoomHandle); } - if (HasTrackHandle) { + if (HasScenario) { output.WriteRawTag(16); - output.WriteUInt64(TrackHandle); - } - if (options_ != null) { - output.WriteRawTag(26); - output.WriteMessage(Options); + output.WriteEnum((int) Scenario); } if (HasRequestAsyncId) { - output.WriteRawTag(32); + output.WriteRawTag(24); output.WriteUInt64(RequestAsyncId); } if (_unknownFields != null) { @@ -2932,20 +2959,16 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasLocalParticipantHandle) { + if (HasRoomHandle) { output.WriteRawTag(8); - output.WriteUInt64(LocalParticipantHandle); + output.WriteUInt64(RoomHandle); } - if (HasTrackHandle) { + if (HasScenario) { output.WriteRawTag(16); - output.WriteUInt64(TrackHandle); - } - if (options_ != null) { - output.WriteRawTag(26); - output.WriteMessage(Options); + output.WriteEnum((int) Scenario); } if (HasRequestAsyncId) { - output.WriteRawTag(32); + output.WriteRawTag(24); output.WriteUInt64(RequestAsyncId); } if (_unknownFields != null) { @@ -2958,14 +2981,11 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (HasLocalParticipantHandle) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(LocalParticipantHandle); - } - if (HasTrackHandle) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(TrackHandle); + if (HasRoomHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RoomHandle); } - if (options_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options); + if (HasScenario) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Scenario); } if (HasRequestAsyncId) { size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); @@ -2978,21 +2998,15 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(PublishTrackRequest other) { + public void MergeFrom(SimulateScenarioRequest other) { if (other == null) { return; } - if (other.HasLocalParticipantHandle) { - LocalParticipantHandle = other.LocalParticipantHandle; - } - if (other.HasTrackHandle) { - TrackHandle = other.TrackHandle; + if (other.HasRoomHandle) { + RoomHandle = other.RoomHandle; } - if (other.options_ != null) { - if (options_ == null) { - Options = new global::LiveKit.Proto.TrackPublishOptions(); - } - Options.MergeFrom(other.Options); + if (other.HasScenario) { + Scenario = other.Scenario; } if (other.HasRequestAsyncId) { RequestAsyncId = other.RequestAsyncId; @@ -3017,21 +3031,14 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 8: { - LocalParticipantHandle = input.ReadUInt64(); + RoomHandle = input.ReadUInt64(); break; } case 16: { - TrackHandle = input.ReadUInt64(); + Scenario = (global::LiveKit.Proto.SimulateScenarioKind) input.ReadEnum(); break; } - case 26: { - if (options_ == null) { - Options = new global::LiveKit.Proto.TrackPublishOptions(); - } - input.ReadMessage(Options); - break; - } - case 32: { + case 24: { RequestAsyncId = input.ReadUInt64(); break; } @@ -3055,21 +3062,14 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 8: { - LocalParticipantHandle = input.ReadUInt64(); + RoomHandle = input.ReadUInt64(); break; } case 16: { - TrackHandle = input.ReadUInt64(); + Scenario = (global::LiveKit.Proto.SimulateScenarioKind) input.ReadEnum(); break; } - case 26: { - if (options_ == null) { - Options = new global::LiveKit.Proto.TrackPublishOptions(); - } - input.ReadMessage(Options); - break; - } - case 32: { + case 24: { RequestAsyncId = input.ReadUInt64(); break; } @@ -3081,17 +3081,17 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class PublishTrackResponse : pb::IMessage + public sealed partial class SimulateScenarioResponse : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PublishTrackResponse()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SimulateScenarioResponse()); private pb::UnknownFieldSet _unknownFields; private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -3107,7 +3107,7 @@ public sealed partial class PublishTrackResponse : pb::IMessageField number for the "async_id" field. @@ -3157,12 +3157,12 @@ public void ClearAsyncId() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as PublishTrackResponse); + return Equals(other as SimulateScenarioResponse); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(PublishTrackResponse other) { + public bool Equals(SimulateScenarioResponse other) { if (ReferenceEquals(other, null)) { return false; } @@ -3235,7 +3235,7 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(PublishTrackResponse other) { + public void MergeFrom(SimulateScenarioResponse other) { if (other == null) { return; } @@ -3296,17 +3296,17 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class PublishTrackCallback : pb::IMessage + public sealed partial class SimulateScenarioCallback : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PublishTrackCallback()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SimulateScenarioCallback()); private pb::UnknownFieldSet _unknownFields; private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -3322,7 +3322,7 @@ public sealed partial class PublishTrackCallback : pb::IMessageField number for the "async_id" field. @@ -3380,72 +3372,39 @@ public void ClearAsyncId() { /// Field number for the "error" field. public const int ErrorFieldNumber = 2; + private readonly static string ErrorDefaultValue = ""; + + private string error_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public string Error { - get { return HasError ? (string) message_ : ""; } + get { return error_ ?? ErrorDefaultValue; } set { - message_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - messageCase_ = MessageOneofCase.Error; + error_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); } } /// Gets whether the "error" field is set [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public bool HasError { - get { return messageCase_ == MessageOneofCase.Error; } + get { return error_ != null; } } - /// Clears the value of the oneof if it's currently set to "error" + /// Clears the value of the "error" field [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public void ClearError() { - if (HasError) { - ClearMessage(); - } - } - - /// Field number for the "publication" field. - public const int PublicationFieldNumber = 3; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::LiveKit.Proto.OwnedTrackPublication Publication { - get { return messageCase_ == MessageOneofCase.Publication ? (global::LiveKit.Proto.OwnedTrackPublication) message_ : null; } - set { - message_ = value; - messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.Publication; - } - } - - private object message_; - /// Enum of possible cases for the "message" oneof. - public enum MessageOneofCase { - None = 0, - Error = 2, - Publication = 3, - } - private MessageOneofCase messageCase_ = MessageOneofCase.None; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public MessageOneofCase MessageCase { - get { return messageCase_; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearMessage() { - messageCase_ = MessageOneofCase.None; - message_ = null; + error_ = null; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as PublishTrackCallback); + return Equals(other as SimulateScenarioCallback); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(PublishTrackCallback other) { + public bool Equals(SimulateScenarioCallback other) { if (ReferenceEquals(other, null)) { return false; } @@ -3454,8 +3413,6 @@ public bool Equals(PublishTrackCallback other) { } if (AsyncId != other.AsyncId) return false; if (Error != other.Error) return false; - if (!object.Equals(Publication, other.Publication)) return false; - if (MessageCase != other.MessageCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -3465,8 +3422,6 @@ public override int GetHashCode() { int hash = 1; if (HasAsyncId) hash ^= AsyncId.GetHashCode(); if (HasError) hash ^= Error.GetHashCode(); - if (messageCase_ == MessageOneofCase.Publication) hash ^= Publication.GetHashCode(); - hash ^= (int) messageCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -3493,10 +3448,6 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteString(Error); } - if (messageCase_ == MessageOneofCase.Publication) { - output.WriteRawTag(26); - output.WriteMessage(Publication); - } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -3515,10 +3466,6 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteString(Error); } - if (messageCase_ == MessageOneofCase.Publication) { - output.WriteRawTag(26); - output.WriteMessage(Publication); - } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -3535,9 +3482,6 @@ public int CalculateSize() { if (HasError) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Error); } - if (messageCase_ == MessageOneofCase.Publication) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Publication); - } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -3546,25 +3490,16 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(PublishTrackCallback other) { + public void MergeFrom(SimulateScenarioCallback other) { if (other == null) { return; } if (other.HasAsyncId) { AsyncId = other.AsyncId; } - switch (other.MessageCase) { - case MessageOneofCase.Error: - Error = other.Error; - break; - case MessageOneofCase.Publication: - if (Publication == null) { - Publication = new global::LiveKit.Proto.OwnedTrackPublication(); - } - Publication.MergeFrom(other.Publication); - break; + if (other.HasError) { + Error = other.Error; } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -3592,15 +3527,6 @@ public void MergeFrom(pb::CodedInputStream input) { Error = input.ReadString(); break; } - case 26: { - global::LiveKit.Proto.OwnedTrackPublication subBuilder = new global::LiveKit.Proto.OwnedTrackPublication(); - if (messageCase_ == MessageOneofCase.Publication) { - subBuilder.MergeFrom(Publication); - } - input.ReadMessage(subBuilder); - Publication = subBuilder; - break; - } } } #endif @@ -3628,15 +3554,6 @@ public void MergeFrom(pb::CodedInputStream input) { Error = input.ReadString(); break; } - case 26: { - global::LiveKit.Proto.OwnedTrackPublication subBuilder = new global::LiveKit.Proto.OwnedTrackPublication(); - if (messageCase_ == MessageOneofCase.Publication) { - subBuilder.MergeFrom(Publication); - } - input.ReadMessage(subBuilder); - Publication = subBuilder; - break; - } } } } @@ -3645,20 +3562,20 @@ public void MergeFrom(pb::CodedInputStream input) { } /// - /// Unpublish a track from the room + /// Publish a track to the room /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class UnpublishTrackRequest : pb::IMessage + public sealed partial class PublishTrackRequest : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UnpublishTrackRequest()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PublishTrackRequest()); private pb::UnknownFieldSet _unknownFields; private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -3674,7 +3591,7 @@ public sealed partial class UnpublishTrackRequest : pb::IMessageField number for the "local_participant_handle" field. @@ -3724,58 +3641,44 @@ public void ClearLocalParticipantHandle() { _hasBits0 &= ~1; } - /// Field number for the "track_sid" field. - public const int TrackSidFieldNumber = 2; - private readonly static string TrackSidDefaultValue = ""; + /// Field number for the "track_handle" field. + public const int TrackHandleFieldNumber = 2; + private readonly static ulong TrackHandleDefaultValue = 0UL; - private string trackSid_; + private ulong trackHandle_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string TrackSid { - get { return trackSid_ ?? TrackSidDefaultValue; } + public ulong TrackHandle { + get { if ((_hasBits0 & 2) != 0) { return trackHandle_; } else { return TrackHandleDefaultValue; } } set { - trackSid_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + _hasBits0 |= 2; + trackHandle_ = value; } } - /// Gets whether the "track_sid" field is set + /// Gets whether the "track_handle" field is set [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasTrackSid { - get { return trackSid_ != null; } + public bool HasTrackHandle { + get { return (_hasBits0 & 2) != 0; } } - /// Clears the value of the "track_sid" field + /// Clears the value of the "track_handle" field [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearTrackSid() { - trackSid_ = null; + public void ClearTrackHandle() { + _hasBits0 &= ~2; } - /// Field number for the "stop_on_unpublish" field. - public const int StopOnUnpublishFieldNumber = 3; - private readonly static bool StopOnUnpublishDefaultValue = false; - - private bool stopOnUnpublish_; + /// Field number for the "options" field. + public const int OptionsFieldNumber = 3; + private global::LiveKit.Proto.TrackPublishOptions options_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool StopOnUnpublish { - get { if ((_hasBits0 & 2) != 0) { return stopOnUnpublish_; } else { return StopOnUnpublishDefaultValue; } } + public global::LiveKit.Proto.TrackPublishOptions Options { + get { return options_; } set { - _hasBits0 |= 2; - stopOnUnpublish_ = value; + options_ = value; } } - /// Gets whether the "stop_on_unpublish" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasStopOnUnpublish { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "stop_on_unpublish" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearStopOnUnpublish() { - _hasBits0 &= ~2; - } /// Field number for the "request_async_id" field. public const int RequestAsyncIdFieldNumber = 4; @@ -3807,12 +3710,12 @@ public void ClearRequestAsyncId() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as UnpublishTrackRequest); + return Equals(other as PublishTrackRequest); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(UnpublishTrackRequest other) { + public bool Equals(PublishTrackRequest other) { if (ReferenceEquals(other, null)) { return false; } @@ -3820,8 +3723,8 @@ public bool Equals(UnpublishTrackRequest other) { return true; } if (LocalParticipantHandle != other.LocalParticipantHandle) return false; - if (TrackSid != other.TrackSid) return false; - if (StopOnUnpublish != other.StopOnUnpublish) return false; + if (TrackHandle != other.TrackHandle) return false; + if (!object.Equals(Options, other.Options)) return false; if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -3831,8 +3734,8 @@ public bool Equals(UnpublishTrackRequest other) { public override int GetHashCode() { int hash = 1; if (HasLocalParticipantHandle) hash ^= LocalParticipantHandle.GetHashCode(); - if (HasTrackSid) hash ^= TrackSid.GetHashCode(); - if (HasStopOnUnpublish) hash ^= StopOnUnpublish.GetHashCode(); + if (HasTrackHandle) hash ^= TrackHandle.GetHashCode(); + if (options_ != null) hash ^= Options.GetHashCode(); if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -3856,13 +3759,13 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(8); output.WriteUInt64(LocalParticipantHandle); } - if (HasTrackSid) { - output.WriteRawTag(18); - output.WriteString(TrackSid); + if (HasTrackHandle) { + output.WriteRawTag(16); + output.WriteUInt64(TrackHandle); } - if (HasStopOnUnpublish) { - output.WriteRawTag(24); - output.WriteBool(StopOnUnpublish); + if (options_ != null) { + output.WriteRawTag(26); + output.WriteMessage(Options); } if (HasRequestAsyncId) { output.WriteRawTag(32); @@ -3882,13 +3785,13 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(8); output.WriteUInt64(LocalParticipantHandle); } - if (HasTrackSid) { - output.WriteRawTag(18); - output.WriteString(TrackSid); + if (HasTrackHandle) { + output.WriteRawTag(16); + output.WriteUInt64(TrackHandle); } - if (HasStopOnUnpublish) { - output.WriteRawTag(24); - output.WriteBool(StopOnUnpublish); + if (options_ != null) { + output.WriteRawTag(26); + output.WriteMessage(Options); } if (HasRequestAsyncId) { output.WriteRawTag(32); @@ -3907,11 +3810,11 @@ public int CalculateSize() { if (HasLocalParticipantHandle) { size += 1 + pb::CodedOutputStream.ComputeUInt64Size(LocalParticipantHandle); } - if (HasTrackSid) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(TrackSid); + if (HasTrackHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(TrackHandle); } - if (HasStopOnUnpublish) { - size += 1 + 1; + if (options_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options); } if (HasRequestAsyncId) { size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); @@ -3924,18 +3827,21 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(UnpublishTrackRequest other) { + public void MergeFrom(PublishTrackRequest other) { if (other == null) { return; } if (other.HasLocalParticipantHandle) { LocalParticipantHandle = other.LocalParticipantHandle; } - if (other.HasTrackSid) { - TrackSid = other.TrackSid; + if (other.HasTrackHandle) { + TrackHandle = other.TrackHandle; } - if (other.HasStopOnUnpublish) { - StopOnUnpublish = other.StopOnUnpublish; + if (other.options_ != null) { + if (options_ == null) { + Options = new global::LiveKit.Proto.TrackPublishOptions(); + } + Options.MergeFrom(other.Options); } if (other.HasRequestAsyncId) { RequestAsyncId = other.RequestAsyncId; @@ -3963,12 +3869,15 @@ public void MergeFrom(pb::CodedInputStream input) { LocalParticipantHandle = input.ReadUInt64(); break; } - case 18: { - TrackSid = input.ReadString(); + case 16: { + TrackHandle = input.ReadUInt64(); break; } - case 24: { - StopOnUnpublish = input.ReadBool(); + case 26: { + if (options_ == null) { + Options = new global::LiveKit.Proto.TrackPublishOptions(); + } + input.ReadMessage(Options); break; } case 32: { @@ -3998,12 +3907,15 @@ public void MergeFrom(pb::CodedInputStream input) { LocalParticipantHandle = input.ReadUInt64(); break; } - case 18: { - TrackSid = input.ReadString(); + case 16: { + TrackHandle = input.ReadUInt64(); break; } - case 24: { - StopOnUnpublish = input.ReadBool(); + case 26: { + if (options_ == null) { + Options = new global::LiveKit.Proto.TrackPublishOptions(); + } + input.ReadMessage(Options); break; } case 32: { @@ -4018,17 +3930,17 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class UnpublishTrackResponse : pb::IMessage + public sealed partial class PublishTrackResponse : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UnpublishTrackResponse()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PublishTrackResponse()); private pb::UnknownFieldSet _unknownFields; private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -4044,7 +3956,7 @@ public sealed partial class UnpublishTrackResponse : pb::IMessageField number for the "async_id" field. @@ -4094,12 +4006,12 @@ public void ClearAsyncId() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as UnpublishTrackResponse); + return Equals(other as PublishTrackResponse); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(UnpublishTrackResponse other) { + public bool Equals(PublishTrackResponse other) { if (ReferenceEquals(other, null)) { return false; } @@ -4172,7 +4084,7 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(UnpublishTrackResponse other) { + public void MergeFrom(PublishTrackResponse other) { if (other == null) { return; } @@ -4233,17 +4145,17 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class UnpublishTrackCallback : pb::IMessage + public sealed partial class PublishTrackCallback : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UnpublishTrackCallback()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PublishTrackCallback()); private pb::UnknownFieldSet _unknownFields; private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -4259,7 +4171,7 @@ public sealed partial class UnpublishTrackCallback : pb::IMessageField number for the "async_id" field. @@ -4309,39 +4229,1344 @@ public void ClearAsyncId() { /// Field number for the "error" field. public const int ErrorFieldNumber = 2; - private readonly static string ErrorDefaultValue = ""; - - private string error_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public string Error { - get { return error_ ?? ErrorDefaultValue; } + get { return HasError ? (string) message_ : ""; } set { - error_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + message_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + messageCase_ = MessageOneofCase.Error; } } /// Gets whether the "error" field is set [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public bool HasError { - get { return error_ != null; } + get { return messageCase_ == MessageOneofCase.Error; } } - /// Clears the value of the "error" field + /// Clears the value of the oneof if it's currently set to "error" [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public void ClearError() { - error_ = null; + if (HasError) { + ClearMessage(); + } + } + + /// Field number for the "publication" field. + public const int PublicationFieldNumber = 3; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.OwnedTrackPublication Publication { + get { return messageCase_ == MessageOneofCase.Publication ? (global::LiveKit.Proto.OwnedTrackPublication) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.Publication; + } + } + + private object message_; + /// Enum of possible cases for the "message" oneof. + public enum MessageOneofCase { + None = 0, + Error = 2, + Publication = 3, + } + private MessageOneofCase messageCase_ = MessageOneofCase.None; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public MessageOneofCase MessageCase { + get { return messageCase_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearMessage() { + messageCase_ = MessageOneofCase.None; + message_ = null; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as UnpublishTrackCallback); + return Equals(other as PublishTrackCallback); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(UnpublishTrackCallback other) { + public bool Equals(PublishTrackCallback other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (AsyncId != other.AsyncId) return false; + if (Error != other.Error) return false; + if (!object.Equals(Publication, other.Publication)) return false; + if (MessageCase != other.MessageCase) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasAsyncId) hash ^= AsyncId.GetHashCode(); + if (HasError) hash ^= Error.GetHashCode(); + if (messageCase_ == MessageOneofCase.Publication) hash ^= Publication.GetHashCode(); + hash ^= (int) messageCase_; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasAsyncId) { + output.WriteRawTag(8); + output.WriteUInt64(AsyncId); + } + if (HasError) { + output.WriteRawTag(18); + output.WriteString(Error); + } + if (messageCase_ == MessageOneofCase.Publication) { + output.WriteRawTag(26); + output.WriteMessage(Publication); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasAsyncId) { + output.WriteRawTag(8); + output.WriteUInt64(AsyncId); + } + if (HasError) { + output.WriteRawTag(18); + output.WriteString(Error); + } + if (messageCase_ == MessageOneofCase.Publication) { + output.WriteRawTag(26); + output.WriteMessage(Publication); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(AsyncId); + } + if (HasError) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Error); + } + if (messageCase_ == MessageOneofCase.Publication) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Publication); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(PublishTrackCallback other) { + if (other == null) { + return; + } + if (other.HasAsyncId) { + AsyncId = other.AsyncId; + } + switch (other.MessageCase) { + case MessageOneofCase.Error: + Error = other.Error; + break; + case MessageOneofCase.Publication: + if (Publication == null) { + Publication = new global::LiveKit.Proto.OwnedTrackPublication(); + } + Publication.MergeFrom(other.Publication); + break; + } + + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + AsyncId = input.ReadUInt64(); + break; + } + case 18: { + Error = input.ReadString(); + break; + } + case 26: { + global::LiveKit.Proto.OwnedTrackPublication subBuilder = new global::LiveKit.Proto.OwnedTrackPublication(); + if (messageCase_ == MessageOneofCase.Publication) { + subBuilder.MergeFrom(Publication); + } + input.ReadMessage(subBuilder); + Publication = subBuilder; + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + AsyncId = input.ReadUInt64(); + break; + } + case 18: { + Error = input.ReadString(); + break; + } + case 26: { + global::LiveKit.Proto.OwnedTrackPublication subBuilder = new global::LiveKit.Proto.OwnedTrackPublication(); + if (messageCase_ == MessageOneofCase.Publication) { + subBuilder.MergeFrom(Publication); + } + input.ReadMessage(subBuilder); + Publication = subBuilder; + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class ReadyForRoomEventRequest : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ReadyForRoomEventRequest()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[12]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ReadyForRoomEventRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ReadyForRoomEventRequest(ReadyForRoomEventRequest other) : this() { + _hasBits0 = other._hasBits0; + roomHandle_ = other.roomHandle_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ReadyForRoomEventRequest Clone() { + return new ReadyForRoomEventRequest(this); + } + + /// Field number for the "room_handle" field. + public const int RoomHandleFieldNumber = 1; + private readonly static ulong RoomHandleDefaultValue = 0UL; + + private ulong roomHandle_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RoomHandle { + get { if ((_hasBits0 & 1) != 0) { return roomHandle_; } else { return RoomHandleDefaultValue; } } + set { + _hasBits0 |= 1; + roomHandle_ = value; + } + } + /// Gets whether the "room_handle" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRoomHandle { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "room_handle" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRoomHandle() { + _hasBits0 &= ~1; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as ReadyForRoomEventRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(ReadyForRoomEventRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (RoomHandle != other.RoomHandle) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasRoomHandle) hash ^= RoomHandle.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasRoomHandle) { + output.WriteRawTag(8); + output.WriteUInt64(RoomHandle); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasRoomHandle) { + output.WriteRawTag(8); + output.WriteUInt64(RoomHandle); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasRoomHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RoomHandle); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(ReadyForRoomEventRequest other) { + if (other == null) { + return; + } + if (other.HasRoomHandle) { + RoomHandle = other.RoomHandle; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + RoomHandle = input.ReadUInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + RoomHandle = input.ReadUInt64(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class ReadyForRoomEventResponse : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ReadyForRoomEventResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[13]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ReadyForRoomEventResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ReadyForRoomEventResponse(ReadyForRoomEventResponse other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ReadyForRoomEventResponse Clone() { + return new ReadyForRoomEventResponse(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as ReadyForRoomEventResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(ReadyForRoomEventResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(ReadyForRoomEventResponse other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + } + } + } + #endif + + } + + /// + /// Unpublish a track from the room + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class UnpublishTrackRequest : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UnpublishTrackRequest()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[14]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UnpublishTrackRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UnpublishTrackRequest(UnpublishTrackRequest other) : this() { + _hasBits0 = other._hasBits0; + localParticipantHandle_ = other.localParticipantHandle_; + trackSid_ = other.trackSid_; + stopOnUnpublish_ = other.stopOnUnpublish_; + requestAsyncId_ = other.requestAsyncId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UnpublishTrackRequest Clone() { + return new UnpublishTrackRequest(this); + } + + /// Field number for the "local_participant_handle" field. + public const int LocalParticipantHandleFieldNumber = 1; + private readonly static ulong LocalParticipantHandleDefaultValue = 0UL; + + private ulong localParticipantHandle_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong LocalParticipantHandle { + get { if ((_hasBits0 & 1) != 0) { return localParticipantHandle_; } else { return LocalParticipantHandleDefaultValue; } } + set { + _hasBits0 |= 1; + localParticipantHandle_ = value; + } + } + /// Gets whether the "local_participant_handle" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasLocalParticipantHandle { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "local_participant_handle" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearLocalParticipantHandle() { + _hasBits0 &= ~1; + } + + /// Field number for the "track_sid" field. + public const int TrackSidFieldNumber = 2; + private readonly static string TrackSidDefaultValue = ""; + + private string trackSid_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string TrackSid { + get { return trackSid_ ?? TrackSidDefaultValue; } + set { + trackSid_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "track_sid" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasTrackSid { + get { return trackSid_ != null; } + } + /// Clears the value of the "track_sid" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearTrackSid() { + trackSid_ = null; + } + + /// Field number for the "stop_on_unpublish" field. + public const int StopOnUnpublishFieldNumber = 3; + private readonly static bool StopOnUnpublishDefaultValue = false; + + private bool stopOnUnpublish_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool StopOnUnpublish { + get { if ((_hasBits0 & 2) != 0) { return stopOnUnpublish_; } else { return StopOnUnpublishDefaultValue; } } + set { + _hasBits0 |= 2; + stopOnUnpublish_ = value; + } + } + /// Gets whether the "stop_on_unpublish" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasStopOnUnpublish { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "stop_on_unpublish" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearStopOnUnpublish() { + _hasBits0 &= ~2; + } + + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 4; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 4) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 4; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 4) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~4; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as UnpublishTrackRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(UnpublishTrackRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (LocalParticipantHandle != other.LocalParticipantHandle) return false; + if (TrackSid != other.TrackSid) return false; + if (StopOnUnpublish != other.StopOnUnpublish) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasLocalParticipantHandle) hash ^= LocalParticipantHandle.GetHashCode(); + if (HasTrackSid) hash ^= TrackSid.GetHashCode(); + if (HasStopOnUnpublish) hash ^= StopOnUnpublish.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasLocalParticipantHandle) { + output.WriteRawTag(8); + output.WriteUInt64(LocalParticipantHandle); + } + if (HasTrackSid) { + output.WriteRawTag(18); + output.WriteString(TrackSid); + } + if (HasStopOnUnpublish) { + output.WriteRawTag(24); + output.WriteBool(StopOnUnpublish); + } + if (HasRequestAsyncId) { + output.WriteRawTag(32); + output.WriteUInt64(RequestAsyncId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasLocalParticipantHandle) { + output.WriteRawTag(8); + output.WriteUInt64(LocalParticipantHandle); + } + if (HasTrackSid) { + output.WriteRawTag(18); + output.WriteString(TrackSid); + } + if (HasStopOnUnpublish) { + output.WriteRawTag(24); + output.WriteBool(StopOnUnpublish); + } + if (HasRequestAsyncId) { + output.WriteRawTag(32); + output.WriteUInt64(RequestAsyncId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasLocalParticipantHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(LocalParticipantHandle); + } + if (HasTrackSid) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(TrackSid); + } + if (HasStopOnUnpublish) { + size += 1 + 1; + } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(UnpublishTrackRequest other) { + if (other == null) { + return; + } + if (other.HasLocalParticipantHandle) { + LocalParticipantHandle = other.LocalParticipantHandle; + } + if (other.HasTrackSid) { + TrackSid = other.TrackSid; + } + if (other.HasStopOnUnpublish) { + StopOnUnpublish = other.StopOnUnpublish; + } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + LocalParticipantHandle = input.ReadUInt64(); + break; + } + case 18: { + TrackSid = input.ReadString(); + break; + } + case 24: { + StopOnUnpublish = input.ReadBool(); + break; + } + case 32: { + RequestAsyncId = input.ReadUInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + LocalParticipantHandle = input.ReadUInt64(); + break; + } + case 18: { + TrackSid = input.ReadString(); + break; + } + case 24: { + StopOnUnpublish = input.ReadBool(); + break; + } + case 32: { + RequestAsyncId = input.ReadUInt64(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class UnpublishTrackResponse : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UnpublishTrackResponse()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[15]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UnpublishTrackResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UnpublishTrackResponse(UnpublishTrackResponse other) : this() { + _hasBits0 = other._hasBits0; + asyncId_ = other.asyncId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UnpublishTrackResponse Clone() { + return new UnpublishTrackResponse(this); + } + + /// Field number for the "async_id" field. + public const int AsyncIdFieldNumber = 1; + private readonly static ulong AsyncIdDefaultValue = 0UL; + + private ulong asyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong AsyncId { + get { if ((_hasBits0 & 1) != 0) { return asyncId_; } else { return AsyncIdDefaultValue; } } + set { + _hasBits0 |= 1; + asyncId_ = value; + } + } + /// Gets whether the "async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasAsyncId { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearAsyncId() { + _hasBits0 &= ~1; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as UnpublishTrackResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(UnpublishTrackResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (AsyncId != other.AsyncId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasAsyncId) hash ^= AsyncId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasAsyncId) { + output.WriteRawTag(8); + output.WriteUInt64(AsyncId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasAsyncId) { + output.WriteRawTag(8); + output.WriteUInt64(AsyncId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(AsyncId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(UnpublishTrackResponse other) { + if (other == null) { + return; + } + if (other.HasAsyncId) { + AsyncId = other.AsyncId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + AsyncId = input.ReadUInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + AsyncId = input.ReadUInt64(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class UnpublishTrackCallback : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UnpublishTrackCallback()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[16]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UnpublishTrackCallback() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UnpublishTrackCallback(UnpublishTrackCallback other) : this() { + _hasBits0 = other._hasBits0; + asyncId_ = other.asyncId_; + error_ = other.error_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public UnpublishTrackCallback Clone() { + return new UnpublishTrackCallback(this); + } + + /// Field number for the "async_id" field. + public const int AsyncIdFieldNumber = 1; + private readonly static ulong AsyncIdDefaultValue = 0UL; + + private ulong asyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong AsyncId { + get { if ((_hasBits0 & 1) != 0) { return asyncId_; } else { return AsyncIdDefaultValue; } } + set { + _hasBits0 |= 1; + asyncId_ = value; + } + } + /// Gets whether the "async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasAsyncId { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearAsyncId() { + _hasBits0 &= ~1; + } + + /// Field number for the "error" field. + public const int ErrorFieldNumber = 2; + private readonly static string ErrorDefaultValue = ""; + + private string error_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Error { + get { return error_ ?? ErrorDefaultValue; } + set { + error_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "error" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasError { + get { return error_ != null; } + } + /// Clears the value of the "error" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearError() { + error_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as UnpublishTrackCallback); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(UnpublishTrackCallback other) { if (ReferenceEquals(other, null)) { return false; } @@ -4517,7 +5742,7 @@ public sealed partial class PublishDataRequest : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[29]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[34]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -10045,7 +11270,7 @@ public sealed partial class SetLocalAttributesResponse : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[40]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[45]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -13078,7 +14303,7 @@ public sealed partial class AudioEncoding : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[41]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[46]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -13293,7 +14518,7 @@ public sealed partial class TrackPublishOptions : pb::IMessageField number for the "packet_trailer_features" field. + public const int PacketTrailerFeaturesFieldNumber = 10; + private static readonly pb::FieldCodec _repeated_packetTrailerFeatures_codec + = pb::FieldCodec.ForEnum(80, x => (int) x, x => (global::LiveKit.Proto.PacketTrailerFeature) x); + private readonly pbc::RepeatedField packetTrailerFeatures_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField PacketTrailerFeatures { + get { return packetTrailerFeatures_; } + } + + /// Field number for the "scalability_mode" field. + public const int ScalabilityModeFieldNumber = 11; + private readonly static string ScalabilityModeDefaultValue = ""; + + private string scalabilityMode_; + /// + /// RTP scalability mode (e.g. "L3T3_KEY"). When set, a single RTP + /// encoding is produced with this mode, enabling true SVC for codecs + /// that support it (VP9, AV1). Has no effect for VP8/H264. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string ScalabilityMode { + get { return scalabilityMode_ ?? ScalabilityModeDefaultValue; } + set { + scalabilityMode_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "scalability_mode" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasScalabilityMode { + get { return scalabilityMode_ != null; } + } + /// Clears the value of the "scalability_mode" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearScalabilityMode() { + scalabilityMode_ = null; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -13571,6 +14840,8 @@ public bool Equals(TrackPublishOptions other) { if (Source != other.Source) return false; if (Stream != other.Stream) return false; if (PreconnectBuffer != other.PreconnectBuffer) return false; + if(!packetTrailerFeatures_.Equals(other.packetTrailerFeatures_)) return false; + if (ScalabilityMode != other.ScalabilityMode) return false; return Equals(_unknownFields, other._unknownFields); } @@ -13587,6 +14858,8 @@ public override int GetHashCode() { if (HasSource) hash ^= Source.GetHashCode(); if (HasStream) hash ^= Stream.GetHashCode(); if (HasPreconnectBuffer) hash ^= PreconnectBuffer.GetHashCode(); + hash ^= packetTrailerFeatures_.GetHashCode(); + if (HasScalabilityMode) hash ^= ScalabilityMode.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -13641,6 +14914,11 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(72); output.WriteBool(PreconnectBuffer); } + packetTrailerFeatures_.WriteTo(output, _repeated_packetTrailerFeatures_codec); + if (HasScalabilityMode) { + output.WriteRawTag(90); + output.WriteString(ScalabilityMode); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -13687,6 +14965,11 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(72); output.WriteBool(PreconnectBuffer); } + packetTrailerFeatures_.WriteTo(ref output, _repeated_packetTrailerFeatures_codec); + if (HasScalabilityMode) { + output.WriteRawTag(90); + output.WriteString(ScalabilityMode); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -13724,6 +15007,10 @@ public int CalculateSize() { if (HasPreconnectBuffer) { size += 1 + 1; } + size += packetTrailerFeatures_.CalculateSize(_repeated_packetTrailerFeatures_codec); + if (HasScalabilityMode) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ScalabilityMode); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -13769,6 +15056,10 @@ public void MergeFrom(TrackPublishOptions other) { if (other.HasPreconnectBuffer) { PreconnectBuffer = other.PreconnectBuffer; } + packetTrailerFeatures_.Add(other.packetTrailerFeatures_); + if (other.HasScalabilityMode) { + ScalabilityMode = other.ScalabilityMode; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -13830,6 +15121,15 @@ public void MergeFrom(pb::CodedInputStream input) { PreconnectBuffer = input.ReadBool(); break; } + case 82: + case 80: { + packetTrailerFeatures_.AddEntriesFrom(input, _repeated_packetTrailerFeatures_codec); + break; + } + case 90: { + ScalabilityMode = input.ReadString(); + break; + } } } #endif @@ -13891,6 +15191,15 @@ public void MergeFrom(pb::CodedInputStream input) { PreconnectBuffer = input.ReadBool(); break; } + case 82: + case 80: { + packetTrailerFeatures_.AddEntriesFrom(ref input, _repeated_packetTrailerFeatures_codec); + break; + } + case 90: { + ScalabilityMode = input.ReadString(); + break; + } } } } @@ -13913,7 +15222,7 @@ public sealed partial class IceServer : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[43]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[48]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -14203,7 +15512,7 @@ public sealed partial class RtcConfig : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[44]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[49]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -14499,7 +15808,7 @@ public sealed partial class RoomOptions : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[45]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[50]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -15122,7 +16431,7 @@ public sealed partial class TranscriptionSegment : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[47]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[52]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -15860,7 +17169,7 @@ public sealed partial class OwnedBuffer : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[48]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[53]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -16114,7 +17423,7 @@ public sealed partial class RoomEvent : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[49]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[54]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -16266,6 +17575,9 @@ public RoomEvent(RoomEvent other) : this() { case MessageOneofCase.DataTrackUnpublished: DataTrackUnpublished = other.DataTrackUnpublished.Clone(); break; + case MessageOneofCase.LocalTrackRepublished: + LocalTrackRepublished = other.LocalTrackRepublished.Clone(); + break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -16841,6 +18153,18 @@ public void ClearRoomHandle() { } } + /// Field number for the "local_track_republished" field. + public const int LocalTrackRepublishedFieldNumber = 45; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.LocalTrackRepublished LocalTrackRepublished { + get { return messageCase_ == MessageOneofCase.LocalTrackRepublished ? (global::LiveKit.Proto.LocalTrackRepublished) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.LocalTrackRepublished; + } + } + private object message_; /// Enum of possible cases for the "message" oneof. public enum MessageOneofCase { @@ -16888,6 +18212,7 @@ public enum MessageOneofCase { ParticipantActive = 42, DataTrackPublished = 43, DataTrackUnpublished = 44, + LocalTrackRepublished = 45, } private MessageOneofCase messageCase_ = MessageOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -16962,6 +18287,7 @@ public bool Equals(RoomEvent other) { if (!object.Equals(ParticipantActive, other.ParticipantActive)) return false; if (!object.Equals(DataTrackPublished, other.DataTrackPublished)) return false; if (!object.Equals(DataTrackUnpublished, other.DataTrackUnpublished)) return false; + if (!object.Equals(LocalTrackRepublished, other.LocalTrackRepublished)) return false; if (MessageCase != other.MessageCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -17014,6 +18340,7 @@ public override int GetHashCode() { if (messageCase_ == MessageOneofCase.ParticipantActive) hash ^= ParticipantActive.GetHashCode(); if (messageCase_ == MessageOneofCase.DataTrackPublished) hash ^= DataTrackPublished.GetHashCode(); if (messageCase_ == MessageOneofCase.DataTrackUnpublished) hash ^= DataTrackUnpublished.GetHashCode(); + if (messageCase_ == MessageOneofCase.LocalTrackRepublished) hash ^= LocalTrackRepublished.GetHashCode(); hash ^= (int) messageCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -17209,6 +18536,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(226, 2); output.WriteMessage(DataTrackUnpublished); } + if (messageCase_ == MessageOneofCase.LocalTrackRepublished) { + output.WriteRawTag(234, 2); + output.WriteMessage(LocalTrackRepublished); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -17395,6 +18726,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(226, 2); output.WriteMessage(DataTrackUnpublished); } + if (messageCase_ == MessageOneofCase.LocalTrackRepublished) { + output.WriteRawTag(234, 2); + output.WriteMessage(LocalTrackRepublished); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -17537,6 +18872,9 @@ public int CalculateSize() { if (messageCase_ == MessageOneofCase.DataTrackUnpublished) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(DataTrackUnpublished); } + if (messageCase_ == MessageOneofCase.LocalTrackRepublished) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(LocalTrackRepublished); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -17811,6 +19149,12 @@ public void MergeFrom(RoomEvent other) { } DataTrackUnpublished.MergeFrom(other.DataTrackUnpublished); break; + case MessageOneofCase.LocalTrackRepublished: + if (LocalTrackRepublished == null) { + LocalTrackRepublished = new global::LiveKit.Proto.LocalTrackRepublished(); + } + LocalTrackRepublished.MergeFrom(other.LocalTrackRepublished); + break; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -18223,6 +19567,15 @@ public void MergeFrom(pb::CodedInputStream input) { DataTrackUnpublished = subBuilder; break; } + case 362: { + global::LiveKit.Proto.LocalTrackRepublished subBuilder = new global::LiveKit.Proto.LocalTrackRepublished(); + if (messageCase_ == MessageOneofCase.LocalTrackRepublished) { + subBuilder.MergeFrom(LocalTrackRepublished); + } + input.ReadMessage(subBuilder); + LocalTrackRepublished = subBuilder; + break; + } } } #endif @@ -18633,6 +19986,15 @@ public void MergeFrom(pb::CodedInputStream input) { DataTrackUnpublished = subBuilder; break; } + case 362: { + global::LiveKit.Proto.LocalTrackRepublished subBuilder = new global::LiveKit.Proto.LocalTrackRepublished(); + if (messageCase_ == MessageOneofCase.LocalTrackRepublished) { + subBuilder.MergeFrom(LocalTrackRepublished); + } + input.ReadMessage(subBuilder); + LocalTrackRepublished = subBuilder; + break; + } } } } @@ -18656,7 +20018,7 @@ public sealed partial class RoomInfo : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[50]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[55]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -19370,51 +20732,491 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 10: { - Sid = input.ReadString(); - break; - } - case 18: { - Name = input.ReadString(); - break; - } - case 26: { - Metadata = input.ReadString(); - break; - } - case 32: { - LossyDcBufferedAmountLowThreshold = input.ReadUInt64(); - break; - } - case 40: { - ReliableDcBufferedAmountLowThreshold = input.ReadUInt64(); - break; - } - case 48: { - EmptyTimeout = input.ReadUInt32(); - break; - } - case 56: { - DepartureTimeout = input.ReadUInt32(); - break; - } - case 64: { - MaxParticipants = input.ReadUInt32(); - break; - } - case 72: { - CreationTime = input.ReadInt64(); - break; - } - case 80: { - NumParticipants = input.ReadUInt32(); - break; - } - case 88: { - NumPublishers = input.ReadUInt32(); - break; - } - case 96: { - ActiveRecording = input.ReadBool(); + Sid = input.ReadString(); + break; + } + case 18: { + Name = input.ReadString(); + break; + } + case 26: { + Metadata = input.ReadString(); + break; + } + case 32: { + LossyDcBufferedAmountLowThreshold = input.ReadUInt64(); + break; + } + case 40: { + ReliableDcBufferedAmountLowThreshold = input.ReadUInt64(); + break; + } + case 48: { + EmptyTimeout = input.ReadUInt32(); + break; + } + case 56: { + DepartureTimeout = input.ReadUInt32(); + break; + } + case 64: { + MaxParticipants = input.ReadUInt32(); + break; + } + case 72: { + CreationTime = input.ReadInt64(); + break; + } + case 80: { + NumParticipants = input.ReadUInt32(); + break; + } + case 88: { + NumPublishers = input.ReadUInt32(); + break; + } + case 96: { + ActiveRecording = input.ReadBool(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class OwnedRoom : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new OwnedRoom()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[56]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public OwnedRoom() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public OwnedRoom(OwnedRoom other) : this() { + handle_ = other.handle_ != null ? other.handle_.Clone() : null; + info_ = other.info_ != null ? other.info_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public OwnedRoom Clone() { + return new OwnedRoom(this); + } + + /// Field number for the "handle" field. + public const int HandleFieldNumber = 1; + private global::LiveKit.Proto.FfiOwnedHandle handle_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.FfiOwnedHandle Handle { + get { return handle_; } + set { + handle_ = value; + } + } + + /// Field number for the "info" field. + public const int InfoFieldNumber = 2; + private global::LiveKit.Proto.RoomInfo info_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.RoomInfo Info { + get { return info_; } + set { + info_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as OwnedRoom); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(OwnedRoom other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (!object.Equals(Handle, other.Handle)) return false; + if (!object.Equals(Info, other.Info)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (handle_ != null) hash ^= Handle.GetHashCode(); + if (info_ != null) hash ^= Info.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (handle_ != null) { + output.WriteRawTag(10); + output.WriteMessage(Handle); + } + if (info_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Info); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (handle_ != null) { + output.WriteRawTag(10); + output.WriteMessage(Handle); + } + if (info_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Info); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (handle_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Handle); + } + if (info_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Info); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(OwnedRoom other) { + if (other == null) { + return; + } + if (other.handle_ != null) { + if (handle_ == null) { + Handle = new global::LiveKit.Proto.FfiOwnedHandle(); + } + Handle.MergeFrom(other.Handle); + } + if (other.info_ != null) { + if (info_ == null) { + Info = new global::LiveKit.Proto.RoomInfo(); + } + Info.MergeFrom(other.Info); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + if (handle_ == null) { + Handle = new global::LiveKit.Proto.FfiOwnedHandle(); + } + input.ReadMessage(Handle); + break; + } + case 18: { + if (info_ == null) { + Info = new global::LiveKit.Proto.RoomInfo(); + } + input.ReadMessage(Info); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + if (handle_ == null) { + Handle = new global::LiveKit.Proto.FfiOwnedHandle(); + } + input.ReadMessage(Handle); + break; + } + case 18: { + if (info_ == null) { + Info = new global::LiveKit.Proto.RoomInfo(); + } + input.ReadMessage(Info); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class ParticipantsUpdated : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ParticipantsUpdated()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[57]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ParticipantsUpdated() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ParticipantsUpdated(ParticipantsUpdated other) : this() { + participants_ = other.participants_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ParticipantsUpdated Clone() { + return new ParticipantsUpdated(this); + } + + /// Field number for the "participants" field. + public const int ParticipantsFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_participants_codec + = pb::FieldCodec.ForMessage(10, global::LiveKit.Proto.ParticipantInfo.Parser); + private readonly pbc::RepeatedField participants_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Participants { + get { return participants_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as ParticipantsUpdated); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(ParticipantsUpdated other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!participants_.Equals(other.participants_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + hash ^= participants_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + participants_.WriteTo(output, _repeated_participants_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + participants_.WriteTo(ref output, _repeated_participants_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + size += participants_.CalculateSize(_repeated_participants_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(ParticipantsUpdated other) { + if (other == null) { + return; + } + participants_.Add(other.participants_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + participants_.AddEntriesFrom(input, _repeated_participants_codec); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + participants_.AddEntriesFrom(ref input, _repeated_participants_codec); break; } } @@ -19425,21 +21227,21 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class OwnedRoom : pb::IMessage + public sealed partial class ParticipantConnected : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new OwnedRoom()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ParticipantConnected()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[51]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[58]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -19450,7 +21252,7 @@ public sealed partial class OwnedRoom : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public OwnedRoom() { + public ParticipantConnected() { OnConstruction(); } @@ -19458,36 +21260,23 @@ public OwnedRoom() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public OwnedRoom(OwnedRoom other) : this() { - handle_ = other.handle_ != null ? other.handle_.Clone() : null; + public ParticipantConnected(ParticipantConnected other) : this() { info_ = other.info_ != null ? other.info_.Clone() : null; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public OwnedRoom Clone() { - return new OwnedRoom(this); - } - - /// Field number for the "handle" field. - public const int HandleFieldNumber = 1; - private global::LiveKit.Proto.FfiOwnedHandle handle_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::LiveKit.Proto.FfiOwnedHandle Handle { - get { return handle_; } - set { - handle_ = value; - } + public ParticipantConnected Clone() { + return new ParticipantConnected(this); } /// Field number for the "info" field. - public const int InfoFieldNumber = 2; - private global::LiveKit.Proto.RoomInfo info_; + public const int InfoFieldNumber = 1; + private global::LiveKit.Proto.OwnedParticipant info_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::LiveKit.Proto.RoomInfo Info { + public global::LiveKit.Proto.OwnedParticipant Info { get { return info_; } set { info_ = value; @@ -19497,19 +21286,18 @@ public OwnedRoom Clone() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as OwnedRoom); + return Equals(other as ParticipantConnected); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(OwnedRoom other) { + public bool Equals(ParticipantConnected other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (!object.Equals(Handle, other.Handle)) return false; if (!object.Equals(Info, other.Info)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -19518,7 +21306,6 @@ public bool Equals(OwnedRoom other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (handle_ != null) hash ^= Handle.GetHashCode(); if (info_ != null) hash ^= Info.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -19538,12 +21325,8 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (handle_ != null) { - output.WriteRawTag(10); - output.WriteMessage(Handle); - } if (info_ != null) { - output.WriteRawTag(18); + output.WriteRawTag(10); output.WriteMessage(Info); } if (_unknownFields != null) { @@ -19556,12 +21339,8 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (handle_ != null) { - output.WriteRawTag(10); - output.WriteMessage(Handle); - } if (info_ != null) { - output.WriteRawTag(18); + output.WriteRawTag(10); output.WriteMessage(Info); } if (_unknownFields != null) { @@ -19574,9 +21353,6 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (handle_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Handle); - } if (info_ != null) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Info); } @@ -19588,19 +21364,13 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(OwnedRoom other) { + public void MergeFrom(ParticipantConnected other) { if (other == null) { return; } - if (other.handle_ != null) { - if (handle_ == null) { - Handle = new global::LiveKit.Proto.FfiOwnedHandle(); - } - Handle.MergeFrom(other.Handle); - } if (other.info_ != null) { if (info_ == null) { - Info = new global::LiveKit.Proto.RoomInfo(); + Info = new global::LiveKit.Proto.OwnedParticipant(); } Info.MergeFrom(other.Info); } @@ -19624,15 +21394,8 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - if (handle_ == null) { - Handle = new global::LiveKit.Proto.FfiOwnedHandle(); - } - input.ReadMessage(Handle); - break; - } - case 18: { if (info_ == null) { - Info = new global::LiveKit.Proto.RoomInfo(); + Info = new global::LiveKit.Proto.OwnedParticipant(); } input.ReadMessage(Info); break; @@ -19657,15 +21420,8 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 10: { - if (handle_ == null) { - Handle = new global::LiveKit.Proto.FfiOwnedHandle(); - } - input.ReadMessage(Handle); - break; - } - case 18: { if (info_ == null) { - Info = new global::LiveKit.Proto.RoomInfo(); + Info = new global::LiveKit.Proto.OwnedParticipant(); } input.ReadMessage(Info); break; @@ -19678,21 +21434,21 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class ParticipantsUpdated : pb::IMessage + public sealed partial class ParticipantActive : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ParticipantsUpdated()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ParticipantActive()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[52]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[59]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -19703,7 +21459,7 @@ public sealed partial class ParticipantsUpdated : pb::IMessageField number for the "participants" field. - public const int ParticipantsFieldNumber = 1; - private static readonly pb::FieldCodec _repeated_participants_codec - = pb::FieldCodec.ForMessage(10, global::LiveKit.Proto.ParticipantInfo.Parser); - private readonly pbc::RepeatedField participants_ = new pbc::RepeatedField(); + /// Field number for the "participant_identity" field. + public const int ParticipantIdentityFieldNumber = 1; + private readonly static string ParticipantIdentityDefaultValue = ""; + + private string participantIdentity_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField Participants { - get { return participants_; } + public string ParticipantIdentity { + get { return participantIdentity_ ?? ParticipantIdentityDefaultValue; } + set { + participantIdentity_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "participant_identity" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasParticipantIdentity { + get { return participantIdentity_ != null; } + } + /// Clears the value of the "participant_identity" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearParticipantIdentity() { + participantIdentity_ = null; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as ParticipantsUpdated); + return Equals(other as ParticipantActive); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(ParticipantsUpdated other) { + public bool Equals(ParticipantActive other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if(!participants_.Equals(other.participants_)) return false; + if (ParticipantIdentity != other.ParticipantIdentity) return false; return Equals(_unknownFields, other._unknownFields); } @@ -19756,7 +21527,7 @@ public bool Equals(ParticipantsUpdated other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - hash ^= participants_.GetHashCode(); + if (HasParticipantIdentity) hash ^= ParticipantIdentity.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -19775,7 +21546,10 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - participants_.WriteTo(output, _repeated_participants_codec); + if (HasParticipantIdentity) { + output.WriteRawTag(10); + output.WriteString(ParticipantIdentity); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -19786,7 +21560,10 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - participants_.WriteTo(ref output, _repeated_participants_codec); + if (HasParticipantIdentity) { + output.WriteRawTag(10); + output.WriteString(ParticipantIdentity); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -19797,7 +21574,9 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - size += participants_.CalculateSize(_repeated_participants_codec); + if (HasParticipantIdentity) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ParticipantIdentity); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -19806,11 +21585,13 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(ParticipantsUpdated other) { + public void MergeFrom(ParticipantActive other) { if (other == null) { return; } - participants_.Add(other.participants_); + if (other.HasParticipantIdentity) { + ParticipantIdentity = other.ParticipantIdentity; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -19831,7 +21612,7 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - participants_.AddEntriesFrom(input, _repeated_participants_codec); + ParticipantIdentity = input.ReadString(); break; } } @@ -19854,7 +21635,7 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 10: { - participants_.AddEntriesFrom(ref input, _repeated_participants_codec); + ParticipantIdentity = input.ReadString(); break; } } @@ -19865,21 +21646,22 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class ParticipantConnected : pb::IMessage + public sealed partial class ParticipantDisconnected : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ParticipantConnected()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ParticipantDisconnected()); private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[53]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[60]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -19890,7 +21672,7 @@ public sealed partial class ParticipantConnected : pb::IMessageField number for the "info" field. - public const int InfoFieldNumber = 1; - private global::LiveKit.Proto.OwnedParticipant info_; + /// Field number for the "participant_identity" field. + public const int ParticipantIdentityFieldNumber = 1; + private readonly static string ParticipantIdentityDefaultValue = ""; + + private string participantIdentity_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::LiveKit.Proto.OwnedParticipant Info { - get { return info_; } + public string ParticipantIdentity { + get { return participantIdentity_ ?? ParticipantIdentityDefaultValue; } set { - info_ = value; + participantIdentity_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "participant_identity" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasParticipantIdentity { + get { return participantIdentity_ != null; } + } + /// Clears the value of the "participant_identity" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearParticipantIdentity() { + participantIdentity_ = null; + } + + /// Field number for the "disconnect_reason" field. + public const int DisconnectReasonFieldNumber = 2; + private readonly static global::LiveKit.Proto.DisconnectReason DisconnectReasonDefaultValue = global::LiveKit.Proto.DisconnectReason.UnknownReason; + + private global::LiveKit.Proto.DisconnectReason disconnectReason_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.DisconnectReason DisconnectReason { + get { if ((_hasBits0 & 1) != 0) { return disconnectReason_; } else { return DisconnectReasonDefaultValue; } } + set { + _hasBits0 |= 1; + disconnectReason_ = value; } } + /// Gets whether the "disconnect_reason" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasDisconnectReason { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "disconnect_reason" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearDisconnectReason() { + _hasBits0 &= ~1; + } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as ParticipantConnected); + return Equals(other as ParticipantDisconnected); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(ParticipantConnected other) { + public bool Equals(ParticipantDisconnected other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (!object.Equals(Info, other.Info)) return false; + if (ParticipantIdentity != other.ParticipantIdentity) return false; + if (DisconnectReason != other.DisconnectReason) return false; return Equals(_unknownFields, other._unknownFields); } @@ -19944,7 +21770,8 @@ public bool Equals(ParticipantConnected other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (info_ != null) hash ^= Info.GetHashCode(); + if (HasParticipantIdentity) hash ^= ParticipantIdentity.GetHashCode(); + if (HasDisconnectReason) hash ^= DisconnectReason.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -19963,9 +21790,13 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (info_ != null) { + if (HasParticipantIdentity) { output.WriteRawTag(10); - output.WriteMessage(Info); + output.WriteString(ParticipantIdentity); + } + if (HasDisconnectReason) { + output.WriteRawTag(16); + output.WriteEnum((int) DisconnectReason); } if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -19977,9 +21808,13 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (info_ != null) { + if (HasParticipantIdentity) { output.WriteRawTag(10); - output.WriteMessage(Info); + output.WriteString(ParticipantIdentity); + } + if (HasDisconnectReason) { + output.WriteRawTag(16); + output.WriteEnum((int) DisconnectReason); } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); @@ -19991,8 +21826,11 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (info_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Info); + if (HasParticipantIdentity) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ParticipantIdentity); + } + if (HasDisconnectReason) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DisconnectReason); } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); @@ -20002,15 +21840,15 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(ParticipantConnected other) { + public void MergeFrom(ParticipantDisconnected other) { if (other == null) { return; } - if (other.info_ != null) { - if (info_ == null) { - Info = new global::LiveKit.Proto.OwnedParticipant(); - } - Info.MergeFrom(other.Info); + if (other.HasParticipantIdentity) { + ParticipantIdentity = other.ParticipantIdentity; + } + if (other.HasDisconnectReason) { + DisconnectReason = other.DisconnectReason; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -20032,10 +21870,11 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - if (info_ == null) { - Info = new global::LiveKit.Proto.OwnedParticipant(); - } - input.ReadMessage(Info); + ParticipantIdentity = input.ReadString(); + break; + } + case 16: { + DisconnectReason = (global::LiveKit.Proto.DisconnectReason) input.ReadEnum(); break; } } @@ -20058,10 +21897,11 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 10: { - if (info_ == null) { - Info = new global::LiveKit.Proto.OwnedParticipant(); - } - input.ReadMessage(Info); + ParticipantIdentity = input.ReadString(); + break; + } + case 16: { + DisconnectReason = (global::LiveKit.Proto.DisconnectReason) input.ReadEnum(); break; } } @@ -20072,21 +21912,21 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class ParticipantActive : pb::IMessage + public sealed partial class LocalTrackPublished : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ParticipantActive()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LocalTrackPublished()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[54]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[61]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -20097,7 +21937,7 @@ public sealed partial class ParticipantActive : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ParticipantActive() { + public LocalTrackPublished() { OnConstruction(); } @@ -20105,59 +21945,63 @@ public ParticipantActive() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ParticipantActive(ParticipantActive other) : this() { - participantIdentity_ = other.participantIdentity_; + public LocalTrackPublished(LocalTrackPublished other) : this() { + trackSid_ = other.trackSid_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ParticipantActive Clone() { - return new ParticipantActive(this); + public LocalTrackPublished Clone() { + return new LocalTrackPublished(this); } - /// Field number for the "participant_identity" field. - public const int ParticipantIdentityFieldNumber = 1; - private readonly static string ParticipantIdentityDefaultValue = ""; + /// Field number for the "track_sid" field. + public const int TrackSidFieldNumber = 1; + private readonly static string TrackSidDefaultValue = ""; - private string participantIdentity_; + private string trackSid_; + /// + /// The TrackPublicationInfo comes from the PublishTrack response + /// and the FfiClient musts wait for it before firing this event + /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string ParticipantIdentity { - get { return participantIdentity_ ?? ParticipantIdentityDefaultValue; } + public string TrackSid { + get { return trackSid_ ?? TrackSidDefaultValue; } set { - participantIdentity_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + trackSid_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); } } - /// Gets whether the "participant_identity" field is set + /// Gets whether the "track_sid" field is set [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasParticipantIdentity { - get { return participantIdentity_ != null; } + public bool HasTrackSid { + get { return trackSid_ != null; } } - /// Clears the value of the "participant_identity" field + /// Clears the value of the "track_sid" field [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearParticipantIdentity() { - participantIdentity_ = null; + public void ClearTrackSid() { + trackSid_ = null; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as ParticipantActive); + return Equals(other as LocalTrackPublished); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(ParticipantActive other) { + public bool Equals(LocalTrackPublished other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (ParticipantIdentity != other.ParticipantIdentity) return false; + if (TrackSid != other.TrackSid) return false; return Equals(_unknownFields, other._unknownFields); } @@ -20165,7 +22009,7 @@ public bool Equals(ParticipantActive other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (HasParticipantIdentity) hash ^= ParticipantIdentity.GetHashCode(); + if (HasTrackSid) hash ^= TrackSid.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -20184,9 +22028,9 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (HasParticipantIdentity) { + if (HasTrackSid) { output.WriteRawTag(10); - output.WriteString(ParticipantIdentity); + output.WriteString(TrackSid); } if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -20198,9 +22042,9 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasParticipantIdentity) { + if (HasTrackSid) { output.WriteRawTag(10); - output.WriteString(ParticipantIdentity); + output.WriteString(TrackSid); } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); @@ -20212,8 +22056,8 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (HasParticipantIdentity) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(ParticipantIdentity); + if (HasTrackSid) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(TrackSid); } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); @@ -20223,12 +22067,12 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(ParticipantActive other) { + public void MergeFrom(LocalTrackPublished other) { if (other == null) { return; } - if (other.HasParticipantIdentity) { - ParticipantIdentity = other.ParticipantIdentity; + if (other.HasTrackSid) { + TrackSid = other.TrackSid; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -20250,7 +22094,7 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - ParticipantIdentity = input.ReadString(); + TrackSid = input.ReadString(); break; } } @@ -20273,7 +22117,7 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 10: { - ParticipantIdentity = input.ReadString(); + TrackSid = input.ReadString(); break; } } @@ -20284,22 +22128,21 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class ParticipantDisconnected : pb::IMessage + public sealed partial class LocalTrackUnpublished : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ParticipantDisconnected()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LocalTrackUnpublished()); private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[55]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[62]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -20310,7 +22153,7 @@ public sealed partial class ParticipantDisconnected : pb::IMessageField number for the "participant_identity" field. - public const int ParticipantIdentityFieldNumber = 1; - private readonly static string ParticipantIdentityDefaultValue = ""; - - private string participantIdentity_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string ParticipantIdentity { - get { return participantIdentity_ ?? ParticipantIdentityDefaultValue; } - set { - participantIdentity_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - /// Gets whether the "participant_identity" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasParticipantIdentity { - get { return participantIdentity_ != null; } - } - /// Clears the value of the "participant_identity" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearParticipantIdentity() { - participantIdentity_ = null; + public LocalTrackUnpublished Clone() { + return new LocalTrackUnpublished(this); } - /// Field number for the "disconnect_reason" field. - public const int DisconnectReasonFieldNumber = 2; - private readonly static global::LiveKit.Proto.DisconnectReason DisconnectReasonDefaultValue = global::LiveKit.Proto.DisconnectReason.UnknownReason; + /// Field number for the "publication_sid" field. + public const int PublicationSidFieldNumber = 1; + private readonly static string PublicationSidDefaultValue = ""; - private global::LiveKit.Proto.DisconnectReason disconnectReason_; + private string publicationSid_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::LiveKit.Proto.DisconnectReason DisconnectReason { - get { if ((_hasBits0 & 1) != 0) { return disconnectReason_; } else { return DisconnectReasonDefaultValue; } } + public string PublicationSid { + get { return publicationSid_ ?? PublicationSidDefaultValue; } set { - _hasBits0 |= 1; - disconnectReason_ = value; + publicationSid_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); } } - /// Gets whether the "disconnect_reason" field is set + /// Gets whether the "publication_sid" field is set [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasDisconnectReason { - get { return (_hasBits0 & 1) != 0; } + public bool HasPublicationSid { + get { return publicationSid_ != null; } } - /// Clears the value of the "disconnect_reason" field + /// Clears the value of the "publication_sid" field [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearDisconnectReason() { - _hasBits0 &= ~1; + public void ClearPublicationSid() { + publicationSid_ = null; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as ParticipantDisconnected); + return Equals(other as LocalTrackUnpublished); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(ParticipantDisconnected other) { + public bool Equals(LocalTrackUnpublished other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (ParticipantIdentity != other.ParticipantIdentity) return false; - if (DisconnectReason != other.DisconnectReason) return false; + if (PublicationSid != other.PublicationSid) return false; return Equals(_unknownFields, other._unknownFields); } @@ -20408,8 +22221,7 @@ public bool Equals(ParticipantDisconnected other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (HasParticipantIdentity) hash ^= ParticipantIdentity.GetHashCode(); - if (HasDisconnectReason) hash ^= DisconnectReason.GetHashCode(); + if (HasPublicationSid) hash ^= PublicationSid.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -20428,13 +22240,9 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (HasParticipantIdentity) { + if (HasPublicationSid) { output.WriteRawTag(10); - output.WriteString(ParticipantIdentity); - } - if (HasDisconnectReason) { - output.WriteRawTag(16); - output.WriteEnum((int) DisconnectReason); + output.WriteString(PublicationSid); } if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -20446,13 +22254,9 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasParticipantIdentity) { + if (HasPublicationSid) { output.WriteRawTag(10); - output.WriteString(ParticipantIdentity); - } - if (HasDisconnectReason) { - output.WriteRawTag(16); - output.WriteEnum((int) DisconnectReason); + output.WriteString(PublicationSid); } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); @@ -20464,11 +22268,8 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (HasParticipantIdentity) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(ParticipantIdentity); - } - if (HasDisconnectReason) { - size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DisconnectReason); + if (HasPublicationSid) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(PublicationSid); } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); @@ -20478,15 +22279,12 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(ParticipantDisconnected other) { + public void MergeFrom(LocalTrackUnpublished other) { if (other == null) { return; } - if (other.HasParticipantIdentity) { - ParticipantIdentity = other.ParticipantIdentity; - } - if (other.HasDisconnectReason) { - DisconnectReason = other.DisconnectReason; + if (other.HasPublicationSid) { + PublicationSid = other.PublicationSid; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -20508,11 +22306,7 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - ParticipantIdentity = input.ReadString(); - break; - } - case 16: { - DisconnectReason = (global::LiveKit.Proto.DisconnectReason) input.ReadEnum(); + PublicationSid = input.ReadString(); break; } } @@ -20535,11 +22329,7 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 10: { - ParticipantIdentity = input.ReadString(); - break; - } - case 16: { - DisconnectReason = (global::LiveKit.Proto.DisconnectReason) input.ReadEnum(); + PublicationSid = input.ReadString(); break; } } @@ -20549,22 +22339,32 @@ public void MergeFrom(pb::CodedInputStream input) { } + /// + /// Fired when the SDK auto-republishes a local track during a full + /// reconnect. The FfiPublication handle is preserved across the cycle — + /// language bindings should look up the existing publication object by + /// `previous_sid` (its old SID), update its TrackPublicationInfo in place + /// with `info`, and rekey it under the new SID. Apps holding a cached + /// reference to the publication continue to see a valid object whose + /// reads/writes hit current state. + /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class LocalTrackPublished : pb::IMessage + public sealed partial class LocalTrackRepublished : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LocalTrackPublished()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LocalTrackRepublished()); private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[56]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[63]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -20575,7 +22375,7 @@ public sealed partial class LocalTrackPublished : pb::IMessageField number for the "track_sid" field. - public const int TrackSidFieldNumber = 1; - private readonly static string TrackSidDefaultValue = ""; + /// Field number for the "publication_handle" field. + public const int PublicationHandleFieldNumber = 1; + private readonly static ulong PublicationHandleDefaultValue = 0UL; - private string trackSid_; - /// - /// The TrackPublicationInfo comes from the PublishTrack response - /// and the FfiClient musts wait for it before firing this event - /// + private ulong publicationHandle_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string TrackSid { - get { return trackSid_ ?? TrackSidDefaultValue; } + public ulong PublicationHandle { + get { if ((_hasBits0 & 1) != 0) { return publicationHandle_; } else { return PublicationHandleDefaultValue; } } set { - trackSid_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + _hasBits0 |= 1; + publicationHandle_ = value; } } - /// Gets whether the "track_sid" field is set + /// Gets whether the "publication_handle" field is set [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasTrackSid { - get { return trackSid_ != null; } + public bool HasPublicationHandle { + get { return (_hasBits0 & 1) != 0; } } - /// Clears the value of the "track_sid" field + /// Clears the value of the "publication_handle" field [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearTrackSid() { - trackSid_ = null; + public void ClearPublicationHandle() { + _hasBits0 &= ~1; + } + + /// Field number for the "previous_sid" field. + public const int PreviousSidFieldNumber = 2; + private readonly static string PreviousSidDefaultValue = ""; + + private string previousSid_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string PreviousSid { + get { return previousSid_ ?? PreviousSidDefaultValue; } + set { + previousSid_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "previous_sid" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasPreviousSid { + get { return previousSid_ != null; } + } + /// Clears the value of the "previous_sid" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearPreviousSid() { + previousSid_ = null; + } + + /// Field number for the "info" field. + public const int InfoFieldNumber = 3; + private global::LiveKit.Proto.TrackPublicationInfo info_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.TrackPublicationInfo Info { + get { return info_; } + set { + info_ = value; + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as LocalTrackPublished); + return Equals(other as LocalTrackRepublished); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(LocalTrackPublished other) { + public bool Equals(LocalTrackRepublished other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (TrackSid != other.TrackSid) return false; + if (PublicationHandle != other.PublicationHandle) return false; + if (PreviousSid != other.PreviousSid) return false; + if (!object.Equals(Info, other.Info)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -20647,7 +22487,9 @@ public bool Equals(LocalTrackPublished other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (HasTrackSid) hash ^= TrackSid.GetHashCode(); + if (HasPublicationHandle) hash ^= PublicationHandle.GetHashCode(); + if (HasPreviousSid) hash ^= PreviousSid.GetHashCode(); + if (info_ != null) hash ^= Info.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -20666,9 +22508,17 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (HasTrackSid) { - output.WriteRawTag(10); - output.WriteString(TrackSid); + if (HasPublicationHandle) { + output.WriteRawTag(8); + output.WriteUInt64(PublicationHandle); + } + if (HasPreviousSid) { + output.WriteRawTag(18); + output.WriteString(PreviousSid); + } + if (info_ != null) { + output.WriteRawTag(26); + output.WriteMessage(Info); } if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -20680,9 +22530,17 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasTrackSid) { - output.WriteRawTag(10); - output.WriteString(TrackSid); + if (HasPublicationHandle) { + output.WriteRawTag(8); + output.WriteUInt64(PublicationHandle); + } + if (HasPreviousSid) { + output.WriteRawTag(18); + output.WriteString(PreviousSid); + } + if (info_ != null) { + output.WriteRawTag(26); + output.WriteMessage(Info); } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); @@ -20694,8 +22552,14 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (HasTrackSid) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(TrackSid); + if (HasPublicationHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(PublicationHandle); + } + if (HasPreviousSid) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(PreviousSid); + } + if (info_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Info); } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); @@ -20705,12 +22569,21 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(LocalTrackPublished other) { + public void MergeFrom(LocalTrackRepublished other) { if (other == null) { return; } - if (other.HasTrackSid) { - TrackSid = other.TrackSid; + if (other.HasPublicationHandle) { + PublicationHandle = other.PublicationHandle; + } + if (other.HasPreviousSid) { + PreviousSid = other.PreviousSid; + } + if (other.info_ != null) { + if (info_ == null) { + Info = new global::LiveKit.Proto.TrackPublicationInfo(); + } + Info.MergeFrom(other.Info); } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -20731,8 +22604,19 @@ public void MergeFrom(pb::CodedInputStream input) { default: _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; - case 10: { - TrackSid = input.ReadString(); + case 8: { + PublicationHandle = input.ReadUInt64(); + break; + } + case 18: { + PreviousSid = input.ReadString(); + break; + } + case 26: { + if (info_ == null) { + Info = new global::LiveKit.Proto.TrackPublicationInfo(); + } + input.ReadMessage(Info); break; } } @@ -20754,220 +22638,19 @@ public void MergeFrom(pb::CodedInputStream input) { default: _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; - case 10: { - TrackSid = input.ReadString(); + case 8: { + PublicationHandle = input.ReadUInt64(); break; } - } - } - } - #endif - - } - - [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class LocalTrackUnpublished : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LocalTrackUnpublished()); - private pb::UnknownFieldSet _unknownFields; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[57]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public LocalTrackUnpublished() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public LocalTrackUnpublished(LocalTrackUnpublished other) : this() { - publicationSid_ = other.publicationSid_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public LocalTrackUnpublished Clone() { - return new LocalTrackUnpublished(this); - } - - /// Field number for the "publication_sid" field. - public const int PublicationSidFieldNumber = 1; - private readonly static string PublicationSidDefaultValue = ""; - - private string publicationSid_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string PublicationSid { - get { return publicationSid_ ?? PublicationSidDefaultValue; } - set { - publicationSid_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - /// Gets whether the "publication_sid" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasPublicationSid { - get { return publicationSid_ != null; } - } - /// Clears the value of the "publication_sid" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearPublicationSid() { - publicationSid_ = null; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as LocalTrackUnpublished); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(LocalTrackUnpublished other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (PublicationSid != other.PublicationSid) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasPublicationSid) hash ^= PublicationSid.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasPublicationSid) { - output.WriteRawTag(10); - output.WriteString(PublicationSid); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasPublicationSid) { - output.WriteRawTag(10); - output.WriteString(PublicationSid); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasPublicationSid) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(PublicationSid); - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(LocalTrackUnpublished other) { - if (other == null) { - return; - } - if (other.HasPublicationSid) { - PublicationSid = other.PublicationSid; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; - } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 10: { - PublicationSid = input.ReadString(); + case 18: { + PreviousSid = input.ReadString(); break; } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; - } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 10: { - PublicationSid = input.ReadString(); + case 26: { + if (info_ == null) { + Info = new global::LiveKit.Proto.TrackPublicationInfo(); + } + input.ReadMessage(Info); break; } } @@ -20992,7 +22675,7 @@ public sealed partial class LocalTrackSubscribed : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[59]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[65]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -21462,7 +23145,7 @@ public sealed partial class TrackUnpublished : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[60]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[66]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -21729,7 +23412,7 @@ public sealed partial class TrackSubscribed : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[61]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[67]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -21987,7 +23670,7 @@ public sealed partial class TrackUnsubscribed : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[62]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[68]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -22253,7 +23936,7 @@ public sealed partial class TrackSubscriptionFailed : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[64]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[70]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -22830,7 +24513,7 @@ public sealed partial class TrackUnmuted : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[65]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[71]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -23094,7 +24777,7 @@ public sealed partial class E2eeStateChanged : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[66]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[72]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -23362,7 +25045,7 @@ public sealed partial class ActiveSpeakersChanged : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[69]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[75]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -23973,7 +25656,7 @@ public sealed partial class ParticipantMetadataChanged : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[76]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[82]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -25812,7 +27495,7 @@ public sealed partial class ChatMessage : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[77]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[83]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -26284,7 +27967,7 @@ public sealed partial class ChatMessageReceived : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[79]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[85]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -26809,7 +28492,7 @@ public sealed partial class DataPacketReceived : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[83]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[89]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -27876,7 +29559,7 @@ public sealed partial class Disconnected : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[84]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[90]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -28090,7 +29773,7 @@ public sealed partial class Reconnecting : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[85]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[91]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -28251,7 +29934,7 @@ public sealed partial class Reconnected : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[86]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[92]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -28412,7 +30095,7 @@ public sealed partial class TokenRefreshed : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[87]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[93]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -28624,7 +30307,7 @@ public sealed partial class RoomEOS : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[88]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[94]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -28785,7 +30468,7 @@ public sealed partial class DataStream : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[89]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[95]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -30914,7 +32597,7 @@ public sealed partial class DataStreamHeaderReceived : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[105]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[111]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -35306,7 +36989,7 @@ public sealed partial class TextStreamOpened : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[106]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[112]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -35567,7 +37250,7 @@ public sealed partial class DataTrackPublished : pb::IMessageField number for the "packet_trailer_features" field. + public const int PacketTrailerFeaturesFieldNumber = 13; + private static readonly pb::FieldCodec _repeated_packetTrailerFeatures_codec + = pb::FieldCodec.ForEnum(104, x => (int) x, x => (global::LiveKit.Proto.PacketTrailerFeature) x); + private readonly pbc::RepeatedField packetTrailerFeatures_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField PacketTrailerFeatures { + get { return packetTrailerFeatures_; } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -2417,6 +2437,7 @@ public bool Equals(TrackPublicationInfo other) { if (Remote != other.Remote) return false; if (EncryptionType != other.EncryptionType) return false; if(!audioFeatures_.Equals(other.audioFeatures_)) return false; + if(!packetTrailerFeatures_.Equals(other.packetTrailerFeatures_)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -2436,6 +2457,7 @@ public override int GetHashCode() { if (HasRemote) hash ^= Remote.GetHashCode(); if (HasEncryptionType) hash ^= EncryptionType.GetHashCode(); hash ^= audioFeatures_.GetHashCode(); + hash ^= packetTrailerFeatures_.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -2499,6 +2521,7 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteEnum((int) EncryptionType); } audioFeatures_.WriteTo(output, _repeated_audioFeatures_codec); + packetTrailerFeatures_.WriteTo(output, _repeated_packetTrailerFeatures_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -2554,6 +2577,7 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteEnum((int) EncryptionType); } audioFeatures_.WriteTo(ref output, _repeated_audioFeatures_codec); + packetTrailerFeatures_.WriteTo(ref output, _repeated_packetTrailerFeatures_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -2598,6 +2622,7 @@ public int CalculateSize() { size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) EncryptionType); } size += audioFeatures_.CalculateSize(_repeated_audioFeatures_codec); + size += packetTrailerFeatures_.CalculateSize(_repeated_packetTrailerFeatures_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -2644,6 +2669,7 @@ public void MergeFrom(TrackPublicationInfo other) { EncryptionType = other.EncryptionType; } audioFeatures_.Add(other.audioFeatures_); + packetTrailerFeatures_.Add(other.packetTrailerFeatures_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -2712,6 +2738,11 @@ public void MergeFrom(pb::CodedInputStream input) { audioFeatures_.AddEntriesFrom(input, _repeated_audioFeatures_codec); break; } + case 106: + case 104: { + packetTrailerFeatures_.AddEntriesFrom(input, _repeated_packetTrailerFeatures_codec); + break; + } } } #endif @@ -2780,6 +2811,11 @@ public void MergeFrom(pb::CodedInputStream input) { audioFeatures_.AddEntriesFrom(ref input, _repeated_audioFeatures_codec); break; } + case 106: + case 104: { + packetTrailerFeatures_.AddEntriesFrom(ref input, _repeated_packetTrailerFeatures_codec); + break; + } } } } diff --git a/Runtime/Scripts/Proto/VideoFrame.cs b/Runtime/Scripts/Proto/VideoFrame.cs index b4158fc5..3d7bb9f6 100644 --- a/Runtime/Scripts/Proto/VideoFrame.cs +++ b/Runtime/Scripts/Proto/VideoFrame.cs @@ -44,53 +44,56 @@ static VideoFrameReflection() { "b24YAiACKAsyJC5saXZla2l0LnByb3RvLlZpZGVvU291cmNlUmVzb2x1dGlv", "bhIVCg1pc19zY3JlZW5jYXN0GAMgASgIIkkKFk5ld1ZpZGVvU291cmNlUmVz", "cG9uc2USLwoGc291cmNlGAEgAigLMh8ubGl2ZWtpdC5wcm90by5Pd25lZFZp", - "ZGVvU291cmNlIqcBChhDYXB0dXJlVmlkZW9GcmFtZVJlcXVlc3QSFQoNc291", + "ZGVvU291cmNlItcBChhDYXB0dXJlVmlkZW9GcmFtZVJlcXVlc3QSFQoNc291", "cmNlX2hhbmRsZRgBIAIoBBIuCgZidWZmZXIYAiACKAsyHi5saXZla2l0LnBy", "b3RvLlZpZGVvQnVmZmVySW5mbxIUCgx0aW1lc3RhbXBfdXMYAyACKAMSLgoI", - "cm90YXRpb24YBCACKA4yHC5saXZla2l0LnByb3RvLlZpZGVvUm90YXRpb24i", - "GwoZQ2FwdHVyZVZpZGVvRnJhbWVSZXNwb25zZSKHAQoTVmlkZW9Db252ZXJ0", - "UmVxdWVzdBIOCgZmbGlwX3kYASABKAgSLgoGYnVmZmVyGAIgAigLMh4ubGl2", - "ZWtpdC5wcm90by5WaWRlb0J1ZmZlckluZm8SMAoIZHN0X3R5cGUYAyACKA4y", - "Hi5saXZla2l0LnByb3RvLlZpZGVvQnVmZmVyVHlwZSJlChRWaWRlb0NvbnZl", - "cnRSZXNwb25zZRIPCgVlcnJvchgBIAEoCUgAEjEKBmJ1ZmZlchgCIAEoCzIf", - "LmxpdmVraXQucHJvdG8uT3duZWRWaWRlb0J1ZmZlckgAQgkKB21lc3NhZ2Ui", - "RAoPVmlkZW9SZXNvbHV0aW9uEg0KBXdpZHRoGAEgAigNEg4KBmhlaWdodBgC", - "IAIoDRISCgpmcmFtZV9yYXRlGAMgAigBIoMCCg9WaWRlb0J1ZmZlckluZm8S", - "LAoEdHlwZRgBIAIoDjIeLmxpdmVraXQucHJvdG8uVmlkZW9CdWZmZXJUeXBl", - "Eg0KBXdpZHRoGAIgAigNEg4KBmhlaWdodBgDIAIoDRIQCghkYXRhX3B0chgE", - "IAIoBBIOCgZzdHJpZGUYBiABKA0SQAoKY29tcG9uZW50cxgHIAMoCzIsLmxp", - "dmVraXQucHJvdG8uVmlkZW9CdWZmZXJJbmZvLkNvbXBvbmVudEluZm8aPwoN", - "Q29tcG9uZW50SW5mbxIQCghkYXRhX3B0chgBIAIoBBIOCgZzdHJpZGUYAiAC", - "KA0SDAoEc2l6ZRgDIAIoDSJvChBPd25lZFZpZGVvQnVmZmVyEi0KBmhhbmRs", - "ZRgBIAIoCzIdLmxpdmVraXQucHJvdG8uRmZpT3duZWRIYW5kbGUSLAoEaW5m", - "bxgCIAIoCzIeLmxpdmVraXQucHJvdG8uVmlkZW9CdWZmZXJJbmZvIj8KD1Zp", - "ZGVvU3RyZWFtSW5mbxIsCgR0eXBlGAEgAigOMh4ubGl2ZWtpdC5wcm90by5W", - "aWRlb1N0cmVhbVR5cGUibwoQT3duZWRWaWRlb1N0cmVhbRItCgZoYW5kbGUY", - "ASACKAsyHS5saXZla2l0LnByb3RvLkZmaU93bmVkSGFuZGxlEiwKBGluZm8Y", - "AiACKAsyHi5saXZla2l0LnByb3RvLlZpZGVvU3RyZWFtSW5mbyKfAQoQVmlk", - "ZW9TdHJlYW1FdmVudBIVCg1zdHJlYW1faGFuZGxlGAEgAigEEjsKDmZyYW1l", - "X3JlY2VpdmVkGAIgASgLMiEubGl2ZWtpdC5wcm90by5WaWRlb0ZyYW1lUmVj", - "ZWl2ZWRIABIsCgNlb3MYAyABKAsyHS5saXZla2l0LnByb3RvLlZpZGVvU3Ry", - "ZWFtRU9TSABCCQoHbWVzc2FnZSKLAQoSVmlkZW9GcmFtZVJlY2VpdmVkEi8K", - "BmJ1ZmZlchgBIAIoCzIfLmxpdmVraXQucHJvdG8uT3duZWRWaWRlb0J1ZmZl", - "chIUCgx0aW1lc3RhbXBfdXMYAiACKAMSLgoIcm90YXRpb24YAyACKA4yHC5s", - "aXZla2l0LnByb3RvLlZpZGVvUm90YXRpb24iEAoOVmlkZW9TdHJlYW1FT1Mi", - "NgoVVmlkZW9Tb3VyY2VSZXNvbHV0aW9uEg0KBXdpZHRoGAEgAigNEg4KBmhl", - "aWdodBgCIAIoDSI/Cg9WaWRlb1NvdXJjZUluZm8SLAoEdHlwZRgBIAIoDjIe", - "LmxpdmVraXQucHJvdG8uVmlkZW9Tb3VyY2VUeXBlIm8KEE93bmVkVmlkZW9T", - "b3VyY2USLQoGaGFuZGxlGAEgAigLMh0ubGl2ZWtpdC5wcm90by5GZmlPd25l", - "ZEhhbmRsZRIsCgRpbmZvGAIgAigLMh4ubGl2ZWtpdC5wcm90by5WaWRlb1Nv", - "dXJjZUluZm8qOwoKVmlkZW9Db2RlYxIHCgNWUDgQABIICgRIMjY0EAESBwoD", - "QVYxEAISBwoDVlA5EAMSCAoESDI2NRAEKmwKDVZpZGVvUm90YXRpb24SFAoQ", - "VklERU9fUk9UQVRJT05fMBAAEhUKEVZJREVPX1JPVEFUSU9OXzkwEAESFgoS", - "VklERU9fUk9UQVRJT05fMTgwEAISFgoSVklERU9fUk9UQVRJT05fMjcwEAMq", - "gQEKD1ZpZGVvQnVmZmVyVHlwZRIICgRSR0JBEAASCAoEQUJHUhABEggKBEFS", - "R0IQAhIICgRCR1JBEAMSCQoFUkdCMjQQBBIICgRJNDIwEAUSCQoFSTQyMEEQ", - "BhIICgRJNDIyEAcSCAoESTQ0NBAIEggKBEkwMTAQCRIICgROVjEyEAoqWQoP", - "VmlkZW9TdHJlYW1UeXBlEhcKE1ZJREVPX1NUUkVBTV9OQVRJVkUQABIWChJW", - "SURFT19TVFJFQU1fV0VCR0wQARIVChFWSURFT19TVFJFQU1fSFRNTBACKioK", - "D1ZpZGVvU291cmNlVHlwZRIXChNWSURFT19TT1VSQ0VfTkFUSVZFEABCEKoC", - "DUxpdmVLaXQuUHJvdG8=")); + "cm90YXRpb24YBCACKA4yHC5saXZla2l0LnByb3RvLlZpZGVvUm90YXRpb24S", + "LgoIbWV0YWRhdGEYBSABKAsyHC5saXZla2l0LnByb3RvLkZyYW1lTWV0YWRh", + "dGEiGwoZQ2FwdHVyZVZpZGVvRnJhbWVSZXNwb25zZSKHAQoTVmlkZW9Db252", + "ZXJ0UmVxdWVzdBIOCgZmbGlwX3kYASABKAgSLgoGYnVmZmVyGAIgAigLMh4u", + "bGl2ZWtpdC5wcm90by5WaWRlb0J1ZmZlckluZm8SMAoIZHN0X3R5cGUYAyAC", + "KA4yHi5saXZla2l0LnByb3RvLlZpZGVvQnVmZmVyVHlwZSJlChRWaWRlb0Nv", + "bnZlcnRSZXNwb25zZRIPCgVlcnJvchgBIAEoCUgAEjEKBmJ1ZmZlchgCIAEo", + "CzIfLmxpdmVraXQucHJvdG8uT3duZWRWaWRlb0J1ZmZlckgAQgkKB21lc3Nh", + "Z2UiRAoPVmlkZW9SZXNvbHV0aW9uEg0KBXdpZHRoGAEgAigNEg4KBmhlaWdo", + "dBgCIAIoDRISCgpmcmFtZV9yYXRlGAMgAigBIoMCCg9WaWRlb0J1ZmZlcklu", + "Zm8SLAoEdHlwZRgBIAIoDjIeLmxpdmVraXQucHJvdG8uVmlkZW9CdWZmZXJU", + "eXBlEg0KBXdpZHRoGAIgAigNEg4KBmhlaWdodBgDIAIoDRIQCghkYXRhX3B0", + "chgEIAIoBBIOCgZzdHJpZGUYBiABKA0SQAoKY29tcG9uZW50cxgHIAMoCzIs", + "LmxpdmVraXQucHJvdG8uVmlkZW9CdWZmZXJJbmZvLkNvbXBvbmVudEluZm8a", + "PwoNQ29tcG9uZW50SW5mbxIQCghkYXRhX3B0chgBIAIoBBIOCgZzdHJpZGUY", + "AiACKA0SDAoEc2l6ZRgDIAIoDSJvChBPd25lZFZpZGVvQnVmZmVyEi0KBmhh", + "bmRsZRgBIAIoCzIdLmxpdmVraXQucHJvdG8uRmZpT3duZWRIYW5kbGUSLAoE", + "aW5mbxgCIAIoCzIeLmxpdmVraXQucHJvdG8uVmlkZW9CdWZmZXJJbmZvIjkK", + "DUZyYW1lTWV0YWRhdGESFgoOdXNlcl90aW1lc3RhbXAYASABKAQSEAoIZnJh", + "bWVfaWQYAiABKA0iPwoPVmlkZW9TdHJlYW1JbmZvEiwKBHR5cGUYASACKA4y", + "Hi5saXZla2l0LnByb3RvLlZpZGVvU3RyZWFtVHlwZSJvChBPd25lZFZpZGVv", + "U3RyZWFtEi0KBmhhbmRsZRgBIAIoCzIdLmxpdmVraXQucHJvdG8uRmZpT3du", + "ZWRIYW5kbGUSLAoEaW5mbxgCIAIoCzIeLmxpdmVraXQucHJvdG8uVmlkZW9T", + "dHJlYW1JbmZvIp8BChBWaWRlb1N0cmVhbUV2ZW50EhUKDXN0cmVhbV9oYW5k", + "bGUYASACKAQSOwoOZnJhbWVfcmVjZWl2ZWQYAiABKAsyIS5saXZla2l0LnBy", + "b3RvLlZpZGVvRnJhbWVSZWNlaXZlZEgAEiwKA2VvcxgDIAEoCzIdLmxpdmVr", + "aXQucHJvdG8uVmlkZW9TdHJlYW1FT1NIAEIJCgdtZXNzYWdlIrsBChJWaWRl", + "b0ZyYW1lUmVjZWl2ZWQSLwoGYnVmZmVyGAEgAigLMh8ubGl2ZWtpdC5wcm90", + "by5Pd25lZFZpZGVvQnVmZmVyEhQKDHRpbWVzdGFtcF91cxgCIAIoAxIuCghy", + "b3RhdGlvbhgDIAIoDjIcLmxpdmVraXQucHJvdG8uVmlkZW9Sb3RhdGlvbhIu", + "CghtZXRhZGF0YRgEIAEoCzIcLmxpdmVraXQucHJvdG8uRnJhbWVNZXRhZGF0", + "YSIQCg5WaWRlb1N0cmVhbUVPUyI2ChVWaWRlb1NvdXJjZVJlc29sdXRpb24S", + "DQoFd2lkdGgYASACKA0SDgoGaGVpZ2h0GAIgAigNIj8KD1ZpZGVvU291cmNl", + "SW5mbxIsCgR0eXBlGAEgAigOMh4ubGl2ZWtpdC5wcm90by5WaWRlb1NvdXJj", + "ZVR5cGUibwoQT3duZWRWaWRlb1NvdXJjZRItCgZoYW5kbGUYASACKAsyHS5s", + "aXZla2l0LnByb3RvLkZmaU93bmVkSGFuZGxlEiwKBGluZm8YAiACKAsyHi5s", + "aXZla2l0LnByb3RvLlZpZGVvU291cmNlSW5mbyo7CgpWaWRlb0NvZGVjEgcK", + "A1ZQOBAAEggKBEgyNjQQARIHCgNBVjEQAhIHCgNWUDkQAxIICgRIMjY1EAQq", + "bAoNVmlkZW9Sb3RhdGlvbhIUChBWSURFT19ST1RBVElPTl8wEAASFQoRVklE", + "RU9fUk9UQVRJT05fOTAQARIWChJWSURFT19ST1RBVElPTl8xODAQAhIWChJW", + "SURFT19ST1RBVElPTl8yNzAQAyqBAQoPVmlkZW9CdWZmZXJUeXBlEggKBFJH", + "QkEQABIICgRBQkdSEAESCAoEQVJHQhACEggKBEJHUkEQAxIJCgVSR0IyNBAE", + "EggKBEk0MjAQBRIJCgVJNDIwQRAGEggKBEk0MjIQBxIICgRJNDQ0EAgSCAoE", + "STAxMBAJEggKBE5WMTIQCipZCg9WaWRlb1N0cmVhbVR5cGUSFwoTVklERU9f", + "U1RSRUFNX05BVElWRRAAEhYKElZJREVPX1NUUkVBTV9XRUJHTBABEhUKEVZJ", + "REVPX1NUUkVBTV9IVE1MEAIqKgoPVmlkZW9Tb3VyY2VUeXBlEhcKE1ZJREVP", + "X1NPVVJDRV9OQVRJVkUQAEIQqgINTGl2ZUtpdC5Qcm90bw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::LiveKit.Proto.HandleReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.VideoCodec), typeof(global::LiveKit.Proto.VideoRotation), typeof(global::LiveKit.Proto.VideoBufferType), typeof(global::LiveKit.Proto.VideoStreamType), typeof(global::LiveKit.Proto.VideoSourceType), }, null, new pbr::GeneratedClrTypeInfo[] { @@ -100,17 +103,18 @@ static VideoFrameReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.VideoStreamFromParticipantResponse), global::LiveKit.Proto.VideoStreamFromParticipantResponse.Parser, new[]{ "Stream" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewVideoSourceRequest), global::LiveKit.Proto.NewVideoSourceRequest.Parser, new[]{ "Type", "Resolution", "IsScreencast" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewVideoSourceResponse), global::LiveKit.Proto.NewVideoSourceResponse.Parser, new[]{ "Source" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.CaptureVideoFrameRequest), global::LiveKit.Proto.CaptureVideoFrameRequest.Parser, new[]{ "SourceHandle", "Buffer", "TimestampUs", "Rotation" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.CaptureVideoFrameRequest), global::LiveKit.Proto.CaptureVideoFrameRequest.Parser, new[]{ "SourceHandle", "Buffer", "TimestampUs", "Rotation", "Metadata" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.CaptureVideoFrameResponse), global::LiveKit.Proto.CaptureVideoFrameResponse.Parser, null, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.VideoConvertRequest), global::LiveKit.Proto.VideoConvertRequest.Parser, new[]{ "FlipY", "Buffer", "DstType" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.VideoConvertResponse), global::LiveKit.Proto.VideoConvertResponse.Parser, new[]{ "Error", "Buffer" }, new[]{ "Message" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.VideoResolution), global::LiveKit.Proto.VideoResolution.Parser, new[]{ "Width", "Height", "FrameRate" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.VideoBufferInfo), global::LiveKit.Proto.VideoBufferInfo.Parser, new[]{ "Type", "Width", "Height", "DataPtr", "Stride", "Components" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.VideoBufferInfo.Types.ComponentInfo), global::LiveKit.Proto.VideoBufferInfo.Types.ComponentInfo.Parser, new[]{ "DataPtr", "Stride", "Size" }, null, null, null, null)}), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedVideoBuffer), global::LiveKit.Proto.OwnedVideoBuffer.Parser, new[]{ "Handle", "Info" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FrameMetadata), global::LiveKit.Proto.FrameMetadata.Parser, new[]{ "UserTimestamp", "FrameId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.VideoStreamInfo), global::LiveKit.Proto.VideoStreamInfo.Parser, new[]{ "Type" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedVideoStream), global::LiveKit.Proto.OwnedVideoStream.Parser, new[]{ "Handle", "Info" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.VideoStreamEvent), global::LiveKit.Proto.VideoStreamEvent.Parser, new[]{ "StreamHandle", "FrameReceived", "Eos" }, new[]{ "Message" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.VideoFrameReceived), global::LiveKit.Proto.VideoFrameReceived.Parser, new[]{ "Buffer", "TimestampUs", "Rotation" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.VideoFrameReceived), global::LiveKit.Proto.VideoFrameReceived.Parser, new[]{ "Buffer", "TimestampUs", "Rotation", "Metadata" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.VideoStreamEOS), global::LiveKit.Proto.VideoStreamEOS.Parser, null, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.VideoSourceResolution), global::LiveKit.Proto.VideoSourceResolution.Parser, new[]{ "Width", "Height" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.VideoSourceInfo), global::LiveKit.Proto.VideoSourceInfo.Parser, new[]{ "Type" }, null, null, null, null), @@ -2084,6 +2088,7 @@ public CaptureVideoFrameRequest(CaptureVideoFrameRequest other) : this() { buffer_ = other.buffer_ != null ? other.buffer_.Clone() : null; timestampUs_ = other.timestampUs_; rotation_ = other.rotation_; + metadata_ = other.metadata_ != null ? other.metadata_.Clone() : null; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -2189,6 +2194,18 @@ public void ClearRotation() { _hasBits0 &= ~4; } + /// Field number for the "metadata" field. + public const int MetadataFieldNumber = 5; + private global::LiveKit.Proto.FrameMetadata metadata_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.FrameMetadata Metadata { + get { return metadata_; } + set { + metadata_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -2208,6 +2225,7 @@ public bool Equals(CaptureVideoFrameRequest other) { if (!object.Equals(Buffer, other.Buffer)) return false; if (TimestampUs != other.TimestampUs) return false; if (Rotation != other.Rotation) return false; + if (!object.Equals(Metadata, other.Metadata)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -2219,6 +2237,7 @@ public override int GetHashCode() { if (buffer_ != null) hash ^= Buffer.GetHashCode(); if (HasTimestampUs) hash ^= TimestampUs.GetHashCode(); if (HasRotation) hash ^= Rotation.GetHashCode(); + if (metadata_ != null) hash ^= Metadata.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -2253,6 +2272,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(32); output.WriteEnum((int) Rotation); } + if (metadata_ != null) { + output.WriteRawTag(42); + output.WriteMessage(Metadata); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -2279,6 +2302,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(32); output.WriteEnum((int) Rotation); } + if (metadata_ != null) { + output.WriteRawTag(42); + output.WriteMessage(Metadata); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -2301,6 +2328,9 @@ public int CalculateSize() { if (HasRotation) { size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Rotation); } + if (metadata_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Metadata); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -2328,6 +2358,12 @@ public void MergeFrom(CaptureVideoFrameRequest other) { if (other.HasRotation) { Rotation = other.Rotation; } + if (other.metadata_ != null) { + if (metadata_ == null) { + Metadata = new global::LiveKit.Proto.FrameMetadata(); + } + Metadata.MergeFrom(other.Metadata); + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -2366,6 +2402,13 @@ public void MergeFrom(pb::CodedInputStream input) { Rotation = (global::LiveKit.Proto.VideoRotation) input.ReadEnum(); break; } + case 42: { + if (metadata_ == null) { + Metadata = new global::LiveKit.Proto.FrameMetadata(); + } + input.ReadMessage(Metadata); + break; + } } } #endif @@ -2404,6 +2447,13 @@ public void MergeFrom(pb::CodedInputStream input) { Rotation = (global::LiveKit.Proto.VideoRotation) input.ReadEnum(); break; } + case 42: { + if (metadata_ == null) { + Metadata = new global::LiveKit.Proto.FrameMetadata(); + } + input.ReadMessage(Metadata); + break; + } } } } @@ -4531,6 +4581,273 @@ public void MergeFrom(pb::CodedInputStream input) { } + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class FrameMetadata : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new FrameMetadata()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.VideoFrameReflection.Descriptor.MessageTypes[13]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public FrameMetadata() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public FrameMetadata(FrameMetadata other) : this() { + _hasBits0 = other._hasBits0; + userTimestamp_ = other.userTimestamp_; + frameId_ = other.frameId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public FrameMetadata Clone() { + return new FrameMetadata(this); + } + + /// Field number for the "user_timestamp" field. + public const int UserTimestampFieldNumber = 1; + private readonly static ulong UserTimestampDefaultValue = 0UL; + + private ulong userTimestamp_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong UserTimestamp { + get { if ((_hasBits0 & 1) != 0) { return userTimestamp_; } else { return UserTimestampDefaultValue; } } + set { + _hasBits0 |= 1; + userTimestamp_ = value; + } + } + /// Gets whether the "user_timestamp" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasUserTimestamp { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "user_timestamp" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearUserTimestamp() { + _hasBits0 &= ~1; + } + + /// Field number for the "frame_id" field. + public const int FrameIdFieldNumber = 2; + private readonly static uint FrameIdDefaultValue = 0; + + private uint frameId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint FrameId { + get { if ((_hasBits0 & 2) != 0) { return frameId_; } else { return FrameIdDefaultValue; } } + set { + _hasBits0 |= 2; + frameId_ = value; + } + } + /// Gets whether the "frame_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasFrameId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "frame_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearFrameId() { + _hasBits0 &= ~2; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as FrameMetadata); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(FrameMetadata other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (UserTimestamp != other.UserTimestamp) return false; + if (FrameId != other.FrameId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasUserTimestamp) hash ^= UserTimestamp.GetHashCode(); + if (HasFrameId) hash ^= FrameId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasUserTimestamp) { + output.WriteRawTag(8); + output.WriteUInt64(UserTimestamp); + } + if (HasFrameId) { + output.WriteRawTag(16); + output.WriteUInt32(FrameId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasUserTimestamp) { + output.WriteRawTag(8); + output.WriteUInt64(UserTimestamp); + } + if (HasFrameId) { + output.WriteRawTag(16); + output.WriteUInt32(FrameId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasUserTimestamp) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(UserTimestamp); + } + if (HasFrameId) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(FrameId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(FrameMetadata other) { + if (other == null) { + return; + } + if (other.HasUserTimestamp) { + UserTimestamp = other.UserTimestamp; + } + if (other.HasFrameId) { + FrameId = other.FrameId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + UserTimestamp = input.ReadUInt64(); + break; + } + case 16: { + FrameId = input.ReadUInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + UserTimestamp = input.ReadUInt64(); + break; + } + case 16: { + FrameId = input.ReadUInt32(); + break; + } + } + } + } + #endif + + } + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] public sealed partial class VideoStreamInfo : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE @@ -4547,7 +4864,7 @@ public sealed partial class VideoStreamInfo : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.VideoFrameReflection.Descriptor.MessageTypes[13]; } + get { return global::LiveKit.Proto.VideoFrameReflection.Descriptor.MessageTypes[14]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -4761,7 +5078,7 @@ public sealed partial class OwnedVideoStream : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.VideoFrameReflection.Descriptor.MessageTypes[14]; } + get { return global::LiveKit.Proto.VideoFrameReflection.Descriptor.MessageTypes[15]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -5015,7 +5332,7 @@ public sealed partial class VideoStreamEvent : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.VideoFrameReflection.Descriptor.MessageTypes[15]; } + get { return global::LiveKit.Proto.VideoFrameReflection.Descriptor.MessageTypes[16]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -5363,7 +5680,7 @@ public sealed partial class VideoFrameReceived : pb::IMessageField number for the "metadata" field. + public const int MetadataFieldNumber = 4; + private global::LiveKit.Proto.FrameMetadata metadata_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.FrameMetadata Metadata { + get { return metadata_; } + set { + metadata_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -5483,6 +5813,7 @@ public bool Equals(VideoFrameReceived other) { if (!object.Equals(Buffer, other.Buffer)) return false; if (TimestampUs != other.TimestampUs) return false; if (Rotation != other.Rotation) return false; + if (!object.Equals(Metadata, other.Metadata)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -5493,6 +5824,7 @@ public override int GetHashCode() { if (buffer_ != null) hash ^= Buffer.GetHashCode(); if (HasTimestampUs) hash ^= TimestampUs.GetHashCode(); if (HasRotation) hash ^= Rotation.GetHashCode(); + if (metadata_ != null) hash ^= Metadata.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -5523,6 +5855,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(24); output.WriteEnum((int) Rotation); } + if (metadata_ != null) { + output.WriteRawTag(34); + output.WriteMessage(Metadata); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -5545,6 +5881,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(24); output.WriteEnum((int) Rotation); } + if (metadata_ != null) { + output.WriteRawTag(34); + output.WriteMessage(Metadata); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -5564,6 +5904,9 @@ public int CalculateSize() { if (HasRotation) { size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Rotation); } + if (metadata_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Metadata); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -5588,6 +5931,12 @@ public void MergeFrom(VideoFrameReceived other) { if (other.HasRotation) { Rotation = other.Rotation; } + if (other.metadata_ != null) { + if (metadata_ == null) { + Metadata = new global::LiveKit.Proto.FrameMetadata(); + } + Metadata.MergeFrom(other.Metadata); + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -5622,6 +5971,13 @@ public void MergeFrom(pb::CodedInputStream input) { Rotation = (global::LiveKit.Proto.VideoRotation) input.ReadEnum(); break; } + case 34: { + if (metadata_ == null) { + Metadata = new global::LiveKit.Proto.FrameMetadata(); + } + input.ReadMessage(Metadata); + break; + } } } #endif @@ -5656,6 +6012,13 @@ public void MergeFrom(pb::CodedInputStream input) { Rotation = (global::LiveKit.Proto.VideoRotation) input.ReadEnum(); break; } + case 34: { + if (metadata_ == null) { + Metadata = new global::LiveKit.Proto.FrameMetadata(); + } + input.ReadMessage(Metadata); + break; + } } } } @@ -5678,7 +6041,7 @@ public sealed partial class VideoStreamEOS : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.VideoFrameReflection.Descriptor.MessageTypes[17]; } + get { return global::LiveKit.Proto.VideoFrameReflection.Descriptor.MessageTypes[18]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -5840,7 +6203,7 @@ public sealed partial class VideoSourceResolution : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.VideoFrameReflection.Descriptor.MessageTypes[19]; } + get { return global::LiveKit.Proto.VideoFrameReflection.Descriptor.MessageTypes[20]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -6321,7 +6684,7 @@ public sealed partial class OwnedVideoSource : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.VideoFrameReflection.Descriptor.MessageTypes[20]; } + get { return global::LiveKit.Proto.VideoFrameReflection.Descriptor.MessageTypes[21]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] diff --git a/Runtime/Scripts/Room.cs b/Runtime/Scripts/Room.cs index 88d58b2b..b0352db4 100644 --- a/Runtime/Scripts/Room.cs +++ b/Runtime/Scripts/Room.cs @@ -553,6 +553,16 @@ internal void OnConnect(ConnectCallback info) FfiClient.Instance.DisconnectReceived += OnDisconnectReceived; FfiClient.Instance.RpcMethodInvocationReceived += OnRpcMethodInvocationReceived; + // Signal Rust that listeners are installed and it can start forwarding room events. + // Without this the FFI side parks for 1s after ConnectCallback and then drops the room + // with ConnectionTimeout. Must run after the FfiClient.RoomEventReceived subscription + // above so no event can race ahead of OnEventReceived. + using (var readyRequest = FFIBridge.Instance.NewRequest()) + { + readyRequest.request.RoomHandle = (ulong)RoomHandle.DangerousGetHandle(); + using var readyResponse = readyRequest.Send(); + } + Connected?.Invoke(this); } diff --git a/Tests/PlayMode/LateJoinTrackSubscriptionTests.cs b/Tests/PlayMode/LateJoinTrackSubscriptionTests.cs new file mode 100644 index 00000000..dceb6e32 --- /dev/null +++ b/Tests/PlayMode/LateJoinTrackSubscriptionTests.cs @@ -0,0 +1,151 @@ +using System.Collections; +using System.Collections.Generic; +using LiveKit.PlayModeTests.Utils; +using LiveKit.Proto; +using NUnit.Framework; +using UnityEngine.TestTools; + +namespace LiveKit.PlayModeTests +{ + /// + /// Reproduces the late-join FFI race: a publisher publishes tracks first, + /// then a consumer connects with TrackSubscribed already wired. The consumer + /// must receive TrackSubscribed for every track that was already published + /// at the moment of its connect — events emitted by Rust between the + /// ConnectCallback and the client's listener registration must not be + /// dropped. This is gated by the ReadyForRoomEvent FFI handshake. + /// + public class LateJoinTrackSubscriptionTests + { + const int AudioTrackCount = 2; + const int VideoTrackCount = 2; + const float SubscribeTimeoutSeconds = 15f; + + static TrackPublishOptions AudioOptions() => + new TrackPublishOptions { Source = TrackSource.SourceMicrophone }; + + static TrackPublishOptions VideoOptions() => + new TrackPublishOptions { Source = TrackSource.SourceCamera, Simulcast = false }; + + static (TestRoomContext.ConnectionOptions publisher, TestRoomContext.ConnectionOptions subscriber) TwoPeers() + { + var publisher = TestRoomContext.ConnectionOptions.Default; + publisher.Identity = "late-join-publisher"; + var subscriber = TestRoomContext.ConnectionOptions.Default; + subscriber.Identity = "late-join-subscriber"; + return (publisher, subscriber); + } + + [UnityTest, Category("E2E")] + public IEnumerator LateJoiner_ReceivesTrackSubscribedForAlreadyPublishedTracks() + { + var (publisherOptions, subscriberOptions) = TwoPeers(); + using var context = new TestRoomContext(new[] { publisherOptions, subscriberOptions }); + + // 1. Publisher connects first. + yield return context.ConnectRoom(0); + Assert.IsNull(context.ConnectionError, context.ConnectionError); + + var publisherRoom = context.Rooms[0]; + var subscriberRoom = context.Rooms[1]; + var publisherIdentity = publisherRoom.LocalParticipant.Identity; + + // 2. Publisher publishes audio + video tracks BEFORE the consumer joins. + var expectedTrackNames = new HashSet(); + var audioSources = new List(); + var videoSources = new List(); + + for (int i = 0; i < AudioTrackCount; i++) + { + var trackName = $"late-join-audio-{i}"; + var source = new SineWaveAudioSource(); + audioSources.Add(source); + var localTrack = LocalAudioTrack.CreateAudioTrack(trackName, source, publisherRoom); + var pub = publisherRoom.LocalParticipant.PublishTrack(localTrack, AudioOptions()); + yield return pub; + Assert.IsFalse(pub.IsError, $"publish failed for {trackName}"); + expectedTrackNames.Add(trackName); + } + + for (int i = 0; i < VideoTrackCount; i++) + { + var trackName = $"late-join-video-{i}"; + var source = new StubVideoSource(); + videoSources.Add(source); + var localTrack = LocalVideoTrack.CreateVideoTrack(trackName, source, publisherRoom); + var pub = publisherRoom.LocalParticipant.PublishTrack(localTrack, VideoOptions()); + yield return pub; + Assert.IsFalse(pub.IsError, $"publish failed for {trackName}"); + expectedTrackNames.Add(trackName); + } + + // 3. Wire subscriber's TrackSubscribed handler BEFORE connecting. + // This is the realistic late-join usage pattern; the handler must + // fire for every snapshot publication the late joiner sees. + var subscribedNames = new HashSet(); + var subscribedKinds = new Dictionary(); + var subscribedCounts = new Dictionary(); + var subscribedExpectation = new Expectation( + predicate: () => + { + lock (subscribedNames) return subscribedNames.Count >= expectedTrackNames.Count; + }, + timeoutSeconds: SubscribeTimeoutSeconds); + + subscriberRoom.TrackSubscribed += (track, publication, participant) => + { + lock (subscribedNames) + { + subscribedNames.Add(publication.Name); + subscribedKinds[publication.Name] = publication.Kind; + subscribedCounts.TryGetValue(publication.Name, out var count); + subscribedCounts[publication.Name] = count + 1; + } + }; + + // 4. Subscriber joins late. + yield return context.ConnectRoom(1); + Assert.IsNull(context.ConnectionError, context.ConnectionError); + + // 5. Wait for all expected TrackSubscribed events to arrive. + yield return subscribedExpectation.Wait(); + Assert.IsNull(subscribedExpectation.Error, + $"Timed out before all late-join subscriptions arrived. " + + $"Received: [{string.Join(", ", subscribedNames)}] / " + + $"Expected: [{string.Join(", ", expectedTrackNames)}]"); + + // 6. Each expected track was subscribed exactly once with the right kind. + foreach (var name in expectedTrackNames) + { + Assert.IsTrue(subscribedNames.Contains(name), + $"Missing TrackSubscribed event for {name}"); + Assert.AreEqual(1, subscribedCounts[name], + $"Expected exactly one TrackSubscribed event for {name}, got {subscribedCounts[name]}"); + + var expectedKind = name.StartsWith("late-join-audio") + ? TrackKind.KindAudio + : TrackKind.KindVideo; + Assert.AreEqual(expectedKind, subscribedKinds[name], + $"Wrong kind for subscribed track {name}"); + } + + // 7. The remote-participant snapshot on the subscriber side reflects + // the publisher's publications. + Assert.IsTrue(subscriberRoom.RemoteParticipants.TryGetValue(publisherIdentity, out var remotePublisher), + $"Subscriber did not see remote participant {publisherIdentity}"); + + var snapshotNames = new HashSet(); + foreach (var pub in remotePublisher.Tracks.Values) + snapshotNames.Add(pub.Name); + + foreach (var name in expectedTrackNames) + { + Assert.IsTrue(snapshotNames.Contains(name), + $"Subscriber's remote participant snapshot is missing publication {name}; " + + $"snapshot: [{string.Join(", ", snapshotNames)}]"); + } + + foreach (var s in audioSources) s.Dispose(); + } + } +} diff --git a/Tests/PlayMode/LateJoinTrackSubscriptionTests.cs.meta b/Tests/PlayMode/LateJoinTrackSubscriptionTests.cs.meta new file mode 100644 index 00000000..0b47b823 --- /dev/null +++ b/Tests/PlayMode/LateJoinTrackSubscriptionTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b3fc0167d7ec34efbb6bb602e9b8fb9a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/PlayMode/Utils/TestRoomContext.cs b/Tests/PlayMode/Utils/TestRoomContext.cs index a4d1e4b4..4bbf0f58 100644 --- a/Tests/PlayMode/Utils/TestRoomContext.cs +++ b/Tests/PlayMode/Utils/TestRoomContext.cs @@ -57,19 +57,24 @@ public IEnumerator ConnectAll() { for (int i = 0; i < _connectionOptions.Count; i++) { - ConnectionOptions options = _connectionOptions[i]; - var room = Rooms[i]; - var token = CreateToken(options); - var roomOptions = new RoomOptions(); - var connect = room.Connect(options.ServerUrl ?? _serverUrl, token, roomOptions); - yield return connect; - - if (connect.IsError) - { - // TODO: Expose error details once available through API - ConnectionError = $"Participant '{options.Identity}' failed to connect to test room"; - yield break; - } + yield return ConnectRoom(i); + if (ConnectionError != null) yield break; + } + } + + public IEnumerator ConnectRoom(int index) + { + ConnectionOptions options = _connectionOptions[index]; + var room = Rooms[index]; + var token = CreateToken(options); + var roomOptions = new RoomOptions(); + var connect = room.Connect(options.ServerUrl ?? _serverUrl, token, roomOptions); + yield return connect; + + if (connect.IsError) + { + // TODO: Expose error details once available through API + ConnectionError = $"Participant '{options.Identity}' failed to connect to test room"; } }