@stinkycomputing/sesame-api-client 1.5.2 → 1.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -471,6 +471,14 @@ var sesame = $root.sesame = (() => {
471
471
  AudioMixerChannel.prototype.level = 0;
472
472
  AudioMixerChannel.prototype.pan = 0;
473
473
  AudioMixerChannel.prototype.plugins = $util.emptyArray;
474
+ AudioMixerChannel.prototype.mute = false;
475
+ AudioMixerChannel.prototype.automationLevel = null;
476
+ AudioMixerChannel.prototype.automationMute = false;
477
+ let $oneOfFields;
478
+ Object.defineProperty(AudioMixerChannel.prototype, "_automationLevel", {
479
+ get: $util.oneOfGetter($oneOfFields = ["automationLevel"]),
480
+ set: $util.oneOfSetter($oneOfFields)
481
+ });
474
482
  AudioMixerChannel.create = function create(properties) {
475
483
  return new AudioMixerChannel(properties);
476
484
  };
@@ -517,6 +525,21 @@ var sesame = $root.sesame = (() => {
517
525
  /* id 7, wireType 2 =*/
518
526
  58
519
527
  ).fork()).ldelim();
528
+ if (message.mute != null && Object.hasOwnProperty.call(message, "mute"))
529
+ writer.uint32(
530
+ /* id 8, wireType 0 =*/
531
+ 64
532
+ ).bool(message.mute);
533
+ if (message.automationLevel != null && Object.hasOwnProperty.call(message, "automationLevel"))
534
+ writer.uint32(
535
+ /* id 9, wireType 5 =*/
536
+ 77
537
+ ).float(message.automationLevel);
538
+ if (message.automationMute != null && Object.hasOwnProperty.call(message, "automationMute"))
539
+ writer.uint32(
540
+ /* id 10, wireType 0 =*/
541
+ 80
542
+ ).bool(message.automationMute);
520
543
  return writer;
521
544
  };
522
545
  AudioMixerChannel.encodeDelimited = function encodeDelimited(message, writer) {
@@ -568,6 +591,18 @@ var sesame = $root.sesame = (() => {
568
591
  message.plugins.push($root.sesame.v1.audio.AudioPlugin.decode(reader, reader.uint32()));
569
592
  break;
570
593
  }
594
+ case 8: {
595
+ message.mute = reader.bool();
596
+ break;
597
+ }
598
+ case 9: {
599
+ message.automationLevel = reader.float();
600
+ break;
601
+ }
602
+ case 10: {
603
+ message.automationMute = reader.bool();
604
+ break;
605
+ }
571
606
  default:
572
607
  reader.skipType(tag & 7);
573
608
  break;
@@ -583,6 +618,7 @@ var sesame = $root.sesame = (() => {
583
618
  AudioMixerChannel.verify = function verify(message) {
584
619
  if (typeof message !== "object" || message === null)
585
620
  return "object expected";
621
+ let properties = {};
586
622
  if (message.id != null && message.hasOwnProperty("id")) {
587
623
  if (!$util.isString(message.id))
588
624
  return "id: string expected";
@@ -624,6 +660,19 @@ var sesame = $root.sesame = (() => {
624
660
  return "plugins." + error;
625
661
  }
626
662
  }
663
+ if (message.mute != null && message.hasOwnProperty("mute")) {
664
+ if (typeof message.mute !== "boolean")
665
+ return "mute: boolean expected";
666
+ }
667
+ if (message.automationLevel != null && message.hasOwnProperty("automationLevel")) {
668
+ properties._automationLevel = 1;
669
+ if (typeof message.automationLevel !== "number")
670
+ return "automationLevel: number expected";
671
+ }
672
+ if (message.automationMute != null && message.hasOwnProperty("automationMute")) {
673
+ if (typeof message.automationMute !== "boolean")
674
+ return "automationMute: boolean expected";
675
+ }
627
676
  return null;
628
677
  };
629
678
  AudioMixerChannel.fromObject = function fromObject(object) {
@@ -675,6 +724,12 @@ var sesame = $root.sesame = (() => {
675
724
  message.plugins[i] = $root.sesame.v1.audio.AudioPlugin.fromObject(object.plugins[i]);
676
725
  }
677
726
  }
727
+ if (object.mute != null)
728
+ message.mute = Boolean(object.mute);
729
+ if (object.automationLevel != null)
730
+ message.automationLevel = Number(object.automationLevel);
731
+ if (object.automationMute != null)
732
+ message.automationMute = Boolean(object.automationMute);
678
733
  return message;
679
734
  };
680
735
  AudioMixerChannel.toObject = function toObject(message, options) {
@@ -691,6 +746,8 @@ var sesame = $root.sesame = (() => {
691
746
  object.channelType = options.enums === String ? "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED" : 0;
692
747
  object.level = 0;
693
748
  object.pan = 0;
749
+ object.mute = false;
750
+ object.automationMute = false;
694
751
  }
695
752
  if (message.id != null && message.hasOwnProperty("id"))
696
753
  object.id = message.id;
@@ -712,6 +769,15 @@ var sesame = $root.sesame = (() => {
712
769
  for (let j = 0; j < message.plugins.length; ++j)
713
770
  object.plugins[j] = $root.sesame.v1.audio.AudioPlugin.toObject(message.plugins[j], options);
714
771
  }
772
+ if (message.mute != null && message.hasOwnProperty("mute"))
773
+ object.mute = message.mute;
774
+ if (message.automationLevel != null && message.hasOwnProperty("automationLevel")) {
775
+ object.automationLevel = options.json && !isFinite(message.automationLevel) ? String(message.automationLevel) : message.automationLevel;
776
+ if (options.oneofs)
777
+ object._automationLevel = "automationLevel";
778
+ }
779
+ if (message.automationMute != null && message.hasOwnProperty("automationMute"))
780
+ object.automationMute = message.automationMute;
715
781
  return object;
716
782
  };
717
783
  AudioMixerChannel.prototype.toJSON = function toJSON() {
@@ -725,9 +791,162 @@ var sesame = $root.sesame = (() => {
725
791
  };
726
792
  return AudioMixerChannel;
727
793
  }();
794
+ audio.AudioMixerOutput = function() {
795
+ function AudioMixerOutput(properties) {
796
+ this.excludedChannelIds = [];
797
+ if (properties) {
798
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
799
+ if (properties[keys[i]] != null)
800
+ this[keys[i]] = properties[keys[i]];
801
+ }
802
+ }
803
+ AudioMixerOutput.prototype.id = "";
804
+ AudioMixerOutput.prototype.excludedChannelIds = $util.emptyArray;
805
+ AudioMixerOutput.prototype.includeMasterPlugins = null;
806
+ let $oneOfFields;
807
+ Object.defineProperty(AudioMixerOutput.prototype, "_includeMasterPlugins", {
808
+ get: $util.oneOfGetter($oneOfFields = ["includeMasterPlugins"]),
809
+ set: $util.oneOfSetter($oneOfFields)
810
+ });
811
+ AudioMixerOutput.create = function create(properties) {
812
+ return new AudioMixerOutput(properties);
813
+ };
814
+ AudioMixerOutput.encode = function encode(message, writer) {
815
+ if (!writer)
816
+ writer = $Writer.create();
817
+ if (message.id != null && Object.hasOwnProperty.call(message, "id"))
818
+ writer.uint32(
819
+ /* id 1, wireType 2 =*/
820
+ 10
821
+ ).string(message.id);
822
+ if (message.excludedChannelIds != null && message.excludedChannelIds.length)
823
+ for (let i = 0; i < message.excludedChannelIds.length; ++i)
824
+ writer.uint32(
825
+ /* id 2, wireType 2 =*/
826
+ 18
827
+ ).string(message.excludedChannelIds[i]);
828
+ if (message.includeMasterPlugins != null && Object.hasOwnProperty.call(message, "includeMasterPlugins"))
829
+ writer.uint32(
830
+ /* id 3, wireType 0 =*/
831
+ 24
832
+ ).bool(message.includeMasterPlugins);
833
+ return writer;
834
+ };
835
+ AudioMixerOutput.encodeDelimited = function encodeDelimited(message, writer) {
836
+ return this.encode(message, writer).ldelim();
837
+ };
838
+ AudioMixerOutput.decode = function decode(reader, length, error) {
839
+ if (!(reader instanceof $Reader))
840
+ reader = $Reader.create(reader);
841
+ let end = length === void 0 ? reader.len : reader.pos + length, message = new $root.sesame.v1.audio.AudioMixerOutput();
842
+ while (reader.pos < end) {
843
+ let tag = reader.uint32();
844
+ if (tag === error)
845
+ break;
846
+ switch (tag >>> 3) {
847
+ case 1: {
848
+ message.id = reader.string();
849
+ break;
850
+ }
851
+ case 2: {
852
+ if (!(message.excludedChannelIds && message.excludedChannelIds.length))
853
+ message.excludedChannelIds = [];
854
+ message.excludedChannelIds.push(reader.string());
855
+ break;
856
+ }
857
+ case 3: {
858
+ message.includeMasterPlugins = reader.bool();
859
+ break;
860
+ }
861
+ default:
862
+ reader.skipType(tag & 7);
863
+ break;
864
+ }
865
+ }
866
+ return message;
867
+ };
868
+ AudioMixerOutput.decodeDelimited = function decodeDelimited(reader) {
869
+ if (!(reader instanceof $Reader))
870
+ reader = new $Reader(reader);
871
+ return this.decode(reader, reader.uint32());
872
+ };
873
+ AudioMixerOutput.verify = function verify(message) {
874
+ if (typeof message !== "object" || message === null)
875
+ return "object expected";
876
+ let properties = {};
877
+ if (message.id != null && message.hasOwnProperty("id")) {
878
+ if (!$util.isString(message.id))
879
+ return "id: string expected";
880
+ }
881
+ if (message.excludedChannelIds != null && message.hasOwnProperty("excludedChannelIds")) {
882
+ if (!Array.isArray(message.excludedChannelIds))
883
+ return "excludedChannelIds: array expected";
884
+ for (let i = 0; i < message.excludedChannelIds.length; ++i)
885
+ if (!$util.isString(message.excludedChannelIds[i]))
886
+ return "excludedChannelIds: string[] expected";
887
+ }
888
+ if (message.includeMasterPlugins != null && message.hasOwnProperty("includeMasterPlugins")) {
889
+ properties._includeMasterPlugins = 1;
890
+ if (typeof message.includeMasterPlugins !== "boolean")
891
+ return "includeMasterPlugins: boolean expected";
892
+ }
893
+ return null;
894
+ };
895
+ AudioMixerOutput.fromObject = function fromObject(object) {
896
+ if (object instanceof $root.sesame.v1.audio.AudioMixerOutput)
897
+ return object;
898
+ let message = new $root.sesame.v1.audio.AudioMixerOutput();
899
+ if (object.id != null)
900
+ message.id = String(object.id);
901
+ if (object.excludedChannelIds) {
902
+ if (!Array.isArray(object.excludedChannelIds))
903
+ throw TypeError(".sesame.v1.audio.AudioMixerOutput.excludedChannelIds: array expected");
904
+ message.excludedChannelIds = [];
905
+ for (let i = 0; i < object.excludedChannelIds.length; ++i)
906
+ message.excludedChannelIds[i] = String(object.excludedChannelIds[i]);
907
+ }
908
+ if (object.includeMasterPlugins != null)
909
+ message.includeMasterPlugins = Boolean(object.includeMasterPlugins);
910
+ return message;
911
+ };
912
+ AudioMixerOutput.toObject = function toObject(message, options) {
913
+ if (!options)
914
+ options = {};
915
+ let object = {};
916
+ if (options.arrays || options.defaults)
917
+ object.excludedChannelIds = [];
918
+ if (options.defaults)
919
+ object.id = "";
920
+ if (message.id != null && message.hasOwnProperty("id"))
921
+ object.id = message.id;
922
+ if (message.excludedChannelIds && message.excludedChannelIds.length) {
923
+ object.excludedChannelIds = [];
924
+ for (let j = 0; j < message.excludedChannelIds.length; ++j)
925
+ object.excludedChannelIds[j] = message.excludedChannelIds[j];
926
+ }
927
+ if (message.includeMasterPlugins != null && message.hasOwnProperty("includeMasterPlugins")) {
928
+ object.includeMasterPlugins = message.includeMasterPlugins;
929
+ if (options.oneofs)
930
+ object._includeMasterPlugins = "includeMasterPlugins";
931
+ }
932
+ return object;
933
+ };
934
+ AudioMixerOutput.prototype.toJSON = function toJSON() {
935
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
936
+ };
937
+ AudioMixerOutput.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
938
+ if (typeUrlPrefix === void 0) {
939
+ typeUrlPrefix = "type.googleapis.com";
940
+ }
941
+ return typeUrlPrefix + "/sesame.v1.audio.AudioMixerOutput";
942
+ };
943
+ return AudioMixerOutput;
944
+ }();
728
945
  audio.AudioMixerConfig = function() {
729
946
  function AudioMixerConfig(properties) {
730
947
  this.channels = [];
948
+ this.outputs = [];
949
+ this.masterPlugins = [];
731
950
  if (properties) {
732
951
  for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
733
952
  if (properties[keys[i]] != null)
@@ -737,6 +956,19 @@ var sesame = $root.sesame = (() => {
737
956
  AudioMixerConfig.prototype.channels = $util.emptyArray;
738
957
  AudioMixerConfig.prototype.outputType = 0;
739
958
  AudioMixerConfig.prototype.order = 0;
959
+ AudioMixerConfig.prototype.outputs = $util.emptyArray;
960
+ AudioMixerConfig.prototype.masterLevel = null;
961
+ AudioMixerConfig.prototype.masterAutomationLevel = null;
962
+ AudioMixerConfig.prototype.masterPlugins = $util.emptyArray;
963
+ let $oneOfFields;
964
+ Object.defineProperty(AudioMixerConfig.prototype, "_masterLevel", {
965
+ get: $util.oneOfGetter($oneOfFields = ["masterLevel"]),
966
+ set: $util.oneOfSetter($oneOfFields)
967
+ });
968
+ Object.defineProperty(AudioMixerConfig.prototype, "_masterAutomationLevel", {
969
+ get: $util.oneOfGetter($oneOfFields = ["masterAutomationLevel"]),
970
+ set: $util.oneOfSetter($oneOfFields)
971
+ });
740
972
  AudioMixerConfig.create = function create(properties) {
741
973
  return new AudioMixerConfig(properties);
742
974
  };
@@ -759,6 +991,28 @@ var sesame = $root.sesame = (() => {
759
991
  /* id 3, wireType 0 =*/
760
992
  24
761
993
  ).uint32(message.order);
994
+ if (message.outputs != null && message.outputs.length)
995
+ for (let i = 0; i < message.outputs.length; ++i)
996
+ $root.sesame.v1.audio.AudioMixerOutput.encode(message.outputs[i], writer.uint32(
997
+ /* id 4, wireType 2 =*/
998
+ 34
999
+ ).fork()).ldelim();
1000
+ if (message.masterLevel != null && Object.hasOwnProperty.call(message, "masterLevel"))
1001
+ writer.uint32(
1002
+ /* id 5, wireType 5 =*/
1003
+ 45
1004
+ ).float(message.masterLevel);
1005
+ if (message.masterAutomationLevel != null && Object.hasOwnProperty.call(message, "masterAutomationLevel"))
1006
+ writer.uint32(
1007
+ /* id 6, wireType 5 =*/
1008
+ 53
1009
+ ).float(message.masterAutomationLevel);
1010
+ if (message.masterPlugins != null && message.masterPlugins.length)
1011
+ for (let i = 0; i < message.masterPlugins.length; ++i)
1012
+ $root.sesame.v1.audio.AudioPlugin.encode(message.masterPlugins[i], writer.uint32(
1013
+ /* id 7, wireType 2 =*/
1014
+ 58
1015
+ ).fork()).ldelim();
762
1016
  return writer;
763
1017
  };
764
1018
  AudioMixerConfig.encodeDelimited = function encodeDelimited(message, writer) {
@@ -787,6 +1041,26 @@ var sesame = $root.sesame = (() => {
787
1041
  message.order = reader.uint32();
788
1042
  break;
789
1043
  }
1044
+ case 4: {
1045
+ if (!(message.outputs && message.outputs.length))
1046
+ message.outputs = [];
1047
+ message.outputs.push($root.sesame.v1.audio.AudioMixerOutput.decode(reader, reader.uint32()));
1048
+ break;
1049
+ }
1050
+ case 5: {
1051
+ message.masterLevel = reader.float();
1052
+ break;
1053
+ }
1054
+ case 6: {
1055
+ message.masterAutomationLevel = reader.float();
1056
+ break;
1057
+ }
1058
+ case 7: {
1059
+ if (!(message.masterPlugins && message.masterPlugins.length))
1060
+ message.masterPlugins = [];
1061
+ message.masterPlugins.push($root.sesame.v1.audio.AudioPlugin.decode(reader, reader.uint32()));
1062
+ break;
1063
+ }
790
1064
  default:
791
1065
  reader.skipType(tag & 7);
792
1066
  break;
@@ -802,6 +1076,7 @@ var sesame = $root.sesame = (() => {
802
1076
  AudioMixerConfig.verify = function verify(message) {
803
1077
  if (typeof message !== "object" || message === null)
804
1078
  return "object expected";
1079
+ let properties = {};
805
1080
  if (message.channels != null && message.hasOwnProperty("channels")) {
806
1081
  if (!Array.isArray(message.channels))
807
1082
  return "channels: array expected";
@@ -824,6 +1099,34 @@ var sesame = $root.sesame = (() => {
824
1099
  if (!$util.isInteger(message.order))
825
1100
  return "order: integer expected";
826
1101
  }
1102
+ if (message.outputs != null && message.hasOwnProperty("outputs")) {
1103
+ if (!Array.isArray(message.outputs))
1104
+ return "outputs: array expected";
1105
+ for (let i = 0; i < message.outputs.length; ++i) {
1106
+ let error = $root.sesame.v1.audio.AudioMixerOutput.verify(message.outputs[i]);
1107
+ if (error)
1108
+ return "outputs." + error;
1109
+ }
1110
+ }
1111
+ if (message.masterLevel != null && message.hasOwnProperty("masterLevel")) {
1112
+ properties._masterLevel = 1;
1113
+ if (typeof message.masterLevel !== "number")
1114
+ return "masterLevel: number expected";
1115
+ }
1116
+ if (message.masterAutomationLevel != null && message.hasOwnProperty("masterAutomationLevel")) {
1117
+ properties._masterAutomationLevel = 1;
1118
+ if (typeof message.masterAutomationLevel !== "number")
1119
+ return "masterAutomationLevel: number expected";
1120
+ }
1121
+ if (message.masterPlugins != null && message.hasOwnProperty("masterPlugins")) {
1122
+ if (!Array.isArray(message.masterPlugins))
1123
+ return "masterPlugins: array expected";
1124
+ for (let i = 0; i < message.masterPlugins.length; ++i) {
1125
+ let error = $root.sesame.v1.audio.AudioPlugin.verify(message.masterPlugins[i]);
1126
+ if (error)
1127
+ return "masterPlugins." + error;
1128
+ }
1129
+ }
827
1130
  return null;
828
1131
  };
829
1132
  AudioMixerConfig.fromObject = function fromObject(object) {
@@ -862,14 +1165,41 @@ var sesame = $root.sesame = (() => {
862
1165
  }
863
1166
  if (object.order != null)
864
1167
  message.order = object.order >>> 0;
1168
+ if (object.outputs) {
1169
+ if (!Array.isArray(object.outputs))
1170
+ throw TypeError(".sesame.v1.audio.AudioMixerConfig.outputs: array expected");
1171
+ message.outputs = [];
1172
+ for (let i = 0; i < object.outputs.length; ++i) {
1173
+ if (typeof object.outputs[i] !== "object")
1174
+ throw TypeError(".sesame.v1.audio.AudioMixerConfig.outputs: object expected");
1175
+ message.outputs[i] = $root.sesame.v1.audio.AudioMixerOutput.fromObject(object.outputs[i]);
1176
+ }
1177
+ }
1178
+ if (object.masterLevel != null)
1179
+ message.masterLevel = Number(object.masterLevel);
1180
+ if (object.masterAutomationLevel != null)
1181
+ message.masterAutomationLevel = Number(object.masterAutomationLevel);
1182
+ if (object.masterPlugins) {
1183
+ if (!Array.isArray(object.masterPlugins))
1184
+ throw TypeError(".sesame.v1.audio.AudioMixerConfig.masterPlugins: array expected");
1185
+ message.masterPlugins = [];
1186
+ for (let i = 0; i < object.masterPlugins.length; ++i) {
1187
+ if (typeof object.masterPlugins[i] !== "object")
1188
+ throw TypeError(".sesame.v1.audio.AudioMixerConfig.masterPlugins: object expected");
1189
+ message.masterPlugins[i] = $root.sesame.v1.audio.AudioPlugin.fromObject(object.masterPlugins[i]);
1190
+ }
1191
+ }
865
1192
  return message;
866
1193
  };
867
1194
  AudioMixerConfig.toObject = function toObject(message, options) {
868
1195
  if (!options)
869
1196
  options = {};
870
1197
  let object = {};
871
- if (options.arrays || options.defaults)
1198
+ if (options.arrays || options.defaults) {
872
1199
  object.channels = [];
1200
+ object.outputs = [];
1201
+ object.masterPlugins = [];
1202
+ }
873
1203
  if (options.defaults) {
874
1204
  object.outputType = options.enums === String ? "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED" : 0;
875
1205
  object.order = 0;
@@ -883,6 +1213,26 @@ var sesame = $root.sesame = (() => {
883
1213
  object.outputType = options.enums === String ? $root.sesame.v1.audio.AudioMixerChannelType[message.outputType] === void 0 ? message.outputType : $root.sesame.v1.audio.AudioMixerChannelType[message.outputType] : message.outputType;
884
1214
  if (message.order != null && message.hasOwnProperty("order"))
885
1215
  object.order = message.order;
1216
+ if (message.outputs && message.outputs.length) {
1217
+ object.outputs = [];
1218
+ for (let j = 0; j < message.outputs.length; ++j)
1219
+ object.outputs[j] = $root.sesame.v1.audio.AudioMixerOutput.toObject(message.outputs[j], options);
1220
+ }
1221
+ if (message.masterLevel != null && message.hasOwnProperty("masterLevel")) {
1222
+ object.masterLevel = options.json && !isFinite(message.masterLevel) ? String(message.masterLevel) : message.masterLevel;
1223
+ if (options.oneofs)
1224
+ object._masterLevel = "masterLevel";
1225
+ }
1226
+ if (message.masterAutomationLevel != null && message.hasOwnProperty("masterAutomationLevel")) {
1227
+ object.masterAutomationLevel = options.json && !isFinite(message.masterAutomationLevel) ? String(message.masterAutomationLevel) : message.masterAutomationLevel;
1228
+ if (options.oneofs)
1229
+ object._masterAutomationLevel = "masterAutomationLevel";
1230
+ }
1231
+ if (message.masterPlugins && message.masterPlugins.length) {
1232
+ object.masterPlugins = [];
1233
+ for (let j = 0; j < message.masterPlugins.length; ++j)
1234
+ object.masterPlugins[j] = $root.sesame.v1.audio.AudioPlugin.toObject(message.masterPlugins[j], options);
1235
+ }
886
1236
  return object;
887
1237
  };
888
1238
  AudioMixerConfig.prototype.toJSON = function toJSON() {
@@ -1594,6 +1944,11 @@ var sesame = $root.sesame = (() => {
1594
1944
  AudioChannelStatus.prototype.hasData = false;
1595
1945
  AudioChannelStatus.prototype.readErrors = 0;
1596
1946
  AudioChannelStatus.prototype.plugins = $util.emptyArray;
1947
+ AudioChannelStatus.prototype.mute = false;
1948
+ AudioChannelStatus.prototype.automationLevel = 0;
1949
+ AudioChannelStatus.prototype.automationMute = false;
1950
+ AudioChannelStatus.prototype.effectiveLevel = 0;
1951
+ AudioChannelStatus.prototype.effectiveMute = false;
1597
1952
  AudioChannelStatus.create = function create(properties) {
1598
1953
  return new AudioChannelStatus(properties);
1599
1954
  };
@@ -1617,43 +1972,405 @@ var sesame = $root.sesame = (() => {
1617
1972
  ).float(message.level);
1618
1973
  if (message.pan != null && Object.hasOwnProperty.call(message, "pan"))
1619
1974
  writer.uint32(
1620
- /* id 4, wireType 5 =*/
1621
- 37
1622
- ).float(message.pan);
1975
+ /* id 4, wireType 5 =*/
1976
+ 37
1977
+ ).float(message.pan);
1978
+ if (message.vu != null && message.vu.length) {
1979
+ writer.uint32(
1980
+ /* id 5, wireType 2 =*/
1981
+ 42
1982
+ ).fork();
1983
+ for (let i = 0; i < message.vu.length; ++i)
1984
+ writer.float(message.vu[i]);
1985
+ writer.ldelim();
1986
+ }
1987
+ if (message.hasData != null && Object.hasOwnProperty.call(message, "hasData"))
1988
+ writer.uint32(
1989
+ /* id 6, wireType 0 =*/
1990
+ 48
1991
+ ).bool(message.hasData);
1992
+ if (message.readErrors != null && Object.hasOwnProperty.call(message, "readErrors"))
1993
+ writer.uint32(
1994
+ /* id 7, wireType 0 =*/
1995
+ 56
1996
+ ).uint32(message.readErrors);
1997
+ if (message.plugins != null && message.plugins.length)
1998
+ for (let i = 0; i < message.plugins.length; ++i)
1999
+ $root.sesame.v1.audio.AudioChannelPluginStatus.encode(message.plugins[i], writer.uint32(
2000
+ /* id 8, wireType 2 =*/
2001
+ 66
2002
+ ).fork()).ldelim();
2003
+ if (message.mute != null && Object.hasOwnProperty.call(message, "mute"))
2004
+ writer.uint32(
2005
+ /* id 9, wireType 0 =*/
2006
+ 72
2007
+ ).bool(message.mute);
2008
+ if (message.automationLevel != null && Object.hasOwnProperty.call(message, "automationLevel"))
2009
+ writer.uint32(
2010
+ /* id 10, wireType 5 =*/
2011
+ 85
2012
+ ).float(message.automationLevel);
2013
+ if (message.automationMute != null && Object.hasOwnProperty.call(message, "automationMute"))
2014
+ writer.uint32(
2015
+ /* id 11, wireType 0 =*/
2016
+ 88
2017
+ ).bool(message.automationMute);
2018
+ if (message.effectiveLevel != null && Object.hasOwnProperty.call(message, "effectiveLevel"))
2019
+ writer.uint32(
2020
+ /* id 12, wireType 5 =*/
2021
+ 101
2022
+ ).float(message.effectiveLevel);
2023
+ if (message.effectiveMute != null && Object.hasOwnProperty.call(message, "effectiveMute"))
2024
+ writer.uint32(
2025
+ /* id 13, wireType 0 =*/
2026
+ 104
2027
+ ).bool(message.effectiveMute);
2028
+ return writer;
2029
+ };
2030
+ AudioChannelStatus.encodeDelimited = function encodeDelimited(message, writer) {
2031
+ return this.encode(message, writer).ldelim();
2032
+ };
2033
+ AudioChannelStatus.decode = function decode(reader, length, error) {
2034
+ if (!(reader instanceof $Reader))
2035
+ reader = $Reader.create(reader);
2036
+ let end = length === void 0 ? reader.len : reader.pos + length, message = new $root.sesame.v1.audio.AudioChannelStatus();
2037
+ while (reader.pos < end) {
2038
+ let tag = reader.uint32();
2039
+ if (tag === error)
2040
+ break;
2041
+ switch (tag >>> 3) {
2042
+ case 1: {
2043
+ message.id = reader.string();
2044
+ break;
2045
+ }
2046
+ case 2: {
2047
+ message.outputType = reader.int32();
2048
+ break;
2049
+ }
2050
+ case 3: {
2051
+ message.level = reader.float();
2052
+ break;
2053
+ }
2054
+ case 4: {
2055
+ message.pan = reader.float();
2056
+ break;
2057
+ }
2058
+ case 5: {
2059
+ if (!(message.vu && message.vu.length))
2060
+ message.vu = [];
2061
+ if ((tag & 7) === 2) {
2062
+ let end2 = reader.uint32() + reader.pos;
2063
+ while (reader.pos < end2)
2064
+ message.vu.push(reader.float());
2065
+ } else
2066
+ message.vu.push(reader.float());
2067
+ break;
2068
+ }
2069
+ case 6: {
2070
+ message.hasData = reader.bool();
2071
+ break;
2072
+ }
2073
+ case 7: {
2074
+ message.readErrors = reader.uint32();
2075
+ break;
2076
+ }
2077
+ case 8: {
2078
+ if (!(message.plugins && message.plugins.length))
2079
+ message.plugins = [];
2080
+ message.plugins.push($root.sesame.v1.audio.AudioChannelPluginStatus.decode(reader, reader.uint32()));
2081
+ break;
2082
+ }
2083
+ case 9: {
2084
+ message.mute = reader.bool();
2085
+ break;
2086
+ }
2087
+ case 10: {
2088
+ message.automationLevel = reader.float();
2089
+ break;
2090
+ }
2091
+ case 11: {
2092
+ message.automationMute = reader.bool();
2093
+ break;
2094
+ }
2095
+ case 12: {
2096
+ message.effectiveLevel = reader.float();
2097
+ break;
2098
+ }
2099
+ case 13: {
2100
+ message.effectiveMute = reader.bool();
2101
+ break;
2102
+ }
2103
+ default:
2104
+ reader.skipType(tag & 7);
2105
+ break;
2106
+ }
2107
+ }
2108
+ return message;
2109
+ };
2110
+ AudioChannelStatus.decodeDelimited = function decodeDelimited(reader) {
2111
+ if (!(reader instanceof $Reader))
2112
+ reader = new $Reader(reader);
2113
+ return this.decode(reader, reader.uint32());
2114
+ };
2115
+ AudioChannelStatus.verify = function verify(message) {
2116
+ if (typeof message !== "object" || message === null)
2117
+ return "object expected";
2118
+ if (message.id != null && message.hasOwnProperty("id")) {
2119
+ if (!$util.isString(message.id))
2120
+ return "id: string expected";
2121
+ }
2122
+ if (message.outputType != null && message.hasOwnProperty("outputType"))
2123
+ switch (message.outputType) {
2124
+ default:
2125
+ return "outputType: enum value expected";
2126
+ case 0:
2127
+ case 1:
2128
+ case 2:
2129
+ break;
2130
+ }
2131
+ if (message.level != null && message.hasOwnProperty("level")) {
2132
+ if (typeof message.level !== "number")
2133
+ return "level: number expected";
2134
+ }
2135
+ if (message.pan != null && message.hasOwnProperty("pan")) {
2136
+ if (typeof message.pan !== "number")
2137
+ return "pan: number expected";
2138
+ }
2139
+ if (message.vu != null && message.hasOwnProperty("vu")) {
2140
+ if (!Array.isArray(message.vu))
2141
+ return "vu: array expected";
2142
+ for (let i = 0; i < message.vu.length; ++i)
2143
+ if (typeof message.vu[i] !== "number")
2144
+ return "vu: number[] expected";
2145
+ }
2146
+ if (message.hasData != null && message.hasOwnProperty("hasData")) {
2147
+ if (typeof message.hasData !== "boolean")
2148
+ return "hasData: boolean expected";
2149
+ }
2150
+ if (message.readErrors != null && message.hasOwnProperty("readErrors")) {
2151
+ if (!$util.isInteger(message.readErrors))
2152
+ return "readErrors: integer expected";
2153
+ }
2154
+ if (message.plugins != null && message.hasOwnProperty("plugins")) {
2155
+ if (!Array.isArray(message.plugins))
2156
+ return "plugins: array expected";
2157
+ for (let i = 0; i < message.plugins.length; ++i) {
2158
+ let error = $root.sesame.v1.audio.AudioChannelPluginStatus.verify(message.plugins[i]);
2159
+ if (error)
2160
+ return "plugins." + error;
2161
+ }
2162
+ }
2163
+ if (message.mute != null && message.hasOwnProperty("mute")) {
2164
+ if (typeof message.mute !== "boolean")
2165
+ return "mute: boolean expected";
2166
+ }
2167
+ if (message.automationLevel != null && message.hasOwnProperty("automationLevel")) {
2168
+ if (typeof message.automationLevel !== "number")
2169
+ return "automationLevel: number expected";
2170
+ }
2171
+ if (message.automationMute != null && message.hasOwnProperty("automationMute")) {
2172
+ if (typeof message.automationMute !== "boolean")
2173
+ return "automationMute: boolean expected";
2174
+ }
2175
+ if (message.effectiveLevel != null && message.hasOwnProperty("effectiveLevel")) {
2176
+ if (typeof message.effectiveLevel !== "number")
2177
+ return "effectiveLevel: number expected";
2178
+ }
2179
+ if (message.effectiveMute != null && message.hasOwnProperty("effectiveMute")) {
2180
+ if (typeof message.effectiveMute !== "boolean")
2181
+ return "effectiveMute: boolean expected";
2182
+ }
2183
+ return null;
2184
+ };
2185
+ AudioChannelStatus.fromObject = function fromObject(object) {
2186
+ if (object instanceof $root.sesame.v1.audio.AudioChannelStatus)
2187
+ return object;
2188
+ let message = new $root.sesame.v1.audio.AudioChannelStatus();
2189
+ if (object.id != null)
2190
+ message.id = String(object.id);
2191
+ switch (object.outputType) {
2192
+ default:
2193
+ if (typeof object.outputType === "number") {
2194
+ message.outputType = object.outputType;
2195
+ break;
2196
+ }
2197
+ break;
2198
+ case "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED":
2199
+ case 0:
2200
+ message.outputType = 0;
2201
+ break;
2202
+ case "AUDIO_MIXER_CHANNEL_TYPE_MONO":
2203
+ case 1:
2204
+ message.outputType = 1;
2205
+ break;
2206
+ case "AUDIO_MIXER_CHANNEL_TYPE_STEREO":
2207
+ case 2:
2208
+ message.outputType = 2;
2209
+ break;
2210
+ }
2211
+ if (object.level != null)
2212
+ message.level = Number(object.level);
2213
+ if (object.pan != null)
2214
+ message.pan = Number(object.pan);
2215
+ if (object.vu) {
2216
+ if (!Array.isArray(object.vu))
2217
+ throw TypeError(".sesame.v1.audio.AudioChannelStatus.vu: array expected");
2218
+ message.vu = [];
2219
+ for (let i = 0; i < object.vu.length; ++i)
2220
+ message.vu[i] = Number(object.vu[i]);
2221
+ }
2222
+ if (object.hasData != null)
2223
+ message.hasData = Boolean(object.hasData);
2224
+ if (object.readErrors != null)
2225
+ message.readErrors = object.readErrors >>> 0;
2226
+ if (object.plugins) {
2227
+ if (!Array.isArray(object.plugins))
2228
+ throw TypeError(".sesame.v1.audio.AudioChannelStatus.plugins: array expected");
2229
+ message.plugins = [];
2230
+ for (let i = 0; i < object.plugins.length; ++i) {
2231
+ if (typeof object.plugins[i] !== "object")
2232
+ throw TypeError(".sesame.v1.audio.AudioChannelStatus.plugins: object expected");
2233
+ message.plugins[i] = $root.sesame.v1.audio.AudioChannelPluginStatus.fromObject(object.plugins[i]);
2234
+ }
2235
+ }
2236
+ if (object.mute != null)
2237
+ message.mute = Boolean(object.mute);
2238
+ if (object.automationLevel != null)
2239
+ message.automationLevel = Number(object.automationLevel);
2240
+ if (object.automationMute != null)
2241
+ message.automationMute = Boolean(object.automationMute);
2242
+ if (object.effectiveLevel != null)
2243
+ message.effectiveLevel = Number(object.effectiveLevel);
2244
+ if (object.effectiveMute != null)
2245
+ message.effectiveMute = Boolean(object.effectiveMute);
2246
+ return message;
2247
+ };
2248
+ AudioChannelStatus.toObject = function toObject(message, options) {
2249
+ if (!options)
2250
+ options = {};
2251
+ let object = {};
2252
+ if (options.arrays || options.defaults) {
2253
+ object.vu = [];
2254
+ object.plugins = [];
2255
+ }
2256
+ if (options.defaults) {
2257
+ object.id = "";
2258
+ object.outputType = options.enums === String ? "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED" : 0;
2259
+ object.level = 0;
2260
+ object.pan = 0;
2261
+ object.hasData = false;
2262
+ object.readErrors = 0;
2263
+ object.mute = false;
2264
+ object.automationLevel = 0;
2265
+ object.automationMute = false;
2266
+ object.effectiveLevel = 0;
2267
+ object.effectiveMute = false;
2268
+ }
2269
+ if (message.id != null && message.hasOwnProperty("id"))
2270
+ object.id = message.id;
2271
+ if (message.outputType != null && message.hasOwnProperty("outputType"))
2272
+ object.outputType = options.enums === String ? $root.sesame.v1.audio.AudioMixerChannelType[message.outputType] === void 0 ? message.outputType : $root.sesame.v1.audio.AudioMixerChannelType[message.outputType] : message.outputType;
2273
+ if (message.level != null && message.hasOwnProperty("level"))
2274
+ object.level = options.json && !isFinite(message.level) ? String(message.level) : message.level;
2275
+ if (message.pan != null && message.hasOwnProperty("pan"))
2276
+ object.pan = options.json && !isFinite(message.pan) ? String(message.pan) : message.pan;
2277
+ if (message.vu && message.vu.length) {
2278
+ object.vu = [];
2279
+ for (let j = 0; j < message.vu.length; ++j)
2280
+ object.vu[j] = options.json && !isFinite(message.vu[j]) ? String(message.vu[j]) : message.vu[j];
2281
+ }
2282
+ if (message.hasData != null && message.hasOwnProperty("hasData"))
2283
+ object.hasData = message.hasData;
2284
+ if (message.readErrors != null && message.hasOwnProperty("readErrors"))
2285
+ object.readErrors = message.readErrors;
2286
+ if (message.plugins && message.plugins.length) {
2287
+ object.plugins = [];
2288
+ for (let j = 0; j < message.plugins.length; ++j)
2289
+ object.plugins[j] = $root.sesame.v1.audio.AudioChannelPluginStatus.toObject(message.plugins[j], options);
2290
+ }
2291
+ if (message.mute != null && message.hasOwnProperty("mute"))
2292
+ object.mute = message.mute;
2293
+ if (message.automationLevel != null && message.hasOwnProperty("automationLevel"))
2294
+ object.automationLevel = options.json && !isFinite(message.automationLevel) ? String(message.automationLevel) : message.automationLevel;
2295
+ if (message.automationMute != null && message.hasOwnProperty("automationMute"))
2296
+ object.automationMute = message.automationMute;
2297
+ if (message.effectiveLevel != null && message.hasOwnProperty("effectiveLevel"))
2298
+ object.effectiveLevel = options.json && !isFinite(message.effectiveLevel) ? String(message.effectiveLevel) : message.effectiveLevel;
2299
+ if (message.effectiveMute != null && message.hasOwnProperty("effectiveMute"))
2300
+ object.effectiveMute = message.effectiveMute;
2301
+ return object;
2302
+ };
2303
+ AudioChannelStatus.prototype.toJSON = function toJSON() {
2304
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
2305
+ };
2306
+ AudioChannelStatus.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
2307
+ if (typeUrlPrefix === void 0) {
2308
+ typeUrlPrefix = "type.googleapis.com";
2309
+ }
2310
+ return typeUrlPrefix + "/sesame.v1.audio.AudioChannelStatus";
2311
+ };
2312
+ return AudioChannelStatus;
2313
+ }();
2314
+ audio.AudioMixerOutputStatus = function() {
2315
+ function AudioMixerOutputStatus(properties) {
2316
+ this.vu = [];
2317
+ this.excludedChannelIds = [];
2318
+ if (properties) {
2319
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
2320
+ if (properties[keys[i]] != null)
2321
+ this[keys[i]] = properties[keys[i]];
2322
+ }
2323
+ }
2324
+ AudioMixerOutputStatus.prototype.id = "";
2325
+ AudioMixerOutputStatus.prototype.outputType = 0;
2326
+ AudioMixerOutputStatus.prototype.vu = $util.emptyArray;
2327
+ AudioMixerOutputStatus.prototype.excludedChannelIds = $util.emptyArray;
2328
+ AudioMixerOutputStatus.prototype.includeMasterPlugins = false;
2329
+ AudioMixerOutputStatus.create = function create(properties) {
2330
+ return new AudioMixerOutputStatus(properties);
2331
+ };
2332
+ AudioMixerOutputStatus.encode = function encode(message, writer) {
2333
+ if (!writer)
2334
+ writer = $Writer.create();
2335
+ if (message.id != null && Object.hasOwnProperty.call(message, "id"))
2336
+ writer.uint32(
2337
+ /* id 1, wireType 2 =*/
2338
+ 10
2339
+ ).string(message.id);
2340
+ if (message.outputType != null && Object.hasOwnProperty.call(message, "outputType"))
2341
+ writer.uint32(
2342
+ /* id 2, wireType 0 =*/
2343
+ 16
2344
+ ).int32(message.outputType);
1623
2345
  if (message.vu != null && message.vu.length) {
1624
2346
  writer.uint32(
1625
- /* id 5, wireType 2 =*/
1626
- 42
2347
+ /* id 3, wireType 2 =*/
2348
+ 26
1627
2349
  ).fork();
1628
2350
  for (let i = 0; i < message.vu.length; ++i)
1629
2351
  writer.float(message.vu[i]);
1630
2352
  writer.ldelim();
1631
2353
  }
1632
- if (message.hasData != null && Object.hasOwnProperty.call(message, "hasData"))
1633
- writer.uint32(
1634
- /* id 6, wireType 0 =*/
1635
- 48
1636
- ).bool(message.hasData);
1637
- if (message.readErrors != null && Object.hasOwnProperty.call(message, "readErrors"))
2354
+ if (message.excludedChannelIds != null && message.excludedChannelIds.length)
2355
+ for (let i = 0; i < message.excludedChannelIds.length; ++i)
2356
+ writer.uint32(
2357
+ /* id 4, wireType 2 =*/
2358
+ 34
2359
+ ).string(message.excludedChannelIds[i]);
2360
+ if (message.includeMasterPlugins != null && Object.hasOwnProperty.call(message, "includeMasterPlugins"))
1638
2361
  writer.uint32(
1639
- /* id 7, wireType 0 =*/
1640
- 56
1641
- ).uint32(message.readErrors);
1642
- if (message.plugins != null && message.plugins.length)
1643
- for (let i = 0; i < message.plugins.length; ++i)
1644
- $root.sesame.v1.audio.AudioChannelPluginStatus.encode(message.plugins[i], writer.uint32(
1645
- /* id 8, wireType 2 =*/
1646
- 66
1647
- ).fork()).ldelim();
2362
+ /* id 5, wireType 0 =*/
2363
+ 40
2364
+ ).bool(message.includeMasterPlugins);
1648
2365
  return writer;
1649
2366
  };
1650
- AudioChannelStatus.encodeDelimited = function encodeDelimited(message, writer) {
2367
+ AudioMixerOutputStatus.encodeDelimited = function encodeDelimited(message, writer) {
1651
2368
  return this.encode(message, writer).ldelim();
1652
2369
  };
1653
- AudioChannelStatus.decode = function decode(reader, length, error) {
2370
+ AudioMixerOutputStatus.decode = function decode(reader, length, error) {
1654
2371
  if (!(reader instanceof $Reader))
1655
2372
  reader = $Reader.create(reader);
1656
- let end = length === void 0 ? reader.len : reader.pos + length, message = new $root.sesame.v1.audio.AudioChannelStatus();
2373
+ let end = length === void 0 ? reader.len : reader.pos + length, message = new $root.sesame.v1.audio.AudioMixerOutputStatus();
1657
2374
  while (reader.pos < end) {
1658
2375
  let tag = reader.uint32();
1659
2376
  if (tag === error)
@@ -1668,14 +2385,6 @@ var sesame = $root.sesame = (() => {
1668
2385
  break;
1669
2386
  }
1670
2387
  case 3: {
1671
- message.level = reader.float();
1672
- break;
1673
- }
1674
- case 4: {
1675
- message.pan = reader.float();
1676
- break;
1677
- }
1678
- case 5: {
1679
2388
  if (!(message.vu && message.vu.length))
1680
2389
  message.vu = [];
1681
2390
  if ((tag & 7) === 2) {
@@ -1686,18 +2395,14 @@ var sesame = $root.sesame = (() => {
1686
2395
  message.vu.push(reader.float());
1687
2396
  break;
1688
2397
  }
1689
- case 6: {
1690
- message.hasData = reader.bool();
1691
- break;
1692
- }
1693
- case 7: {
1694
- message.readErrors = reader.uint32();
2398
+ case 4: {
2399
+ if (!(message.excludedChannelIds && message.excludedChannelIds.length))
2400
+ message.excludedChannelIds = [];
2401
+ message.excludedChannelIds.push(reader.string());
1695
2402
  break;
1696
2403
  }
1697
- case 8: {
1698
- if (!(message.plugins && message.plugins.length))
1699
- message.plugins = [];
1700
- message.plugins.push($root.sesame.v1.audio.AudioChannelPluginStatus.decode(reader, reader.uint32()));
2404
+ case 5: {
2405
+ message.includeMasterPlugins = reader.bool();
1701
2406
  break;
1702
2407
  }
1703
2408
  default:
@@ -1707,12 +2412,12 @@ var sesame = $root.sesame = (() => {
1707
2412
  }
1708
2413
  return message;
1709
2414
  };
1710
- AudioChannelStatus.decodeDelimited = function decodeDelimited(reader) {
2415
+ AudioMixerOutputStatus.decodeDelimited = function decodeDelimited(reader) {
1711
2416
  if (!(reader instanceof $Reader))
1712
2417
  reader = new $Reader(reader);
1713
2418
  return this.decode(reader, reader.uint32());
1714
2419
  };
1715
- AudioChannelStatus.verify = function verify(message) {
2420
+ AudioMixerOutputStatus.verify = function verify(message) {
1716
2421
  if (typeof message !== "object" || message === null)
1717
2422
  return "object expected";
1718
2423
  if (message.id != null && message.hasOwnProperty("id")) {
@@ -1728,14 +2433,6 @@ var sesame = $root.sesame = (() => {
1728
2433
  case 2:
1729
2434
  break;
1730
2435
  }
1731
- if (message.level != null && message.hasOwnProperty("level")) {
1732
- if (typeof message.level !== "number")
1733
- return "level: number expected";
1734
- }
1735
- if (message.pan != null && message.hasOwnProperty("pan")) {
1736
- if (typeof message.pan !== "number")
1737
- return "pan: number expected";
1738
- }
1739
2436
  if (message.vu != null && message.hasOwnProperty("vu")) {
1740
2437
  if (!Array.isArray(message.vu))
1741
2438
  return "vu: array expected";
@@ -1743,29 +2440,23 @@ var sesame = $root.sesame = (() => {
1743
2440
  if (typeof message.vu[i] !== "number")
1744
2441
  return "vu: number[] expected";
1745
2442
  }
1746
- if (message.hasData != null && message.hasOwnProperty("hasData")) {
1747
- if (typeof message.hasData !== "boolean")
1748
- return "hasData: boolean expected";
1749
- }
1750
- if (message.readErrors != null && message.hasOwnProperty("readErrors")) {
1751
- if (!$util.isInteger(message.readErrors))
1752
- return "readErrors: integer expected";
2443
+ if (message.excludedChannelIds != null && message.hasOwnProperty("excludedChannelIds")) {
2444
+ if (!Array.isArray(message.excludedChannelIds))
2445
+ return "excludedChannelIds: array expected";
2446
+ for (let i = 0; i < message.excludedChannelIds.length; ++i)
2447
+ if (!$util.isString(message.excludedChannelIds[i]))
2448
+ return "excludedChannelIds: string[] expected";
1753
2449
  }
1754
- if (message.plugins != null && message.hasOwnProperty("plugins")) {
1755
- if (!Array.isArray(message.plugins))
1756
- return "plugins: array expected";
1757
- for (let i = 0; i < message.plugins.length; ++i) {
1758
- let error = $root.sesame.v1.audio.AudioChannelPluginStatus.verify(message.plugins[i]);
1759
- if (error)
1760
- return "plugins." + error;
1761
- }
2450
+ if (message.includeMasterPlugins != null && message.hasOwnProperty("includeMasterPlugins")) {
2451
+ if (typeof message.includeMasterPlugins !== "boolean")
2452
+ return "includeMasterPlugins: boolean expected";
1762
2453
  }
1763
2454
  return null;
1764
2455
  };
1765
- AudioChannelStatus.fromObject = function fromObject(object) {
1766
- if (object instanceof $root.sesame.v1.audio.AudioChannelStatus)
2456
+ AudioMixerOutputStatus.fromObject = function fromObject(object) {
2457
+ if (object instanceof $root.sesame.v1.audio.AudioMixerOutputStatus)
1767
2458
  return object;
1768
- let message = new $root.sesame.v1.audio.AudioChannelStatus();
2459
+ let message = new $root.sesame.v1.audio.AudioMixerOutputStatus();
1769
2460
  if (object.id != null)
1770
2461
  message.id = String(object.id);
1771
2462
  switch (object.outputType) {
@@ -1788,88 +2479,72 @@ var sesame = $root.sesame = (() => {
1788
2479
  message.outputType = 2;
1789
2480
  break;
1790
2481
  }
1791
- if (object.level != null)
1792
- message.level = Number(object.level);
1793
- if (object.pan != null)
1794
- message.pan = Number(object.pan);
1795
2482
  if (object.vu) {
1796
2483
  if (!Array.isArray(object.vu))
1797
- throw TypeError(".sesame.v1.audio.AudioChannelStatus.vu: array expected");
2484
+ throw TypeError(".sesame.v1.audio.AudioMixerOutputStatus.vu: array expected");
1798
2485
  message.vu = [];
1799
2486
  for (let i = 0; i < object.vu.length; ++i)
1800
2487
  message.vu[i] = Number(object.vu[i]);
1801
2488
  }
1802
- if (object.hasData != null)
1803
- message.hasData = Boolean(object.hasData);
1804
- if (object.readErrors != null)
1805
- message.readErrors = object.readErrors >>> 0;
1806
- if (object.plugins) {
1807
- if (!Array.isArray(object.plugins))
1808
- throw TypeError(".sesame.v1.audio.AudioChannelStatus.plugins: array expected");
1809
- message.plugins = [];
1810
- for (let i = 0; i < object.plugins.length; ++i) {
1811
- if (typeof object.plugins[i] !== "object")
1812
- throw TypeError(".sesame.v1.audio.AudioChannelStatus.plugins: object expected");
1813
- message.plugins[i] = $root.sesame.v1.audio.AudioChannelPluginStatus.fromObject(object.plugins[i]);
1814
- }
2489
+ if (object.excludedChannelIds) {
2490
+ if (!Array.isArray(object.excludedChannelIds))
2491
+ throw TypeError(".sesame.v1.audio.AudioMixerOutputStatus.excludedChannelIds: array expected");
2492
+ message.excludedChannelIds = [];
2493
+ for (let i = 0; i < object.excludedChannelIds.length; ++i)
2494
+ message.excludedChannelIds[i] = String(object.excludedChannelIds[i]);
1815
2495
  }
2496
+ if (object.includeMasterPlugins != null)
2497
+ message.includeMasterPlugins = Boolean(object.includeMasterPlugins);
1816
2498
  return message;
1817
2499
  };
1818
- AudioChannelStatus.toObject = function toObject(message, options) {
2500
+ AudioMixerOutputStatus.toObject = function toObject(message, options) {
1819
2501
  if (!options)
1820
2502
  options = {};
1821
2503
  let object = {};
1822
2504
  if (options.arrays || options.defaults) {
1823
2505
  object.vu = [];
1824
- object.plugins = [];
2506
+ object.excludedChannelIds = [];
1825
2507
  }
1826
2508
  if (options.defaults) {
1827
2509
  object.id = "";
1828
2510
  object.outputType = options.enums === String ? "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED" : 0;
1829
- object.level = 0;
1830
- object.pan = 0;
1831
- object.hasData = false;
1832
- object.readErrors = 0;
2511
+ object.includeMasterPlugins = false;
1833
2512
  }
1834
2513
  if (message.id != null && message.hasOwnProperty("id"))
1835
2514
  object.id = message.id;
1836
2515
  if (message.outputType != null && message.hasOwnProperty("outputType"))
1837
2516
  object.outputType = options.enums === String ? $root.sesame.v1.audio.AudioMixerChannelType[message.outputType] === void 0 ? message.outputType : $root.sesame.v1.audio.AudioMixerChannelType[message.outputType] : message.outputType;
1838
- if (message.level != null && message.hasOwnProperty("level"))
1839
- object.level = options.json && !isFinite(message.level) ? String(message.level) : message.level;
1840
- if (message.pan != null && message.hasOwnProperty("pan"))
1841
- object.pan = options.json && !isFinite(message.pan) ? String(message.pan) : message.pan;
1842
2517
  if (message.vu && message.vu.length) {
1843
2518
  object.vu = [];
1844
2519
  for (let j = 0; j < message.vu.length; ++j)
1845
2520
  object.vu[j] = options.json && !isFinite(message.vu[j]) ? String(message.vu[j]) : message.vu[j];
1846
2521
  }
1847
- if (message.hasData != null && message.hasOwnProperty("hasData"))
1848
- object.hasData = message.hasData;
1849
- if (message.readErrors != null && message.hasOwnProperty("readErrors"))
1850
- object.readErrors = message.readErrors;
1851
- if (message.plugins && message.plugins.length) {
1852
- object.plugins = [];
1853
- for (let j = 0; j < message.plugins.length; ++j)
1854
- object.plugins[j] = $root.sesame.v1.audio.AudioChannelPluginStatus.toObject(message.plugins[j], options);
2522
+ if (message.excludedChannelIds && message.excludedChannelIds.length) {
2523
+ object.excludedChannelIds = [];
2524
+ for (let j = 0; j < message.excludedChannelIds.length; ++j)
2525
+ object.excludedChannelIds[j] = message.excludedChannelIds[j];
1855
2526
  }
2527
+ if (message.includeMasterPlugins != null && message.hasOwnProperty("includeMasterPlugins"))
2528
+ object.includeMasterPlugins = message.includeMasterPlugins;
1856
2529
  return object;
1857
2530
  };
1858
- AudioChannelStatus.prototype.toJSON = function toJSON() {
2531
+ AudioMixerOutputStatus.prototype.toJSON = function toJSON() {
1859
2532
  return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
1860
2533
  };
1861
- AudioChannelStatus.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
2534
+ AudioMixerOutputStatus.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
1862
2535
  if (typeUrlPrefix === void 0) {
1863
2536
  typeUrlPrefix = "type.googleapis.com";
1864
2537
  }
1865
- return typeUrlPrefix + "/sesame.v1.audio.AudioChannelStatus";
2538
+ return typeUrlPrefix + "/sesame.v1.audio.AudioMixerOutputStatus";
1866
2539
  };
1867
- return AudioChannelStatus;
2540
+ return AudioMixerOutputStatus;
1868
2541
  }();
1869
2542
  audio.AudioMixerStatus = function() {
1870
2543
  function AudioMixerStatus(properties) {
1871
2544
  this.vu = [];
1872
2545
  this.channels = [];
2546
+ this.masterPlugins = [];
2547
+ this.outputs = [];
1873
2548
  if (properties) {
1874
2549
  for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
1875
2550
  if (properties[keys[i]] != null)
@@ -1880,6 +2555,11 @@ var sesame = $root.sesame = (() => {
1880
2555
  AudioMixerStatus.prototype.outputType = 0;
1881
2556
  AudioMixerStatus.prototype.vu = $util.emptyArray;
1882
2557
  AudioMixerStatus.prototype.channels = $util.emptyArray;
2558
+ AudioMixerStatus.prototype.masterLevel = 0;
2559
+ AudioMixerStatus.prototype.masterAutomationLevel = 0;
2560
+ AudioMixerStatus.prototype.masterEffectiveLevel = 0;
2561
+ AudioMixerStatus.prototype.masterPlugins = $util.emptyArray;
2562
+ AudioMixerStatus.prototype.outputs = $util.emptyArray;
1883
2563
  AudioMixerStatus.create = function create(properties) {
1884
2564
  return new AudioMixerStatus(properties);
1885
2565
  };
@@ -1911,6 +2591,33 @@ var sesame = $root.sesame = (() => {
1911
2591
  /* id 4, wireType 2 =*/
1912
2592
  34
1913
2593
  ).fork()).ldelim();
2594
+ if (message.masterLevel != null && Object.hasOwnProperty.call(message, "masterLevel"))
2595
+ writer.uint32(
2596
+ /* id 5, wireType 5 =*/
2597
+ 45
2598
+ ).float(message.masterLevel);
2599
+ if (message.masterAutomationLevel != null && Object.hasOwnProperty.call(message, "masterAutomationLevel"))
2600
+ writer.uint32(
2601
+ /* id 6, wireType 5 =*/
2602
+ 53
2603
+ ).float(message.masterAutomationLevel);
2604
+ if (message.masterEffectiveLevel != null && Object.hasOwnProperty.call(message, "masterEffectiveLevel"))
2605
+ writer.uint32(
2606
+ /* id 7, wireType 5 =*/
2607
+ 61
2608
+ ).float(message.masterEffectiveLevel);
2609
+ if (message.masterPlugins != null && message.masterPlugins.length)
2610
+ for (let i = 0; i < message.masterPlugins.length; ++i)
2611
+ $root.sesame.v1.audio.AudioChannelPluginStatus.encode(message.masterPlugins[i], writer.uint32(
2612
+ /* id 8, wireType 2 =*/
2613
+ 66
2614
+ ).fork()).ldelim();
2615
+ if (message.outputs != null && message.outputs.length)
2616
+ for (let i = 0; i < message.outputs.length; ++i)
2617
+ $root.sesame.v1.audio.AudioMixerOutputStatus.encode(message.outputs[i], writer.uint32(
2618
+ /* id 9, wireType 2 =*/
2619
+ 74
2620
+ ).fork()).ldelim();
1914
2621
  return writer;
1915
2622
  };
1916
2623
  AudioMixerStatus.encodeDelimited = function encodeDelimited(message, writer) {
@@ -1950,6 +2657,30 @@ var sesame = $root.sesame = (() => {
1950
2657
  message.channels.push($root.sesame.v1.audio.AudioChannelStatus.decode(reader, reader.uint32()));
1951
2658
  break;
1952
2659
  }
2660
+ case 5: {
2661
+ message.masterLevel = reader.float();
2662
+ break;
2663
+ }
2664
+ case 6: {
2665
+ message.masterAutomationLevel = reader.float();
2666
+ break;
2667
+ }
2668
+ case 7: {
2669
+ message.masterEffectiveLevel = reader.float();
2670
+ break;
2671
+ }
2672
+ case 8: {
2673
+ if (!(message.masterPlugins && message.masterPlugins.length))
2674
+ message.masterPlugins = [];
2675
+ message.masterPlugins.push($root.sesame.v1.audio.AudioChannelPluginStatus.decode(reader, reader.uint32()));
2676
+ break;
2677
+ }
2678
+ case 9: {
2679
+ if (!(message.outputs && message.outputs.length))
2680
+ message.outputs = [];
2681
+ message.outputs.push($root.sesame.v1.audio.AudioMixerOutputStatus.decode(reader, reader.uint32()));
2682
+ break;
2683
+ }
1953
2684
  default:
1954
2685
  reader.skipType(tag & 7);
1955
2686
  break;
@@ -1994,6 +2725,36 @@ var sesame = $root.sesame = (() => {
1994
2725
  return "channels." + error;
1995
2726
  }
1996
2727
  }
2728
+ if (message.masterLevel != null && message.hasOwnProperty("masterLevel")) {
2729
+ if (typeof message.masterLevel !== "number")
2730
+ return "masterLevel: number expected";
2731
+ }
2732
+ if (message.masterAutomationLevel != null && message.hasOwnProperty("masterAutomationLevel")) {
2733
+ if (typeof message.masterAutomationLevel !== "number")
2734
+ return "masterAutomationLevel: number expected";
2735
+ }
2736
+ if (message.masterEffectiveLevel != null && message.hasOwnProperty("masterEffectiveLevel")) {
2737
+ if (typeof message.masterEffectiveLevel !== "number")
2738
+ return "masterEffectiveLevel: number expected";
2739
+ }
2740
+ if (message.masterPlugins != null && message.hasOwnProperty("masterPlugins")) {
2741
+ if (!Array.isArray(message.masterPlugins))
2742
+ return "masterPlugins: array expected";
2743
+ for (let i = 0; i < message.masterPlugins.length; ++i) {
2744
+ let error = $root.sesame.v1.audio.AudioChannelPluginStatus.verify(message.masterPlugins[i]);
2745
+ if (error)
2746
+ return "masterPlugins." + error;
2747
+ }
2748
+ }
2749
+ if (message.outputs != null && message.hasOwnProperty("outputs")) {
2750
+ if (!Array.isArray(message.outputs))
2751
+ return "outputs: array expected";
2752
+ for (let i = 0; i < message.outputs.length; ++i) {
2753
+ let error = $root.sesame.v1.audio.AudioMixerOutputStatus.verify(message.outputs[i]);
2754
+ if (error)
2755
+ return "outputs." + error;
2756
+ }
2757
+ }
1997
2758
  return null;
1998
2759
  };
1999
2760
  AudioMixerStatus.fromObject = function fromObject(object) {
@@ -2039,6 +2800,32 @@ var sesame = $root.sesame = (() => {
2039
2800
  message.channels[i] = $root.sesame.v1.audio.AudioChannelStatus.fromObject(object.channels[i]);
2040
2801
  }
2041
2802
  }
2803
+ if (object.masterLevel != null)
2804
+ message.masterLevel = Number(object.masterLevel);
2805
+ if (object.masterAutomationLevel != null)
2806
+ message.masterAutomationLevel = Number(object.masterAutomationLevel);
2807
+ if (object.masterEffectiveLevel != null)
2808
+ message.masterEffectiveLevel = Number(object.masterEffectiveLevel);
2809
+ if (object.masterPlugins) {
2810
+ if (!Array.isArray(object.masterPlugins))
2811
+ throw TypeError(".sesame.v1.audio.AudioMixerStatus.masterPlugins: array expected");
2812
+ message.masterPlugins = [];
2813
+ for (let i = 0; i < object.masterPlugins.length; ++i) {
2814
+ if (typeof object.masterPlugins[i] !== "object")
2815
+ throw TypeError(".sesame.v1.audio.AudioMixerStatus.masterPlugins: object expected");
2816
+ message.masterPlugins[i] = $root.sesame.v1.audio.AudioChannelPluginStatus.fromObject(object.masterPlugins[i]);
2817
+ }
2818
+ }
2819
+ if (object.outputs) {
2820
+ if (!Array.isArray(object.outputs))
2821
+ throw TypeError(".sesame.v1.audio.AudioMixerStatus.outputs: array expected");
2822
+ message.outputs = [];
2823
+ for (let i = 0; i < object.outputs.length; ++i) {
2824
+ if (typeof object.outputs[i] !== "object")
2825
+ throw TypeError(".sesame.v1.audio.AudioMixerStatus.outputs: object expected");
2826
+ message.outputs[i] = $root.sesame.v1.audio.AudioMixerOutputStatus.fromObject(object.outputs[i]);
2827
+ }
2828
+ }
2042
2829
  return message;
2043
2830
  };
2044
2831
  AudioMixerStatus.toObject = function toObject(message, options) {
@@ -2048,10 +2835,15 @@ var sesame = $root.sesame = (() => {
2048
2835
  if (options.arrays || options.defaults) {
2049
2836
  object.vu = [];
2050
2837
  object.channels = [];
2838
+ object.masterPlugins = [];
2839
+ object.outputs = [];
2051
2840
  }
2052
2841
  if (options.defaults) {
2053
2842
  object.id = "";
2054
2843
  object.outputType = options.enums === String ? "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED" : 0;
2844
+ object.masterLevel = 0;
2845
+ object.masterAutomationLevel = 0;
2846
+ object.masterEffectiveLevel = 0;
2055
2847
  }
2056
2848
  if (message.id != null && message.hasOwnProperty("id"))
2057
2849
  object.id = message.id;
@@ -2067,6 +2859,22 @@ var sesame = $root.sesame = (() => {
2067
2859
  for (let j = 0; j < message.channels.length; ++j)
2068
2860
  object.channels[j] = $root.sesame.v1.audio.AudioChannelStatus.toObject(message.channels[j], options);
2069
2861
  }
2862
+ if (message.masterLevel != null && message.hasOwnProperty("masterLevel"))
2863
+ object.masterLevel = options.json && !isFinite(message.masterLevel) ? String(message.masterLevel) : message.masterLevel;
2864
+ if (message.masterAutomationLevel != null && message.hasOwnProperty("masterAutomationLevel"))
2865
+ object.masterAutomationLevel = options.json && !isFinite(message.masterAutomationLevel) ? String(message.masterAutomationLevel) : message.masterAutomationLevel;
2866
+ if (message.masterEffectiveLevel != null && message.hasOwnProperty("masterEffectiveLevel"))
2867
+ object.masterEffectiveLevel = options.json && !isFinite(message.masterEffectiveLevel) ? String(message.masterEffectiveLevel) : message.masterEffectiveLevel;
2868
+ if (message.masterPlugins && message.masterPlugins.length) {
2869
+ object.masterPlugins = [];
2870
+ for (let j = 0; j < message.masterPlugins.length; ++j)
2871
+ object.masterPlugins[j] = $root.sesame.v1.audio.AudioChannelPluginStatus.toObject(message.masterPlugins[j], options);
2872
+ }
2873
+ if (message.outputs && message.outputs.length) {
2874
+ object.outputs = [];
2875
+ for (let j = 0; j < message.outputs.length; ++j)
2876
+ object.outputs[j] = $root.sesame.v1.audio.AudioMixerOutputStatus.toObject(message.outputs[j], options);
2877
+ }
2070
2878
  return object;
2071
2879
  };
2072
2880
  AudioMixerStatus.prototype.toJSON = function toJSON() {
@@ -2221,6 +3029,9 @@ var sesame = $root.sesame = (() => {
2221
3029
  AudioChannelControlRequest.prototype.level = null;
2222
3030
  AudioChannelControlRequest.prototype.pan = null;
2223
3031
  AudioChannelControlRequest.prototype.plugins = $util.emptyArray;
3032
+ AudioChannelControlRequest.prototype.mute = null;
3033
+ AudioChannelControlRequest.prototype.automationLevel = null;
3034
+ AudioChannelControlRequest.prototype.automationMute = null;
2224
3035
  let $oneOfFields;
2225
3036
  Object.defineProperty(AudioChannelControlRequest.prototype, "_level", {
2226
3037
  get: $util.oneOfGetter($oneOfFields = ["level"]),
@@ -2230,6 +3041,18 @@ var sesame = $root.sesame = (() => {
2230
3041
  get: $util.oneOfGetter($oneOfFields = ["pan"]),
2231
3042
  set: $util.oneOfSetter($oneOfFields)
2232
3043
  });
3044
+ Object.defineProperty(AudioChannelControlRequest.prototype, "_mute", {
3045
+ get: $util.oneOfGetter($oneOfFields = ["mute"]),
3046
+ set: $util.oneOfSetter($oneOfFields)
3047
+ });
3048
+ Object.defineProperty(AudioChannelControlRequest.prototype, "_automationLevel", {
3049
+ get: $util.oneOfGetter($oneOfFields = ["automationLevel"]),
3050
+ set: $util.oneOfSetter($oneOfFields)
3051
+ });
3052
+ Object.defineProperty(AudioChannelControlRequest.prototype, "_automationMute", {
3053
+ get: $util.oneOfGetter($oneOfFields = ["automationMute"]),
3054
+ set: $util.oneOfSetter($oneOfFields)
3055
+ });
2233
3056
  AudioChannelControlRequest.create = function create(properties) {
2234
3057
  return new AudioChannelControlRequest(properties);
2235
3058
  };
@@ -2257,6 +3080,21 @@ var sesame = $root.sesame = (() => {
2257
3080
  /* id 4, wireType 2 =*/
2258
3081
  34
2259
3082
  ).fork()).ldelim();
3083
+ if (message.mute != null && Object.hasOwnProperty.call(message, "mute"))
3084
+ writer.uint32(
3085
+ /* id 5, wireType 0 =*/
3086
+ 40
3087
+ ).bool(message.mute);
3088
+ if (message.automationLevel != null && Object.hasOwnProperty.call(message, "automationLevel"))
3089
+ writer.uint32(
3090
+ /* id 6, wireType 5 =*/
3091
+ 53
3092
+ ).float(message.automationLevel);
3093
+ if (message.automationMute != null && Object.hasOwnProperty.call(message, "automationMute"))
3094
+ writer.uint32(
3095
+ /* id 7, wireType 0 =*/
3096
+ 56
3097
+ ).bool(message.automationMute);
2260
3098
  return writer;
2261
3099
  };
2262
3100
  AudioChannelControlRequest.encodeDelimited = function encodeDelimited(message, writer) {
@@ -2289,6 +3127,18 @@ var sesame = $root.sesame = (() => {
2289
3127
  message.plugins.push($root.sesame.v1.audio.AudioPluginControlRequest.decode(reader, reader.uint32()));
2290
3128
  break;
2291
3129
  }
3130
+ case 5: {
3131
+ message.mute = reader.bool();
3132
+ break;
3133
+ }
3134
+ case 6: {
3135
+ message.automationLevel = reader.float();
3136
+ break;
3137
+ }
3138
+ case 7: {
3139
+ message.automationMute = reader.bool();
3140
+ break;
3141
+ }
2292
3142
  default:
2293
3143
  reader.skipType(tag & 7);
2294
3144
  break;
@@ -2328,6 +3178,21 @@ var sesame = $root.sesame = (() => {
2328
3178
  return "plugins." + error;
2329
3179
  }
2330
3180
  }
3181
+ if (message.mute != null && message.hasOwnProperty("mute")) {
3182
+ properties._mute = 1;
3183
+ if (typeof message.mute !== "boolean")
3184
+ return "mute: boolean expected";
3185
+ }
3186
+ if (message.automationLevel != null && message.hasOwnProperty("automationLevel")) {
3187
+ properties._automationLevel = 1;
3188
+ if (typeof message.automationLevel !== "number")
3189
+ return "automationLevel: number expected";
3190
+ }
3191
+ if (message.automationMute != null && message.hasOwnProperty("automationMute")) {
3192
+ properties._automationMute = 1;
3193
+ if (typeof message.automationMute !== "boolean")
3194
+ return "automationMute: boolean expected";
3195
+ }
2331
3196
  return null;
2332
3197
  };
2333
3198
  AudioChannelControlRequest.fromObject = function fromObject(object) {
@@ -2350,6 +3215,12 @@ var sesame = $root.sesame = (() => {
2350
3215
  message.plugins[i] = $root.sesame.v1.audio.AudioPluginControlRequest.fromObject(object.plugins[i]);
2351
3216
  }
2352
3217
  }
3218
+ if (object.mute != null)
3219
+ message.mute = Boolean(object.mute);
3220
+ if (object.automationLevel != null)
3221
+ message.automationLevel = Number(object.automationLevel);
3222
+ if (object.automationMute != null)
3223
+ message.automationMute = Boolean(object.automationMute);
2353
3224
  return message;
2354
3225
  };
2355
3226
  AudioChannelControlRequest.toObject = function toObject(message, options) {
@@ -2377,6 +3248,21 @@ var sesame = $root.sesame = (() => {
2377
3248
  for (let j = 0; j < message.plugins.length; ++j)
2378
3249
  object.plugins[j] = $root.sesame.v1.audio.AudioPluginControlRequest.toObject(message.plugins[j], options);
2379
3250
  }
3251
+ if (message.mute != null && message.hasOwnProperty("mute")) {
3252
+ object.mute = message.mute;
3253
+ if (options.oneofs)
3254
+ object._mute = "mute";
3255
+ }
3256
+ if (message.automationLevel != null && message.hasOwnProperty("automationLevel")) {
3257
+ object.automationLevel = options.json && !isFinite(message.automationLevel) ? String(message.automationLevel) : message.automationLevel;
3258
+ if (options.oneofs)
3259
+ object._automationLevel = "automationLevel";
3260
+ }
3261
+ if (message.automationMute != null && message.hasOwnProperty("automationMute")) {
3262
+ object.automationMute = message.automationMute;
3263
+ if (options.oneofs)
3264
+ object._automationMute = "automationMute";
3265
+ }
2380
3266
  return object;
2381
3267
  };
2382
3268
  AudioChannelControlRequest.prototype.toJSON = function toJSON() {
@@ -2393,6 +3279,7 @@ var sesame = $root.sesame = (() => {
2393
3279
  audio.AudioControlRequest = function() {
2394
3280
  function AudioControlRequest(properties) {
2395
3281
  this.channels = [];
3282
+ this.masterPlugins = [];
2396
3283
  if (properties) {
2397
3284
  for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
2398
3285
  if (properties[keys[i]] != null)
@@ -2400,6 +3287,18 @@ var sesame = $root.sesame = (() => {
2400
3287
  }
2401
3288
  }
2402
3289
  AudioControlRequest.prototype.channels = $util.emptyArray;
3290
+ AudioControlRequest.prototype.masterLevel = null;
3291
+ AudioControlRequest.prototype.masterAutomationLevel = null;
3292
+ AudioControlRequest.prototype.masterPlugins = $util.emptyArray;
3293
+ let $oneOfFields;
3294
+ Object.defineProperty(AudioControlRequest.prototype, "_masterLevel", {
3295
+ get: $util.oneOfGetter($oneOfFields = ["masterLevel"]),
3296
+ set: $util.oneOfSetter($oneOfFields)
3297
+ });
3298
+ Object.defineProperty(AudioControlRequest.prototype, "_masterAutomationLevel", {
3299
+ get: $util.oneOfGetter($oneOfFields = ["masterAutomationLevel"]),
3300
+ set: $util.oneOfSetter($oneOfFields)
3301
+ });
2403
3302
  AudioControlRequest.create = function create(properties) {
2404
3303
  return new AudioControlRequest(properties);
2405
3304
  };
@@ -2412,6 +3311,22 @@ var sesame = $root.sesame = (() => {
2412
3311
  /* id 1, wireType 2 =*/
2413
3312
  10
2414
3313
  ).fork()).ldelim();
3314
+ if (message.masterLevel != null && Object.hasOwnProperty.call(message, "masterLevel"))
3315
+ writer.uint32(
3316
+ /* id 2, wireType 5 =*/
3317
+ 21
3318
+ ).float(message.masterLevel);
3319
+ if (message.masterAutomationLevel != null && Object.hasOwnProperty.call(message, "masterAutomationLevel"))
3320
+ writer.uint32(
3321
+ /* id 3, wireType 5 =*/
3322
+ 29
3323
+ ).float(message.masterAutomationLevel);
3324
+ if (message.masterPlugins != null && message.masterPlugins.length)
3325
+ for (let i = 0; i < message.masterPlugins.length; ++i)
3326
+ $root.sesame.v1.audio.AudioPluginControlRequest.encode(message.masterPlugins[i], writer.uint32(
3327
+ /* id 4, wireType 2 =*/
3328
+ 34
3329
+ ).fork()).ldelim();
2415
3330
  return writer;
2416
3331
  };
2417
3332
  AudioControlRequest.encodeDelimited = function encodeDelimited(message, writer) {
@@ -2432,6 +3347,20 @@ var sesame = $root.sesame = (() => {
2432
3347
  message.channels.push($root.sesame.v1.audio.AudioChannelControlRequest.decode(reader, reader.uint32()));
2433
3348
  break;
2434
3349
  }
3350
+ case 2: {
3351
+ message.masterLevel = reader.float();
3352
+ break;
3353
+ }
3354
+ case 3: {
3355
+ message.masterAutomationLevel = reader.float();
3356
+ break;
3357
+ }
3358
+ case 4: {
3359
+ if (!(message.masterPlugins && message.masterPlugins.length))
3360
+ message.masterPlugins = [];
3361
+ message.masterPlugins.push($root.sesame.v1.audio.AudioPluginControlRequest.decode(reader, reader.uint32()));
3362
+ break;
3363
+ }
2435
3364
  default:
2436
3365
  reader.skipType(tag & 7);
2437
3366
  break;
@@ -2447,6 +3376,7 @@ var sesame = $root.sesame = (() => {
2447
3376
  AudioControlRequest.verify = function verify(message) {
2448
3377
  if (typeof message !== "object" || message === null)
2449
3378
  return "object expected";
3379
+ let properties = {};
2450
3380
  if (message.channels != null && message.hasOwnProperty("channels")) {
2451
3381
  if (!Array.isArray(message.channels))
2452
3382
  return "channels: array expected";
@@ -2456,6 +3386,25 @@ var sesame = $root.sesame = (() => {
2456
3386
  return "channels." + error;
2457
3387
  }
2458
3388
  }
3389
+ if (message.masterLevel != null && message.hasOwnProperty("masterLevel")) {
3390
+ properties._masterLevel = 1;
3391
+ if (typeof message.masterLevel !== "number")
3392
+ return "masterLevel: number expected";
3393
+ }
3394
+ if (message.masterAutomationLevel != null && message.hasOwnProperty("masterAutomationLevel")) {
3395
+ properties._masterAutomationLevel = 1;
3396
+ if (typeof message.masterAutomationLevel !== "number")
3397
+ return "masterAutomationLevel: number expected";
3398
+ }
3399
+ if (message.masterPlugins != null && message.hasOwnProperty("masterPlugins")) {
3400
+ if (!Array.isArray(message.masterPlugins))
3401
+ return "masterPlugins: array expected";
3402
+ for (let i = 0; i < message.masterPlugins.length; ++i) {
3403
+ let error = $root.sesame.v1.audio.AudioPluginControlRequest.verify(message.masterPlugins[i]);
3404
+ if (error)
3405
+ return "masterPlugins." + error;
3406
+ }
3407
+ }
2459
3408
  return null;
2460
3409
  };
2461
3410
  AudioControlRequest.fromObject = function fromObject(object) {
@@ -2472,19 +3421,50 @@ var sesame = $root.sesame = (() => {
2472
3421
  message.channels[i] = $root.sesame.v1.audio.AudioChannelControlRequest.fromObject(object.channels[i]);
2473
3422
  }
2474
3423
  }
3424
+ if (object.masterLevel != null)
3425
+ message.masterLevel = Number(object.masterLevel);
3426
+ if (object.masterAutomationLevel != null)
3427
+ message.masterAutomationLevel = Number(object.masterAutomationLevel);
3428
+ if (object.masterPlugins) {
3429
+ if (!Array.isArray(object.masterPlugins))
3430
+ throw TypeError(".sesame.v1.audio.AudioControlRequest.masterPlugins: array expected");
3431
+ message.masterPlugins = [];
3432
+ for (let i = 0; i < object.masterPlugins.length; ++i) {
3433
+ if (typeof object.masterPlugins[i] !== "object")
3434
+ throw TypeError(".sesame.v1.audio.AudioControlRequest.masterPlugins: object expected");
3435
+ message.masterPlugins[i] = $root.sesame.v1.audio.AudioPluginControlRequest.fromObject(object.masterPlugins[i]);
3436
+ }
3437
+ }
2475
3438
  return message;
2476
3439
  };
2477
3440
  AudioControlRequest.toObject = function toObject(message, options) {
2478
3441
  if (!options)
2479
3442
  options = {};
2480
3443
  let object = {};
2481
- if (options.arrays || options.defaults)
3444
+ if (options.arrays || options.defaults) {
2482
3445
  object.channels = [];
3446
+ object.masterPlugins = [];
3447
+ }
2483
3448
  if (message.channels && message.channels.length) {
2484
3449
  object.channels = [];
2485
3450
  for (let j = 0; j < message.channels.length; ++j)
2486
3451
  object.channels[j] = $root.sesame.v1.audio.AudioChannelControlRequest.toObject(message.channels[j], options);
2487
3452
  }
3453
+ if (message.masterLevel != null && message.hasOwnProperty("masterLevel")) {
3454
+ object.masterLevel = options.json && !isFinite(message.masterLevel) ? String(message.masterLevel) : message.masterLevel;
3455
+ if (options.oneofs)
3456
+ object._masterLevel = "masterLevel";
3457
+ }
3458
+ if (message.masterAutomationLevel != null && message.hasOwnProperty("masterAutomationLevel")) {
3459
+ object.masterAutomationLevel = options.json && !isFinite(message.masterAutomationLevel) ? String(message.masterAutomationLevel) : message.masterAutomationLevel;
3460
+ if (options.oneofs)
3461
+ object._masterAutomationLevel = "masterAutomationLevel";
3462
+ }
3463
+ if (message.masterPlugins && message.masterPlugins.length) {
3464
+ object.masterPlugins = [];
3465
+ for (let j = 0; j < message.masterPlugins.length; ++j)
3466
+ object.masterPlugins[j] = $root.sesame.v1.audio.AudioPluginControlRequest.toObject(message.masterPlugins[j], options);
3467
+ }
2488
3468
  return object;
2489
3469
  };
2490
3470
  AudioControlRequest.prototype.toJSON = function toJSON() {
@@ -23452,11 +24432,12 @@ var CommandList = class {
23452
24432
  }
23453
24433
  applyTransaction(transaction) {
23454
24434
  this.cl.commandList.forEach((item) => {
23455
- if (transaction.transactionId !== void 0) {
24435
+ if (transaction.transactionId !== void 0 && item.transactionId == null) {
23456
24436
  item.transactionId = transaction.transactionId;
23457
24437
  }
23458
24438
  if (transaction.dependencies !== void 0) {
23459
- item.transactionDeps = item.transactionDeps ? item.transactionDeps.concat(transaction.dependencies) : transaction.dependencies;
24439
+ const existing = item.transactionDeps ?? [];
24440
+ item.transactionDeps = [...new Set(existing.concat(transaction.dependencies))];
23460
24441
  }
23461
24442
  });
23462
24443
  }
@@ -23639,7 +24620,7 @@ var CommandList = class {
23639
24620
  }
23640
24621
  }
23641
24622
  item.updateSourceTransport = transportCmd;
23642
- return this.add(item, timeOffsetMs, { transactionId: msg.transactionId, dependencies: [] });
24623
+ return this.add(item, timeOffsetMs, { transactionId: msg.transactionId, dependencies: msg.dependencies });
23643
24624
  }
23644
24625
  sourceUpdate(id, cfg, timeOffsetMs) {
23645
24626
  let item = new sesame.v1.commands.CommandListItem();
@@ -24391,15 +25372,21 @@ var EaseKind = /* @__PURE__ */ ((EaseKind2) => {
24391
25372
  EaseKind2["BACK_INOUT"] = "backInOut";
24392
25373
  return EaseKind2;
24393
25374
  })(EaseKind || {});
25375
+ function appendQueryParam(url, key, value) {
25376
+ if (!value) return url;
25377
+ const separator = url.includes("?") ? "&" : "?";
25378
+ return `${url}${separator}${encodeURIComponent(key)}=${encodeURIComponent(value)}`;
25379
+ }
24394
25380
  var SesameClient = class extends EventEmitter3 {
24395
- constructor(portOrUrl) {
25381
+ constructor(portOrUrl, clientOptions = {}) {
24396
25382
  super();
24397
25383
  this.subscriptions = [];
24398
25384
  this.onMediaPacket = () => {
24399
25385
  };
24400
25386
  this.onCallbackMessage = () => {
24401
25387
  };
24402
- const url = typeof portOrUrl === "number" ? `ws://127.0.0.1:${portOrUrl}/api` : portOrUrl;
25388
+ const baseUrl = typeof portOrUrl === "number" ? `ws://127.0.0.1:${portOrUrl}/api` : portOrUrl;
25389
+ const url = appendQueryParam(baseUrl, "client", clientOptions.wsClientLabel ?? "");
24403
25390
  this.conn = new SesameConnection({
24404
25391
  url,
24405
25392
  autoConnect: true,