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"; } }