@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.
@@ -866,6 +866,14 @@ var sesame = $root.sesame = (() => {
866
866
  AudioMixerChannel.prototype.level = 0;
867
867
  AudioMixerChannel.prototype.pan = 0;
868
868
  AudioMixerChannel.prototype.plugins = $util.emptyArray;
869
+ AudioMixerChannel.prototype.mute = false;
870
+ AudioMixerChannel.prototype.automationLevel = null;
871
+ AudioMixerChannel.prototype.automationMute = false;
872
+ let $oneOfFields;
873
+ Object.defineProperty(AudioMixerChannel.prototype, "_automationLevel", {
874
+ get: $util.oneOfGetter($oneOfFields = ["automationLevel"]),
875
+ set: $util.oneOfSetter($oneOfFields)
876
+ });
869
877
  AudioMixerChannel.create = function create(properties) {
870
878
  return new AudioMixerChannel(properties);
871
879
  };
@@ -912,6 +920,21 @@ var sesame = $root.sesame = (() => {
912
920
  /* id 7, wireType 2 =*/
913
921
  58
914
922
  ).fork()).ldelim();
923
+ if (message.mute != null && Object.hasOwnProperty.call(message, "mute"))
924
+ writer.uint32(
925
+ /* id 8, wireType 0 =*/
926
+ 64
927
+ ).bool(message.mute);
928
+ if (message.automationLevel != null && Object.hasOwnProperty.call(message, "automationLevel"))
929
+ writer.uint32(
930
+ /* id 9, wireType 5 =*/
931
+ 77
932
+ ).float(message.automationLevel);
933
+ if (message.automationMute != null && Object.hasOwnProperty.call(message, "automationMute"))
934
+ writer.uint32(
935
+ /* id 10, wireType 0 =*/
936
+ 80
937
+ ).bool(message.automationMute);
915
938
  return writer;
916
939
  };
917
940
  AudioMixerChannel.encodeDelimited = function encodeDelimited(message, writer) {
@@ -963,6 +986,18 @@ var sesame = $root.sesame = (() => {
963
986
  message.plugins.push($root.sesame.v1.audio.AudioPlugin.decode(reader, reader.uint32()));
964
987
  break;
965
988
  }
989
+ case 8: {
990
+ message.mute = reader.bool();
991
+ break;
992
+ }
993
+ case 9: {
994
+ message.automationLevel = reader.float();
995
+ break;
996
+ }
997
+ case 10: {
998
+ message.automationMute = reader.bool();
999
+ break;
1000
+ }
966
1001
  default:
967
1002
  reader.skipType(tag & 7);
968
1003
  break;
@@ -978,6 +1013,7 @@ var sesame = $root.sesame = (() => {
978
1013
  AudioMixerChannel.verify = function verify(message) {
979
1014
  if (typeof message !== "object" || message === null)
980
1015
  return "object expected";
1016
+ let properties = {};
981
1017
  if (message.id != null && message.hasOwnProperty("id")) {
982
1018
  if (!$util.isString(message.id))
983
1019
  return "id: string expected";
@@ -1019,6 +1055,19 @@ var sesame = $root.sesame = (() => {
1019
1055
  return "plugins." + error;
1020
1056
  }
1021
1057
  }
1058
+ if (message.mute != null && message.hasOwnProperty("mute")) {
1059
+ if (typeof message.mute !== "boolean")
1060
+ return "mute: boolean expected";
1061
+ }
1062
+ if (message.automationLevel != null && message.hasOwnProperty("automationLevel")) {
1063
+ properties._automationLevel = 1;
1064
+ if (typeof message.automationLevel !== "number")
1065
+ return "automationLevel: number expected";
1066
+ }
1067
+ if (message.automationMute != null && message.hasOwnProperty("automationMute")) {
1068
+ if (typeof message.automationMute !== "boolean")
1069
+ return "automationMute: boolean expected";
1070
+ }
1022
1071
  return null;
1023
1072
  };
1024
1073
  AudioMixerChannel.fromObject = function fromObject(object) {
@@ -1070,6 +1119,12 @@ var sesame = $root.sesame = (() => {
1070
1119
  message.plugins[i] = $root.sesame.v1.audio.AudioPlugin.fromObject(object.plugins[i]);
1071
1120
  }
1072
1121
  }
1122
+ if (object.mute != null)
1123
+ message.mute = Boolean(object.mute);
1124
+ if (object.automationLevel != null)
1125
+ message.automationLevel = Number(object.automationLevel);
1126
+ if (object.automationMute != null)
1127
+ message.automationMute = Boolean(object.automationMute);
1073
1128
  return message;
1074
1129
  };
1075
1130
  AudioMixerChannel.toObject = function toObject(message, options) {
@@ -1086,6 +1141,8 @@ var sesame = $root.sesame = (() => {
1086
1141
  object.channelType = options.enums === String ? "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED" : 0;
1087
1142
  object.level = 0;
1088
1143
  object.pan = 0;
1144
+ object.mute = false;
1145
+ object.automationMute = false;
1089
1146
  }
1090
1147
  if (message.id != null && message.hasOwnProperty("id"))
1091
1148
  object.id = message.id;
@@ -1107,6 +1164,15 @@ var sesame = $root.sesame = (() => {
1107
1164
  for (let j = 0; j < message.plugins.length; ++j)
1108
1165
  object.plugins[j] = $root.sesame.v1.audio.AudioPlugin.toObject(message.plugins[j], options);
1109
1166
  }
1167
+ if (message.mute != null && message.hasOwnProperty("mute"))
1168
+ object.mute = message.mute;
1169
+ if (message.automationLevel != null && message.hasOwnProperty("automationLevel")) {
1170
+ object.automationLevel = options.json && !isFinite(message.automationLevel) ? String(message.automationLevel) : message.automationLevel;
1171
+ if (options.oneofs)
1172
+ object._automationLevel = "automationLevel";
1173
+ }
1174
+ if (message.automationMute != null && message.hasOwnProperty("automationMute"))
1175
+ object.automationMute = message.automationMute;
1110
1176
  return object;
1111
1177
  };
1112
1178
  AudioMixerChannel.prototype.toJSON = function toJSON() {
@@ -1120,9 +1186,162 @@ var sesame = $root.sesame = (() => {
1120
1186
  };
1121
1187
  return AudioMixerChannel;
1122
1188
  }();
1189
+ audio.AudioMixerOutput = function() {
1190
+ function AudioMixerOutput(properties) {
1191
+ this.excludedChannelIds = [];
1192
+ if (properties) {
1193
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
1194
+ if (properties[keys[i]] != null)
1195
+ this[keys[i]] = properties[keys[i]];
1196
+ }
1197
+ }
1198
+ AudioMixerOutput.prototype.id = "";
1199
+ AudioMixerOutput.prototype.excludedChannelIds = $util.emptyArray;
1200
+ AudioMixerOutput.prototype.includeMasterPlugins = null;
1201
+ let $oneOfFields;
1202
+ Object.defineProperty(AudioMixerOutput.prototype, "_includeMasterPlugins", {
1203
+ get: $util.oneOfGetter($oneOfFields = ["includeMasterPlugins"]),
1204
+ set: $util.oneOfSetter($oneOfFields)
1205
+ });
1206
+ AudioMixerOutput.create = function create(properties) {
1207
+ return new AudioMixerOutput(properties);
1208
+ };
1209
+ AudioMixerOutput.encode = function encode(message, writer) {
1210
+ if (!writer)
1211
+ writer = $Writer.create();
1212
+ if (message.id != null && Object.hasOwnProperty.call(message, "id"))
1213
+ writer.uint32(
1214
+ /* id 1, wireType 2 =*/
1215
+ 10
1216
+ ).string(message.id);
1217
+ if (message.excludedChannelIds != null && message.excludedChannelIds.length)
1218
+ for (let i = 0; i < message.excludedChannelIds.length; ++i)
1219
+ writer.uint32(
1220
+ /* id 2, wireType 2 =*/
1221
+ 18
1222
+ ).string(message.excludedChannelIds[i]);
1223
+ if (message.includeMasterPlugins != null && Object.hasOwnProperty.call(message, "includeMasterPlugins"))
1224
+ writer.uint32(
1225
+ /* id 3, wireType 0 =*/
1226
+ 24
1227
+ ).bool(message.includeMasterPlugins);
1228
+ return writer;
1229
+ };
1230
+ AudioMixerOutput.encodeDelimited = function encodeDelimited(message, writer) {
1231
+ return this.encode(message, writer).ldelim();
1232
+ };
1233
+ AudioMixerOutput.decode = function decode(reader, length, error) {
1234
+ if (!(reader instanceof $Reader))
1235
+ reader = $Reader.create(reader);
1236
+ let end = length === void 0 ? reader.len : reader.pos + length, message = new $root.sesame.v1.audio.AudioMixerOutput();
1237
+ while (reader.pos < end) {
1238
+ let tag = reader.uint32();
1239
+ if (tag === error)
1240
+ break;
1241
+ switch (tag >>> 3) {
1242
+ case 1: {
1243
+ message.id = reader.string();
1244
+ break;
1245
+ }
1246
+ case 2: {
1247
+ if (!(message.excludedChannelIds && message.excludedChannelIds.length))
1248
+ message.excludedChannelIds = [];
1249
+ message.excludedChannelIds.push(reader.string());
1250
+ break;
1251
+ }
1252
+ case 3: {
1253
+ message.includeMasterPlugins = reader.bool();
1254
+ break;
1255
+ }
1256
+ default:
1257
+ reader.skipType(tag & 7);
1258
+ break;
1259
+ }
1260
+ }
1261
+ return message;
1262
+ };
1263
+ AudioMixerOutput.decodeDelimited = function decodeDelimited(reader) {
1264
+ if (!(reader instanceof $Reader))
1265
+ reader = new $Reader(reader);
1266
+ return this.decode(reader, reader.uint32());
1267
+ };
1268
+ AudioMixerOutput.verify = function verify(message) {
1269
+ if (typeof message !== "object" || message === null)
1270
+ return "object expected";
1271
+ let properties = {};
1272
+ if (message.id != null && message.hasOwnProperty("id")) {
1273
+ if (!$util.isString(message.id))
1274
+ return "id: string expected";
1275
+ }
1276
+ if (message.excludedChannelIds != null && message.hasOwnProperty("excludedChannelIds")) {
1277
+ if (!Array.isArray(message.excludedChannelIds))
1278
+ return "excludedChannelIds: array expected";
1279
+ for (let i = 0; i < message.excludedChannelIds.length; ++i)
1280
+ if (!$util.isString(message.excludedChannelIds[i]))
1281
+ return "excludedChannelIds: string[] expected";
1282
+ }
1283
+ if (message.includeMasterPlugins != null && message.hasOwnProperty("includeMasterPlugins")) {
1284
+ properties._includeMasterPlugins = 1;
1285
+ if (typeof message.includeMasterPlugins !== "boolean")
1286
+ return "includeMasterPlugins: boolean expected";
1287
+ }
1288
+ return null;
1289
+ };
1290
+ AudioMixerOutput.fromObject = function fromObject(object) {
1291
+ if (object instanceof $root.sesame.v1.audio.AudioMixerOutput)
1292
+ return object;
1293
+ let message = new $root.sesame.v1.audio.AudioMixerOutput();
1294
+ if (object.id != null)
1295
+ message.id = String(object.id);
1296
+ if (object.excludedChannelIds) {
1297
+ if (!Array.isArray(object.excludedChannelIds))
1298
+ throw TypeError(".sesame.v1.audio.AudioMixerOutput.excludedChannelIds: array expected");
1299
+ message.excludedChannelIds = [];
1300
+ for (let i = 0; i < object.excludedChannelIds.length; ++i)
1301
+ message.excludedChannelIds[i] = String(object.excludedChannelIds[i]);
1302
+ }
1303
+ if (object.includeMasterPlugins != null)
1304
+ message.includeMasterPlugins = Boolean(object.includeMasterPlugins);
1305
+ return message;
1306
+ };
1307
+ AudioMixerOutput.toObject = function toObject(message, options) {
1308
+ if (!options)
1309
+ options = {};
1310
+ let object = {};
1311
+ if (options.arrays || options.defaults)
1312
+ object.excludedChannelIds = [];
1313
+ if (options.defaults)
1314
+ object.id = "";
1315
+ if (message.id != null && message.hasOwnProperty("id"))
1316
+ object.id = message.id;
1317
+ if (message.excludedChannelIds && message.excludedChannelIds.length) {
1318
+ object.excludedChannelIds = [];
1319
+ for (let j = 0; j < message.excludedChannelIds.length; ++j)
1320
+ object.excludedChannelIds[j] = message.excludedChannelIds[j];
1321
+ }
1322
+ if (message.includeMasterPlugins != null && message.hasOwnProperty("includeMasterPlugins")) {
1323
+ object.includeMasterPlugins = message.includeMasterPlugins;
1324
+ if (options.oneofs)
1325
+ object._includeMasterPlugins = "includeMasterPlugins";
1326
+ }
1327
+ return object;
1328
+ };
1329
+ AudioMixerOutput.prototype.toJSON = function toJSON() {
1330
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
1331
+ };
1332
+ AudioMixerOutput.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
1333
+ if (typeUrlPrefix === void 0) {
1334
+ typeUrlPrefix = "type.googleapis.com";
1335
+ }
1336
+ return typeUrlPrefix + "/sesame.v1.audio.AudioMixerOutput";
1337
+ };
1338
+ return AudioMixerOutput;
1339
+ }();
1123
1340
  audio.AudioMixerConfig = function() {
1124
1341
  function AudioMixerConfig(properties) {
1125
1342
  this.channels = [];
1343
+ this.outputs = [];
1344
+ this.masterPlugins = [];
1126
1345
  if (properties) {
1127
1346
  for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
1128
1347
  if (properties[keys[i]] != null)
@@ -1132,6 +1351,19 @@ var sesame = $root.sesame = (() => {
1132
1351
  AudioMixerConfig.prototype.channels = $util.emptyArray;
1133
1352
  AudioMixerConfig.prototype.outputType = 0;
1134
1353
  AudioMixerConfig.prototype.order = 0;
1354
+ AudioMixerConfig.prototype.outputs = $util.emptyArray;
1355
+ AudioMixerConfig.prototype.masterLevel = null;
1356
+ AudioMixerConfig.prototype.masterAutomationLevel = null;
1357
+ AudioMixerConfig.prototype.masterPlugins = $util.emptyArray;
1358
+ let $oneOfFields;
1359
+ Object.defineProperty(AudioMixerConfig.prototype, "_masterLevel", {
1360
+ get: $util.oneOfGetter($oneOfFields = ["masterLevel"]),
1361
+ set: $util.oneOfSetter($oneOfFields)
1362
+ });
1363
+ Object.defineProperty(AudioMixerConfig.prototype, "_masterAutomationLevel", {
1364
+ get: $util.oneOfGetter($oneOfFields = ["masterAutomationLevel"]),
1365
+ set: $util.oneOfSetter($oneOfFields)
1366
+ });
1135
1367
  AudioMixerConfig.create = function create(properties) {
1136
1368
  return new AudioMixerConfig(properties);
1137
1369
  };
@@ -1154,6 +1386,28 @@ var sesame = $root.sesame = (() => {
1154
1386
  /* id 3, wireType 0 =*/
1155
1387
  24
1156
1388
  ).uint32(message.order);
1389
+ if (message.outputs != null && message.outputs.length)
1390
+ for (let i = 0; i < message.outputs.length; ++i)
1391
+ $root.sesame.v1.audio.AudioMixerOutput.encode(message.outputs[i], writer.uint32(
1392
+ /* id 4, wireType 2 =*/
1393
+ 34
1394
+ ).fork()).ldelim();
1395
+ if (message.masterLevel != null && Object.hasOwnProperty.call(message, "masterLevel"))
1396
+ writer.uint32(
1397
+ /* id 5, wireType 5 =*/
1398
+ 45
1399
+ ).float(message.masterLevel);
1400
+ if (message.masterAutomationLevel != null && Object.hasOwnProperty.call(message, "masterAutomationLevel"))
1401
+ writer.uint32(
1402
+ /* id 6, wireType 5 =*/
1403
+ 53
1404
+ ).float(message.masterAutomationLevel);
1405
+ if (message.masterPlugins != null && message.masterPlugins.length)
1406
+ for (let i = 0; i < message.masterPlugins.length; ++i)
1407
+ $root.sesame.v1.audio.AudioPlugin.encode(message.masterPlugins[i], writer.uint32(
1408
+ /* id 7, wireType 2 =*/
1409
+ 58
1410
+ ).fork()).ldelim();
1157
1411
  return writer;
1158
1412
  };
1159
1413
  AudioMixerConfig.encodeDelimited = function encodeDelimited(message, writer) {
@@ -1182,6 +1436,26 @@ var sesame = $root.sesame = (() => {
1182
1436
  message.order = reader.uint32();
1183
1437
  break;
1184
1438
  }
1439
+ case 4: {
1440
+ if (!(message.outputs && message.outputs.length))
1441
+ message.outputs = [];
1442
+ message.outputs.push($root.sesame.v1.audio.AudioMixerOutput.decode(reader, reader.uint32()));
1443
+ break;
1444
+ }
1445
+ case 5: {
1446
+ message.masterLevel = reader.float();
1447
+ break;
1448
+ }
1449
+ case 6: {
1450
+ message.masterAutomationLevel = reader.float();
1451
+ break;
1452
+ }
1453
+ case 7: {
1454
+ if (!(message.masterPlugins && message.masterPlugins.length))
1455
+ message.masterPlugins = [];
1456
+ message.masterPlugins.push($root.sesame.v1.audio.AudioPlugin.decode(reader, reader.uint32()));
1457
+ break;
1458
+ }
1185
1459
  default:
1186
1460
  reader.skipType(tag & 7);
1187
1461
  break;
@@ -1197,6 +1471,7 @@ var sesame = $root.sesame = (() => {
1197
1471
  AudioMixerConfig.verify = function verify(message) {
1198
1472
  if (typeof message !== "object" || message === null)
1199
1473
  return "object expected";
1474
+ let properties = {};
1200
1475
  if (message.channels != null && message.hasOwnProperty("channels")) {
1201
1476
  if (!Array.isArray(message.channels))
1202
1477
  return "channels: array expected";
@@ -1219,6 +1494,34 @@ var sesame = $root.sesame = (() => {
1219
1494
  if (!$util.isInteger(message.order))
1220
1495
  return "order: integer expected";
1221
1496
  }
1497
+ if (message.outputs != null && message.hasOwnProperty("outputs")) {
1498
+ if (!Array.isArray(message.outputs))
1499
+ return "outputs: array expected";
1500
+ for (let i = 0; i < message.outputs.length; ++i) {
1501
+ let error = $root.sesame.v1.audio.AudioMixerOutput.verify(message.outputs[i]);
1502
+ if (error)
1503
+ return "outputs." + error;
1504
+ }
1505
+ }
1506
+ if (message.masterLevel != null && message.hasOwnProperty("masterLevel")) {
1507
+ properties._masterLevel = 1;
1508
+ if (typeof message.masterLevel !== "number")
1509
+ return "masterLevel: number expected";
1510
+ }
1511
+ if (message.masterAutomationLevel != null && message.hasOwnProperty("masterAutomationLevel")) {
1512
+ properties._masterAutomationLevel = 1;
1513
+ if (typeof message.masterAutomationLevel !== "number")
1514
+ return "masterAutomationLevel: number expected";
1515
+ }
1516
+ if (message.masterPlugins != null && message.hasOwnProperty("masterPlugins")) {
1517
+ if (!Array.isArray(message.masterPlugins))
1518
+ return "masterPlugins: array expected";
1519
+ for (let i = 0; i < message.masterPlugins.length; ++i) {
1520
+ let error = $root.sesame.v1.audio.AudioPlugin.verify(message.masterPlugins[i]);
1521
+ if (error)
1522
+ return "masterPlugins." + error;
1523
+ }
1524
+ }
1222
1525
  return null;
1223
1526
  };
1224
1527
  AudioMixerConfig.fromObject = function fromObject(object) {
@@ -1257,14 +1560,41 @@ var sesame = $root.sesame = (() => {
1257
1560
  }
1258
1561
  if (object.order != null)
1259
1562
  message.order = object.order >>> 0;
1563
+ if (object.outputs) {
1564
+ if (!Array.isArray(object.outputs))
1565
+ throw TypeError(".sesame.v1.audio.AudioMixerConfig.outputs: array expected");
1566
+ message.outputs = [];
1567
+ for (let i = 0; i < object.outputs.length; ++i) {
1568
+ if (typeof object.outputs[i] !== "object")
1569
+ throw TypeError(".sesame.v1.audio.AudioMixerConfig.outputs: object expected");
1570
+ message.outputs[i] = $root.sesame.v1.audio.AudioMixerOutput.fromObject(object.outputs[i]);
1571
+ }
1572
+ }
1573
+ if (object.masterLevel != null)
1574
+ message.masterLevel = Number(object.masterLevel);
1575
+ if (object.masterAutomationLevel != null)
1576
+ message.masterAutomationLevel = Number(object.masterAutomationLevel);
1577
+ if (object.masterPlugins) {
1578
+ if (!Array.isArray(object.masterPlugins))
1579
+ throw TypeError(".sesame.v1.audio.AudioMixerConfig.masterPlugins: array expected");
1580
+ message.masterPlugins = [];
1581
+ for (let i = 0; i < object.masterPlugins.length; ++i) {
1582
+ if (typeof object.masterPlugins[i] !== "object")
1583
+ throw TypeError(".sesame.v1.audio.AudioMixerConfig.masterPlugins: object expected");
1584
+ message.masterPlugins[i] = $root.sesame.v1.audio.AudioPlugin.fromObject(object.masterPlugins[i]);
1585
+ }
1586
+ }
1260
1587
  return message;
1261
1588
  };
1262
1589
  AudioMixerConfig.toObject = function toObject(message, options) {
1263
1590
  if (!options)
1264
1591
  options = {};
1265
1592
  let object = {};
1266
- if (options.arrays || options.defaults)
1593
+ if (options.arrays || options.defaults) {
1267
1594
  object.channels = [];
1595
+ object.outputs = [];
1596
+ object.masterPlugins = [];
1597
+ }
1268
1598
  if (options.defaults) {
1269
1599
  object.outputType = options.enums === String ? "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED" : 0;
1270
1600
  object.order = 0;
@@ -1278,6 +1608,26 @@ var sesame = $root.sesame = (() => {
1278
1608
  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;
1279
1609
  if (message.order != null && message.hasOwnProperty("order"))
1280
1610
  object.order = message.order;
1611
+ if (message.outputs && message.outputs.length) {
1612
+ object.outputs = [];
1613
+ for (let j = 0; j < message.outputs.length; ++j)
1614
+ object.outputs[j] = $root.sesame.v1.audio.AudioMixerOutput.toObject(message.outputs[j], options);
1615
+ }
1616
+ if (message.masterLevel != null && message.hasOwnProperty("masterLevel")) {
1617
+ object.masterLevel = options.json && !isFinite(message.masterLevel) ? String(message.masterLevel) : message.masterLevel;
1618
+ if (options.oneofs)
1619
+ object._masterLevel = "masterLevel";
1620
+ }
1621
+ if (message.masterAutomationLevel != null && message.hasOwnProperty("masterAutomationLevel")) {
1622
+ object.masterAutomationLevel = options.json && !isFinite(message.masterAutomationLevel) ? String(message.masterAutomationLevel) : message.masterAutomationLevel;
1623
+ if (options.oneofs)
1624
+ object._masterAutomationLevel = "masterAutomationLevel";
1625
+ }
1626
+ if (message.masterPlugins && message.masterPlugins.length) {
1627
+ object.masterPlugins = [];
1628
+ for (let j = 0; j < message.masterPlugins.length; ++j)
1629
+ object.masterPlugins[j] = $root.sesame.v1.audio.AudioPlugin.toObject(message.masterPlugins[j], options);
1630
+ }
1281
1631
  return object;
1282
1632
  };
1283
1633
  AudioMixerConfig.prototype.toJSON = function toJSON() {
@@ -1989,6 +2339,11 @@ var sesame = $root.sesame = (() => {
1989
2339
  AudioChannelStatus.prototype.hasData = false;
1990
2340
  AudioChannelStatus.prototype.readErrors = 0;
1991
2341
  AudioChannelStatus.prototype.plugins = $util.emptyArray;
2342
+ AudioChannelStatus.prototype.mute = false;
2343
+ AudioChannelStatus.prototype.automationLevel = 0;
2344
+ AudioChannelStatus.prototype.automationMute = false;
2345
+ AudioChannelStatus.prototype.effectiveLevel = 0;
2346
+ AudioChannelStatus.prototype.effectiveMute = false;
1992
2347
  AudioChannelStatus.create = function create(properties) {
1993
2348
  return new AudioChannelStatus(properties);
1994
2349
  };
@@ -2012,43 +2367,405 @@ var sesame = $root.sesame = (() => {
2012
2367
  ).float(message.level);
2013
2368
  if (message.pan != null && Object.hasOwnProperty.call(message, "pan"))
2014
2369
  writer.uint32(
2015
- /* id 4, wireType 5 =*/
2016
- 37
2017
- ).float(message.pan);
2370
+ /* id 4, wireType 5 =*/
2371
+ 37
2372
+ ).float(message.pan);
2373
+ if (message.vu != null && message.vu.length) {
2374
+ writer.uint32(
2375
+ /* id 5, wireType 2 =*/
2376
+ 42
2377
+ ).fork();
2378
+ for (let i = 0; i < message.vu.length; ++i)
2379
+ writer.float(message.vu[i]);
2380
+ writer.ldelim();
2381
+ }
2382
+ if (message.hasData != null && Object.hasOwnProperty.call(message, "hasData"))
2383
+ writer.uint32(
2384
+ /* id 6, wireType 0 =*/
2385
+ 48
2386
+ ).bool(message.hasData);
2387
+ if (message.readErrors != null && Object.hasOwnProperty.call(message, "readErrors"))
2388
+ writer.uint32(
2389
+ /* id 7, wireType 0 =*/
2390
+ 56
2391
+ ).uint32(message.readErrors);
2392
+ if (message.plugins != null && message.plugins.length)
2393
+ for (let i = 0; i < message.plugins.length; ++i)
2394
+ $root.sesame.v1.audio.AudioChannelPluginStatus.encode(message.plugins[i], writer.uint32(
2395
+ /* id 8, wireType 2 =*/
2396
+ 66
2397
+ ).fork()).ldelim();
2398
+ if (message.mute != null && Object.hasOwnProperty.call(message, "mute"))
2399
+ writer.uint32(
2400
+ /* id 9, wireType 0 =*/
2401
+ 72
2402
+ ).bool(message.mute);
2403
+ if (message.automationLevel != null && Object.hasOwnProperty.call(message, "automationLevel"))
2404
+ writer.uint32(
2405
+ /* id 10, wireType 5 =*/
2406
+ 85
2407
+ ).float(message.automationLevel);
2408
+ if (message.automationMute != null && Object.hasOwnProperty.call(message, "automationMute"))
2409
+ writer.uint32(
2410
+ /* id 11, wireType 0 =*/
2411
+ 88
2412
+ ).bool(message.automationMute);
2413
+ if (message.effectiveLevel != null && Object.hasOwnProperty.call(message, "effectiveLevel"))
2414
+ writer.uint32(
2415
+ /* id 12, wireType 5 =*/
2416
+ 101
2417
+ ).float(message.effectiveLevel);
2418
+ if (message.effectiveMute != null && Object.hasOwnProperty.call(message, "effectiveMute"))
2419
+ writer.uint32(
2420
+ /* id 13, wireType 0 =*/
2421
+ 104
2422
+ ).bool(message.effectiveMute);
2423
+ return writer;
2424
+ };
2425
+ AudioChannelStatus.encodeDelimited = function encodeDelimited(message, writer) {
2426
+ return this.encode(message, writer).ldelim();
2427
+ };
2428
+ AudioChannelStatus.decode = function decode(reader, length, error) {
2429
+ if (!(reader instanceof $Reader))
2430
+ reader = $Reader.create(reader);
2431
+ let end = length === void 0 ? reader.len : reader.pos + length, message = new $root.sesame.v1.audio.AudioChannelStatus();
2432
+ while (reader.pos < end) {
2433
+ let tag = reader.uint32();
2434
+ if (tag === error)
2435
+ break;
2436
+ switch (tag >>> 3) {
2437
+ case 1: {
2438
+ message.id = reader.string();
2439
+ break;
2440
+ }
2441
+ case 2: {
2442
+ message.outputType = reader.int32();
2443
+ break;
2444
+ }
2445
+ case 3: {
2446
+ message.level = reader.float();
2447
+ break;
2448
+ }
2449
+ case 4: {
2450
+ message.pan = reader.float();
2451
+ break;
2452
+ }
2453
+ case 5: {
2454
+ if (!(message.vu && message.vu.length))
2455
+ message.vu = [];
2456
+ if ((tag & 7) === 2) {
2457
+ let end2 = reader.uint32() + reader.pos;
2458
+ while (reader.pos < end2)
2459
+ message.vu.push(reader.float());
2460
+ } else
2461
+ message.vu.push(reader.float());
2462
+ break;
2463
+ }
2464
+ case 6: {
2465
+ message.hasData = reader.bool();
2466
+ break;
2467
+ }
2468
+ case 7: {
2469
+ message.readErrors = reader.uint32();
2470
+ break;
2471
+ }
2472
+ case 8: {
2473
+ if (!(message.plugins && message.plugins.length))
2474
+ message.plugins = [];
2475
+ message.plugins.push($root.sesame.v1.audio.AudioChannelPluginStatus.decode(reader, reader.uint32()));
2476
+ break;
2477
+ }
2478
+ case 9: {
2479
+ message.mute = reader.bool();
2480
+ break;
2481
+ }
2482
+ case 10: {
2483
+ message.automationLevel = reader.float();
2484
+ break;
2485
+ }
2486
+ case 11: {
2487
+ message.automationMute = reader.bool();
2488
+ break;
2489
+ }
2490
+ case 12: {
2491
+ message.effectiveLevel = reader.float();
2492
+ break;
2493
+ }
2494
+ case 13: {
2495
+ message.effectiveMute = reader.bool();
2496
+ break;
2497
+ }
2498
+ default:
2499
+ reader.skipType(tag & 7);
2500
+ break;
2501
+ }
2502
+ }
2503
+ return message;
2504
+ };
2505
+ AudioChannelStatus.decodeDelimited = function decodeDelimited(reader) {
2506
+ if (!(reader instanceof $Reader))
2507
+ reader = new $Reader(reader);
2508
+ return this.decode(reader, reader.uint32());
2509
+ };
2510
+ AudioChannelStatus.verify = function verify(message) {
2511
+ if (typeof message !== "object" || message === null)
2512
+ return "object expected";
2513
+ if (message.id != null && message.hasOwnProperty("id")) {
2514
+ if (!$util.isString(message.id))
2515
+ return "id: string expected";
2516
+ }
2517
+ if (message.outputType != null && message.hasOwnProperty("outputType"))
2518
+ switch (message.outputType) {
2519
+ default:
2520
+ return "outputType: enum value expected";
2521
+ case 0:
2522
+ case 1:
2523
+ case 2:
2524
+ break;
2525
+ }
2526
+ if (message.level != null && message.hasOwnProperty("level")) {
2527
+ if (typeof message.level !== "number")
2528
+ return "level: number expected";
2529
+ }
2530
+ if (message.pan != null && message.hasOwnProperty("pan")) {
2531
+ if (typeof message.pan !== "number")
2532
+ return "pan: number expected";
2533
+ }
2534
+ if (message.vu != null && message.hasOwnProperty("vu")) {
2535
+ if (!Array.isArray(message.vu))
2536
+ return "vu: array expected";
2537
+ for (let i = 0; i < message.vu.length; ++i)
2538
+ if (typeof message.vu[i] !== "number")
2539
+ return "vu: number[] expected";
2540
+ }
2541
+ if (message.hasData != null && message.hasOwnProperty("hasData")) {
2542
+ if (typeof message.hasData !== "boolean")
2543
+ return "hasData: boolean expected";
2544
+ }
2545
+ if (message.readErrors != null && message.hasOwnProperty("readErrors")) {
2546
+ if (!$util.isInteger(message.readErrors))
2547
+ return "readErrors: integer expected";
2548
+ }
2549
+ if (message.plugins != null && message.hasOwnProperty("plugins")) {
2550
+ if (!Array.isArray(message.plugins))
2551
+ return "plugins: array expected";
2552
+ for (let i = 0; i < message.plugins.length; ++i) {
2553
+ let error = $root.sesame.v1.audio.AudioChannelPluginStatus.verify(message.plugins[i]);
2554
+ if (error)
2555
+ return "plugins." + error;
2556
+ }
2557
+ }
2558
+ if (message.mute != null && message.hasOwnProperty("mute")) {
2559
+ if (typeof message.mute !== "boolean")
2560
+ return "mute: boolean expected";
2561
+ }
2562
+ if (message.automationLevel != null && message.hasOwnProperty("automationLevel")) {
2563
+ if (typeof message.automationLevel !== "number")
2564
+ return "automationLevel: number expected";
2565
+ }
2566
+ if (message.automationMute != null && message.hasOwnProperty("automationMute")) {
2567
+ if (typeof message.automationMute !== "boolean")
2568
+ return "automationMute: boolean expected";
2569
+ }
2570
+ if (message.effectiveLevel != null && message.hasOwnProperty("effectiveLevel")) {
2571
+ if (typeof message.effectiveLevel !== "number")
2572
+ return "effectiveLevel: number expected";
2573
+ }
2574
+ if (message.effectiveMute != null && message.hasOwnProperty("effectiveMute")) {
2575
+ if (typeof message.effectiveMute !== "boolean")
2576
+ return "effectiveMute: boolean expected";
2577
+ }
2578
+ return null;
2579
+ };
2580
+ AudioChannelStatus.fromObject = function fromObject(object) {
2581
+ if (object instanceof $root.sesame.v1.audio.AudioChannelStatus)
2582
+ return object;
2583
+ let message = new $root.sesame.v1.audio.AudioChannelStatus();
2584
+ if (object.id != null)
2585
+ message.id = String(object.id);
2586
+ switch (object.outputType) {
2587
+ default:
2588
+ if (typeof object.outputType === "number") {
2589
+ message.outputType = object.outputType;
2590
+ break;
2591
+ }
2592
+ break;
2593
+ case "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED":
2594
+ case 0:
2595
+ message.outputType = 0;
2596
+ break;
2597
+ case "AUDIO_MIXER_CHANNEL_TYPE_MONO":
2598
+ case 1:
2599
+ message.outputType = 1;
2600
+ break;
2601
+ case "AUDIO_MIXER_CHANNEL_TYPE_STEREO":
2602
+ case 2:
2603
+ message.outputType = 2;
2604
+ break;
2605
+ }
2606
+ if (object.level != null)
2607
+ message.level = Number(object.level);
2608
+ if (object.pan != null)
2609
+ message.pan = Number(object.pan);
2610
+ if (object.vu) {
2611
+ if (!Array.isArray(object.vu))
2612
+ throw TypeError(".sesame.v1.audio.AudioChannelStatus.vu: array expected");
2613
+ message.vu = [];
2614
+ for (let i = 0; i < object.vu.length; ++i)
2615
+ message.vu[i] = Number(object.vu[i]);
2616
+ }
2617
+ if (object.hasData != null)
2618
+ message.hasData = Boolean(object.hasData);
2619
+ if (object.readErrors != null)
2620
+ message.readErrors = object.readErrors >>> 0;
2621
+ if (object.plugins) {
2622
+ if (!Array.isArray(object.plugins))
2623
+ throw TypeError(".sesame.v1.audio.AudioChannelStatus.plugins: array expected");
2624
+ message.plugins = [];
2625
+ for (let i = 0; i < object.plugins.length; ++i) {
2626
+ if (typeof object.plugins[i] !== "object")
2627
+ throw TypeError(".sesame.v1.audio.AudioChannelStatus.plugins: object expected");
2628
+ message.plugins[i] = $root.sesame.v1.audio.AudioChannelPluginStatus.fromObject(object.plugins[i]);
2629
+ }
2630
+ }
2631
+ if (object.mute != null)
2632
+ message.mute = Boolean(object.mute);
2633
+ if (object.automationLevel != null)
2634
+ message.automationLevel = Number(object.automationLevel);
2635
+ if (object.automationMute != null)
2636
+ message.automationMute = Boolean(object.automationMute);
2637
+ if (object.effectiveLevel != null)
2638
+ message.effectiveLevel = Number(object.effectiveLevel);
2639
+ if (object.effectiveMute != null)
2640
+ message.effectiveMute = Boolean(object.effectiveMute);
2641
+ return message;
2642
+ };
2643
+ AudioChannelStatus.toObject = function toObject(message, options) {
2644
+ if (!options)
2645
+ options = {};
2646
+ let object = {};
2647
+ if (options.arrays || options.defaults) {
2648
+ object.vu = [];
2649
+ object.plugins = [];
2650
+ }
2651
+ if (options.defaults) {
2652
+ object.id = "";
2653
+ object.outputType = options.enums === String ? "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED" : 0;
2654
+ object.level = 0;
2655
+ object.pan = 0;
2656
+ object.hasData = false;
2657
+ object.readErrors = 0;
2658
+ object.mute = false;
2659
+ object.automationLevel = 0;
2660
+ object.automationMute = false;
2661
+ object.effectiveLevel = 0;
2662
+ object.effectiveMute = false;
2663
+ }
2664
+ if (message.id != null && message.hasOwnProperty("id"))
2665
+ object.id = message.id;
2666
+ if (message.outputType != null && message.hasOwnProperty("outputType"))
2667
+ 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;
2668
+ if (message.level != null && message.hasOwnProperty("level"))
2669
+ object.level = options.json && !isFinite(message.level) ? String(message.level) : message.level;
2670
+ if (message.pan != null && message.hasOwnProperty("pan"))
2671
+ object.pan = options.json && !isFinite(message.pan) ? String(message.pan) : message.pan;
2672
+ if (message.vu && message.vu.length) {
2673
+ object.vu = [];
2674
+ for (let j = 0; j < message.vu.length; ++j)
2675
+ object.vu[j] = options.json && !isFinite(message.vu[j]) ? String(message.vu[j]) : message.vu[j];
2676
+ }
2677
+ if (message.hasData != null && message.hasOwnProperty("hasData"))
2678
+ object.hasData = message.hasData;
2679
+ if (message.readErrors != null && message.hasOwnProperty("readErrors"))
2680
+ object.readErrors = message.readErrors;
2681
+ if (message.plugins && message.plugins.length) {
2682
+ object.plugins = [];
2683
+ for (let j = 0; j < message.plugins.length; ++j)
2684
+ object.plugins[j] = $root.sesame.v1.audio.AudioChannelPluginStatus.toObject(message.plugins[j], options);
2685
+ }
2686
+ if (message.mute != null && message.hasOwnProperty("mute"))
2687
+ object.mute = message.mute;
2688
+ if (message.automationLevel != null && message.hasOwnProperty("automationLevel"))
2689
+ object.automationLevel = options.json && !isFinite(message.automationLevel) ? String(message.automationLevel) : message.automationLevel;
2690
+ if (message.automationMute != null && message.hasOwnProperty("automationMute"))
2691
+ object.automationMute = message.automationMute;
2692
+ if (message.effectiveLevel != null && message.hasOwnProperty("effectiveLevel"))
2693
+ object.effectiveLevel = options.json && !isFinite(message.effectiveLevel) ? String(message.effectiveLevel) : message.effectiveLevel;
2694
+ if (message.effectiveMute != null && message.hasOwnProperty("effectiveMute"))
2695
+ object.effectiveMute = message.effectiveMute;
2696
+ return object;
2697
+ };
2698
+ AudioChannelStatus.prototype.toJSON = function toJSON() {
2699
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
2700
+ };
2701
+ AudioChannelStatus.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
2702
+ if (typeUrlPrefix === void 0) {
2703
+ typeUrlPrefix = "type.googleapis.com";
2704
+ }
2705
+ return typeUrlPrefix + "/sesame.v1.audio.AudioChannelStatus";
2706
+ };
2707
+ return AudioChannelStatus;
2708
+ }();
2709
+ audio.AudioMixerOutputStatus = function() {
2710
+ function AudioMixerOutputStatus(properties) {
2711
+ this.vu = [];
2712
+ this.excludedChannelIds = [];
2713
+ if (properties) {
2714
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
2715
+ if (properties[keys[i]] != null)
2716
+ this[keys[i]] = properties[keys[i]];
2717
+ }
2718
+ }
2719
+ AudioMixerOutputStatus.prototype.id = "";
2720
+ AudioMixerOutputStatus.prototype.outputType = 0;
2721
+ AudioMixerOutputStatus.prototype.vu = $util.emptyArray;
2722
+ AudioMixerOutputStatus.prototype.excludedChannelIds = $util.emptyArray;
2723
+ AudioMixerOutputStatus.prototype.includeMasterPlugins = false;
2724
+ AudioMixerOutputStatus.create = function create(properties) {
2725
+ return new AudioMixerOutputStatus(properties);
2726
+ };
2727
+ AudioMixerOutputStatus.encode = function encode(message, writer) {
2728
+ if (!writer)
2729
+ writer = $Writer.create();
2730
+ if (message.id != null && Object.hasOwnProperty.call(message, "id"))
2731
+ writer.uint32(
2732
+ /* id 1, wireType 2 =*/
2733
+ 10
2734
+ ).string(message.id);
2735
+ if (message.outputType != null && Object.hasOwnProperty.call(message, "outputType"))
2736
+ writer.uint32(
2737
+ /* id 2, wireType 0 =*/
2738
+ 16
2739
+ ).int32(message.outputType);
2018
2740
  if (message.vu != null && message.vu.length) {
2019
2741
  writer.uint32(
2020
- /* id 5, wireType 2 =*/
2021
- 42
2742
+ /* id 3, wireType 2 =*/
2743
+ 26
2022
2744
  ).fork();
2023
2745
  for (let i = 0; i < message.vu.length; ++i)
2024
2746
  writer.float(message.vu[i]);
2025
2747
  writer.ldelim();
2026
2748
  }
2027
- if (message.hasData != null && Object.hasOwnProperty.call(message, "hasData"))
2028
- writer.uint32(
2029
- /* id 6, wireType 0 =*/
2030
- 48
2031
- ).bool(message.hasData);
2032
- if (message.readErrors != null && Object.hasOwnProperty.call(message, "readErrors"))
2749
+ if (message.excludedChannelIds != null && message.excludedChannelIds.length)
2750
+ for (let i = 0; i < message.excludedChannelIds.length; ++i)
2751
+ writer.uint32(
2752
+ /* id 4, wireType 2 =*/
2753
+ 34
2754
+ ).string(message.excludedChannelIds[i]);
2755
+ if (message.includeMasterPlugins != null && Object.hasOwnProperty.call(message, "includeMasterPlugins"))
2033
2756
  writer.uint32(
2034
- /* id 7, wireType 0 =*/
2035
- 56
2036
- ).uint32(message.readErrors);
2037
- if (message.plugins != null && message.plugins.length)
2038
- for (let i = 0; i < message.plugins.length; ++i)
2039
- $root.sesame.v1.audio.AudioChannelPluginStatus.encode(message.plugins[i], writer.uint32(
2040
- /* id 8, wireType 2 =*/
2041
- 66
2042
- ).fork()).ldelim();
2757
+ /* id 5, wireType 0 =*/
2758
+ 40
2759
+ ).bool(message.includeMasterPlugins);
2043
2760
  return writer;
2044
2761
  };
2045
- AudioChannelStatus.encodeDelimited = function encodeDelimited(message, writer) {
2762
+ AudioMixerOutputStatus.encodeDelimited = function encodeDelimited(message, writer) {
2046
2763
  return this.encode(message, writer).ldelim();
2047
2764
  };
2048
- AudioChannelStatus.decode = function decode(reader, length, error) {
2765
+ AudioMixerOutputStatus.decode = function decode(reader, length, error) {
2049
2766
  if (!(reader instanceof $Reader))
2050
2767
  reader = $Reader.create(reader);
2051
- let end = length === void 0 ? reader.len : reader.pos + length, message = new $root.sesame.v1.audio.AudioChannelStatus();
2768
+ let end = length === void 0 ? reader.len : reader.pos + length, message = new $root.sesame.v1.audio.AudioMixerOutputStatus();
2052
2769
  while (reader.pos < end) {
2053
2770
  let tag = reader.uint32();
2054
2771
  if (tag === error)
@@ -2063,14 +2780,6 @@ var sesame = $root.sesame = (() => {
2063
2780
  break;
2064
2781
  }
2065
2782
  case 3: {
2066
- message.level = reader.float();
2067
- break;
2068
- }
2069
- case 4: {
2070
- message.pan = reader.float();
2071
- break;
2072
- }
2073
- case 5: {
2074
2783
  if (!(message.vu && message.vu.length))
2075
2784
  message.vu = [];
2076
2785
  if ((tag & 7) === 2) {
@@ -2081,18 +2790,14 @@ var sesame = $root.sesame = (() => {
2081
2790
  message.vu.push(reader.float());
2082
2791
  break;
2083
2792
  }
2084
- case 6: {
2085
- message.hasData = reader.bool();
2086
- break;
2087
- }
2088
- case 7: {
2089
- message.readErrors = reader.uint32();
2793
+ case 4: {
2794
+ if (!(message.excludedChannelIds && message.excludedChannelIds.length))
2795
+ message.excludedChannelIds = [];
2796
+ message.excludedChannelIds.push(reader.string());
2090
2797
  break;
2091
2798
  }
2092
- case 8: {
2093
- if (!(message.plugins && message.plugins.length))
2094
- message.plugins = [];
2095
- message.plugins.push($root.sesame.v1.audio.AudioChannelPluginStatus.decode(reader, reader.uint32()));
2799
+ case 5: {
2800
+ message.includeMasterPlugins = reader.bool();
2096
2801
  break;
2097
2802
  }
2098
2803
  default:
@@ -2102,12 +2807,12 @@ var sesame = $root.sesame = (() => {
2102
2807
  }
2103
2808
  return message;
2104
2809
  };
2105
- AudioChannelStatus.decodeDelimited = function decodeDelimited(reader) {
2810
+ AudioMixerOutputStatus.decodeDelimited = function decodeDelimited(reader) {
2106
2811
  if (!(reader instanceof $Reader))
2107
2812
  reader = new $Reader(reader);
2108
2813
  return this.decode(reader, reader.uint32());
2109
2814
  };
2110
- AudioChannelStatus.verify = function verify(message) {
2815
+ AudioMixerOutputStatus.verify = function verify(message) {
2111
2816
  if (typeof message !== "object" || message === null)
2112
2817
  return "object expected";
2113
2818
  if (message.id != null && message.hasOwnProperty("id")) {
@@ -2123,14 +2828,6 @@ var sesame = $root.sesame = (() => {
2123
2828
  case 2:
2124
2829
  break;
2125
2830
  }
2126
- if (message.level != null && message.hasOwnProperty("level")) {
2127
- if (typeof message.level !== "number")
2128
- return "level: number expected";
2129
- }
2130
- if (message.pan != null && message.hasOwnProperty("pan")) {
2131
- if (typeof message.pan !== "number")
2132
- return "pan: number expected";
2133
- }
2134
2831
  if (message.vu != null && message.hasOwnProperty("vu")) {
2135
2832
  if (!Array.isArray(message.vu))
2136
2833
  return "vu: array expected";
@@ -2138,29 +2835,23 @@ var sesame = $root.sesame = (() => {
2138
2835
  if (typeof message.vu[i] !== "number")
2139
2836
  return "vu: number[] expected";
2140
2837
  }
2141
- if (message.hasData != null && message.hasOwnProperty("hasData")) {
2142
- if (typeof message.hasData !== "boolean")
2143
- return "hasData: boolean expected";
2144
- }
2145
- if (message.readErrors != null && message.hasOwnProperty("readErrors")) {
2146
- if (!$util.isInteger(message.readErrors))
2147
- return "readErrors: integer expected";
2838
+ if (message.excludedChannelIds != null && message.hasOwnProperty("excludedChannelIds")) {
2839
+ if (!Array.isArray(message.excludedChannelIds))
2840
+ return "excludedChannelIds: array expected";
2841
+ for (let i = 0; i < message.excludedChannelIds.length; ++i)
2842
+ if (!$util.isString(message.excludedChannelIds[i]))
2843
+ return "excludedChannelIds: string[] expected";
2148
2844
  }
2149
- if (message.plugins != null && message.hasOwnProperty("plugins")) {
2150
- if (!Array.isArray(message.plugins))
2151
- return "plugins: array expected";
2152
- for (let i = 0; i < message.plugins.length; ++i) {
2153
- let error = $root.sesame.v1.audio.AudioChannelPluginStatus.verify(message.plugins[i]);
2154
- if (error)
2155
- return "plugins." + error;
2156
- }
2845
+ if (message.includeMasterPlugins != null && message.hasOwnProperty("includeMasterPlugins")) {
2846
+ if (typeof message.includeMasterPlugins !== "boolean")
2847
+ return "includeMasterPlugins: boolean expected";
2157
2848
  }
2158
2849
  return null;
2159
2850
  };
2160
- AudioChannelStatus.fromObject = function fromObject(object) {
2161
- if (object instanceof $root.sesame.v1.audio.AudioChannelStatus)
2851
+ AudioMixerOutputStatus.fromObject = function fromObject(object) {
2852
+ if (object instanceof $root.sesame.v1.audio.AudioMixerOutputStatus)
2162
2853
  return object;
2163
- let message = new $root.sesame.v1.audio.AudioChannelStatus();
2854
+ let message = new $root.sesame.v1.audio.AudioMixerOutputStatus();
2164
2855
  if (object.id != null)
2165
2856
  message.id = String(object.id);
2166
2857
  switch (object.outputType) {
@@ -2183,88 +2874,72 @@ var sesame = $root.sesame = (() => {
2183
2874
  message.outputType = 2;
2184
2875
  break;
2185
2876
  }
2186
- if (object.level != null)
2187
- message.level = Number(object.level);
2188
- if (object.pan != null)
2189
- message.pan = Number(object.pan);
2190
2877
  if (object.vu) {
2191
2878
  if (!Array.isArray(object.vu))
2192
- throw TypeError(".sesame.v1.audio.AudioChannelStatus.vu: array expected");
2879
+ throw TypeError(".sesame.v1.audio.AudioMixerOutputStatus.vu: array expected");
2193
2880
  message.vu = [];
2194
2881
  for (let i = 0; i < object.vu.length; ++i)
2195
2882
  message.vu[i] = Number(object.vu[i]);
2196
2883
  }
2197
- if (object.hasData != null)
2198
- message.hasData = Boolean(object.hasData);
2199
- if (object.readErrors != null)
2200
- message.readErrors = object.readErrors >>> 0;
2201
- if (object.plugins) {
2202
- if (!Array.isArray(object.plugins))
2203
- throw TypeError(".sesame.v1.audio.AudioChannelStatus.plugins: array expected");
2204
- message.plugins = [];
2205
- for (let i = 0; i < object.plugins.length; ++i) {
2206
- if (typeof object.plugins[i] !== "object")
2207
- throw TypeError(".sesame.v1.audio.AudioChannelStatus.plugins: object expected");
2208
- message.plugins[i] = $root.sesame.v1.audio.AudioChannelPluginStatus.fromObject(object.plugins[i]);
2209
- }
2884
+ if (object.excludedChannelIds) {
2885
+ if (!Array.isArray(object.excludedChannelIds))
2886
+ throw TypeError(".sesame.v1.audio.AudioMixerOutputStatus.excludedChannelIds: array expected");
2887
+ message.excludedChannelIds = [];
2888
+ for (let i = 0; i < object.excludedChannelIds.length; ++i)
2889
+ message.excludedChannelIds[i] = String(object.excludedChannelIds[i]);
2210
2890
  }
2891
+ if (object.includeMasterPlugins != null)
2892
+ message.includeMasterPlugins = Boolean(object.includeMasterPlugins);
2211
2893
  return message;
2212
2894
  };
2213
- AudioChannelStatus.toObject = function toObject(message, options) {
2895
+ AudioMixerOutputStatus.toObject = function toObject(message, options) {
2214
2896
  if (!options)
2215
2897
  options = {};
2216
2898
  let object = {};
2217
2899
  if (options.arrays || options.defaults) {
2218
2900
  object.vu = [];
2219
- object.plugins = [];
2901
+ object.excludedChannelIds = [];
2220
2902
  }
2221
2903
  if (options.defaults) {
2222
2904
  object.id = "";
2223
2905
  object.outputType = options.enums === String ? "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED" : 0;
2224
- object.level = 0;
2225
- object.pan = 0;
2226
- object.hasData = false;
2227
- object.readErrors = 0;
2906
+ object.includeMasterPlugins = false;
2228
2907
  }
2229
2908
  if (message.id != null && message.hasOwnProperty("id"))
2230
2909
  object.id = message.id;
2231
2910
  if (message.outputType != null && message.hasOwnProperty("outputType"))
2232
2911
  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;
2233
- if (message.level != null && message.hasOwnProperty("level"))
2234
- object.level = options.json && !isFinite(message.level) ? String(message.level) : message.level;
2235
- if (message.pan != null && message.hasOwnProperty("pan"))
2236
- object.pan = options.json && !isFinite(message.pan) ? String(message.pan) : message.pan;
2237
2912
  if (message.vu && message.vu.length) {
2238
2913
  object.vu = [];
2239
2914
  for (let j = 0; j < message.vu.length; ++j)
2240
2915
  object.vu[j] = options.json && !isFinite(message.vu[j]) ? String(message.vu[j]) : message.vu[j];
2241
2916
  }
2242
- if (message.hasData != null && message.hasOwnProperty("hasData"))
2243
- object.hasData = message.hasData;
2244
- if (message.readErrors != null && message.hasOwnProperty("readErrors"))
2245
- object.readErrors = message.readErrors;
2246
- if (message.plugins && message.plugins.length) {
2247
- object.plugins = [];
2248
- for (let j = 0; j < message.plugins.length; ++j)
2249
- object.plugins[j] = $root.sesame.v1.audio.AudioChannelPluginStatus.toObject(message.plugins[j], options);
2917
+ if (message.excludedChannelIds && message.excludedChannelIds.length) {
2918
+ object.excludedChannelIds = [];
2919
+ for (let j = 0; j < message.excludedChannelIds.length; ++j)
2920
+ object.excludedChannelIds[j] = message.excludedChannelIds[j];
2250
2921
  }
2922
+ if (message.includeMasterPlugins != null && message.hasOwnProperty("includeMasterPlugins"))
2923
+ object.includeMasterPlugins = message.includeMasterPlugins;
2251
2924
  return object;
2252
2925
  };
2253
- AudioChannelStatus.prototype.toJSON = function toJSON() {
2926
+ AudioMixerOutputStatus.prototype.toJSON = function toJSON() {
2254
2927
  return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
2255
2928
  };
2256
- AudioChannelStatus.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
2929
+ AudioMixerOutputStatus.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
2257
2930
  if (typeUrlPrefix === void 0) {
2258
2931
  typeUrlPrefix = "type.googleapis.com";
2259
2932
  }
2260
- return typeUrlPrefix + "/sesame.v1.audio.AudioChannelStatus";
2933
+ return typeUrlPrefix + "/sesame.v1.audio.AudioMixerOutputStatus";
2261
2934
  };
2262
- return AudioChannelStatus;
2935
+ return AudioMixerOutputStatus;
2263
2936
  }();
2264
2937
  audio.AudioMixerStatus = function() {
2265
2938
  function AudioMixerStatus(properties) {
2266
2939
  this.vu = [];
2267
2940
  this.channels = [];
2941
+ this.masterPlugins = [];
2942
+ this.outputs = [];
2268
2943
  if (properties) {
2269
2944
  for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
2270
2945
  if (properties[keys[i]] != null)
@@ -2275,6 +2950,11 @@ var sesame = $root.sesame = (() => {
2275
2950
  AudioMixerStatus.prototype.outputType = 0;
2276
2951
  AudioMixerStatus.prototype.vu = $util.emptyArray;
2277
2952
  AudioMixerStatus.prototype.channels = $util.emptyArray;
2953
+ AudioMixerStatus.prototype.masterLevel = 0;
2954
+ AudioMixerStatus.prototype.masterAutomationLevel = 0;
2955
+ AudioMixerStatus.prototype.masterEffectiveLevel = 0;
2956
+ AudioMixerStatus.prototype.masterPlugins = $util.emptyArray;
2957
+ AudioMixerStatus.prototype.outputs = $util.emptyArray;
2278
2958
  AudioMixerStatus.create = function create(properties) {
2279
2959
  return new AudioMixerStatus(properties);
2280
2960
  };
@@ -2306,6 +2986,33 @@ var sesame = $root.sesame = (() => {
2306
2986
  /* id 4, wireType 2 =*/
2307
2987
  34
2308
2988
  ).fork()).ldelim();
2989
+ if (message.masterLevel != null && Object.hasOwnProperty.call(message, "masterLevel"))
2990
+ writer.uint32(
2991
+ /* id 5, wireType 5 =*/
2992
+ 45
2993
+ ).float(message.masterLevel);
2994
+ if (message.masterAutomationLevel != null && Object.hasOwnProperty.call(message, "masterAutomationLevel"))
2995
+ writer.uint32(
2996
+ /* id 6, wireType 5 =*/
2997
+ 53
2998
+ ).float(message.masterAutomationLevel);
2999
+ if (message.masterEffectiveLevel != null && Object.hasOwnProperty.call(message, "masterEffectiveLevel"))
3000
+ writer.uint32(
3001
+ /* id 7, wireType 5 =*/
3002
+ 61
3003
+ ).float(message.masterEffectiveLevel);
3004
+ if (message.masterPlugins != null && message.masterPlugins.length)
3005
+ for (let i = 0; i < message.masterPlugins.length; ++i)
3006
+ $root.sesame.v1.audio.AudioChannelPluginStatus.encode(message.masterPlugins[i], writer.uint32(
3007
+ /* id 8, wireType 2 =*/
3008
+ 66
3009
+ ).fork()).ldelim();
3010
+ if (message.outputs != null && message.outputs.length)
3011
+ for (let i = 0; i < message.outputs.length; ++i)
3012
+ $root.sesame.v1.audio.AudioMixerOutputStatus.encode(message.outputs[i], writer.uint32(
3013
+ /* id 9, wireType 2 =*/
3014
+ 74
3015
+ ).fork()).ldelim();
2309
3016
  return writer;
2310
3017
  };
2311
3018
  AudioMixerStatus.encodeDelimited = function encodeDelimited(message, writer) {
@@ -2345,6 +3052,30 @@ var sesame = $root.sesame = (() => {
2345
3052
  message.channels.push($root.sesame.v1.audio.AudioChannelStatus.decode(reader, reader.uint32()));
2346
3053
  break;
2347
3054
  }
3055
+ case 5: {
3056
+ message.masterLevel = reader.float();
3057
+ break;
3058
+ }
3059
+ case 6: {
3060
+ message.masterAutomationLevel = reader.float();
3061
+ break;
3062
+ }
3063
+ case 7: {
3064
+ message.masterEffectiveLevel = reader.float();
3065
+ break;
3066
+ }
3067
+ case 8: {
3068
+ if (!(message.masterPlugins && message.masterPlugins.length))
3069
+ message.masterPlugins = [];
3070
+ message.masterPlugins.push($root.sesame.v1.audio.AudioChannelPluginStatus.decode(reader, reader.uint32()));
3071
+ break;
3072
+ }
3073
+ case 9: {
3074
+ if (!(message.outputs && message.outputs.length))
3075
+ message.outputs = [];
3076
+ message.outputs.push($root.sesame.v1.audio.AudioMixerOutputStatus.decode(reader, reader.uint32()));
3077
+ break;
3078
+ }
2348
3079
  default:
2349
3080
  reader.skipType(tag & 7);
2350
3081
  break;
@@ -2389,6 +3120,36 @@ var sesame = $root.sesame = (() => {
2389
3120
  return "channels." + error;
2390
3121
  }
2391
3122
  }
3123
+ if (message.masterLevel != null && message.hasOwnProperty("masterLevel")) {
3124
+ if (typeof message.masterLevel !== "number")
3125
+ return "masterLevel: number expected";
3126
+ }
3127
+ if (message.masterAutomationLevel != null && message.hasOwnProperty("masterAutomationLevel")) {
3128
+ if (typeof message.masterAutomationLevel !== "number")
3129
+ return "masterAutomationLevel: number expected";
3130
+ }
3131
+ if (message.masterEffectiveLevel != null && message.hasOwnProperty("masterEffectiveLevel")) {
3132
+ if (typeof message.masterEffectiveLevel !== "number")
3133
+ return "masterEffectiveLevel: number expected";
3134
+ }
3135
+ if (message.masterPlugins != null && message.hasOwnProperty("masterPlugins")) {
3136
+ if (!Array.isArray(message.masterPlugins))
3137
+ return "masterPlugins: array expected";
3138
+ for (let i = 0; i < message.masterPlugins.length; ++i) {
3139
+ let error = $root.sesame.v1.audio.AudioChannelPluginStatus.verify(message.masterPlugins[i]);
3140
+ if (error)
3141
+ return "masterPlugins." + error;
3142
+ }
3143
+ }
3144
+ if (message.outputs != null && message.hasOwnProperty("outputs")) {
3145
+ if (!Array.isArray(message.outputs))
3146
+ return "outputs: array expected";
3147
+ for (let i = 0; i < message.outputs.length; ++i) {
3148
+ let error = $root.sesame.v1.audio.AudioMixerOutputStatus.verify(message.outputs[i]);
3149
+ if (error)
3150
+ return "outputs." + error;
3151
+ }
3152
+ }
2392
3153
  return null;
2393
3154
  };
2394
3155
  AudioMixerStatus.fromObject = function fromObject(object) {
@@ -2434,6 +3195,32 @@ var sesame = $root.sesame = (() => {
2434
3195
  message.channels[i] = $root.sesame.v1.audio.AudioChannelStatus.fromObject(object.channels[i]);
2435
3196
  }
2436
3197
  }
3198
+ if (object.masterLevel != null)
3199
+ message.masterLevel = Number(object.masterLevel);
3200
+ if (object.masterAutomationLevel != null)
3201
+ message.masterAutomationLevel = Number(object.masterAutomationLevel);
3202
+ if (object.masterEffectiveLevel != null)
3203
+ message.masterEffectiveLevel = Number(object.masterEffectiveLevel);
3204
+ if (object.masterPlugins) {
3205
+ if (!Array.isArray(object.masterPlugins))
3206
+ throw TypeError(".sesame.v1.audio.AudioMixerStatus.masterPlugins: array expected");
3207
+ message.masterPlugins = [];
3208
+ for (let i = 0; i < object.masterPlugins.length; ++i) {
3209
+ if (typeof object.masterPlugins[i] !== "object")
3210
+ throw TypeError(".sesame.v1.audio.AudioMixerStatus.masterPlugins: object expected");
3211
+ message.masterPlugins[i] = $root.sesame.v1.audio.AudioChannelPluginStatus.fromObject(object.masterPlugins[i]);
3212
+ }
3213
+ }
3214
+ if (object.outputs) {
3215
+ if (!Array.isArray(object.outputs))
3216
+ throw TypeError(".sesame.v1.audio.AudioMixerStatus.outputs: array expected");
3217
+ message.outputs = [];
3218
+ for (let i = 0; i < object.outputs.length; ++i) {
3219
+ if (typeof object.outputs[i] !== "object")
3220
+ throw TypeError(".sesame.v1.audio.AudioMixerStatus.outputs: object expected");
3221
+ message.outputs[i] = $root.sesame.v1.audio.AudioMixerOutputStatus.fromObject(object.outputs[i]);
3222
+ }
3223
+ }
2437
3224
  return message;
2438
3225
  };
2439
3226
  AudioMixerStatus.toObject = function toObject(message, options) {
@@ -2443,10 +3230,15 @@ var sesame = $root.sesame = (() => {
2443
3230
  if (options.arrays || options.defaults) {
2444
3231
  object.vu = [];
2445
3232
  object.channels = [];
3233
+ object.masterPlugins = [];
3234
+ object.outputs = [];
2446
3235
  }
2447
3236
  if (options.defaults) {
2448
3237
  object.id = "";
2449
3238
  object.outputType = options.enums === String ? "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED" : 0;
3239
+ object.masterLevel = 0;
3240
+ object.masterAutomationLevel = 0;
3241
+ object.masterEffectiveLevel = 0;
2450
3242
  }
2451
3243
  if (message.id != null && message.hasOwnProperty("id"))
2452
3244
  object.id = message.id;
@@ -2462,6 +3254,22 @@ var sesame = $root.sesame = (() => {
2462
3254
  for (let j = 0; j < message.channels.length; ++j)
2463
3255
  object.channels[j] = $root.sesame.v1.audio.AudioChannelStatus.toObject(message.channels[j], options);
2464
3256
  }
3257
+ if (message.masterLevel != null && message.hasOwnProperty("masterLevel"))
3258
+ object.masterLevel = options.json && !isFinite(message.masterLevel) ? String(message.masterLevel) : message.masterLevel;
3259
+ if (message.masterAutomationLevel != null && message.hasOwnProperty("masterAutomationLevel"))
3260
+ object.masterAutomationLevel = options.json && !isFinite(message.masterAutomationLevel) ? String(message.masterAutomationLevel) : message.masterAutomationLevel;
3261
+ if (message.masterEffectiveLevel != null && message.hasOwnProperty("masterEffectiveLevel"))
3262
+ object.masterEffectiveLevel = options.json && !isFinite(message.masterEffectiveLevel) ? String(message.masterEffectiveLevel) : message.masterEffectiveLevel;
3263
+ if (message.masterPlugins && message.masterPlugins.length) {
3264
+ object.masterPlugins = [];
3265
+ for (let j = 0; j < message.masterPlugins.length; ++j)
3266
+ object.masterPlugins[j] = $root.sesame.v1.audio.AudioChannelPluginStatus.toObject(message.masterPlugins[j], options);
3267
+ }
3268
+ if (message.outputs && message.outputs.length) {
3269
+ object.outputs = [];
3270
+ for (let j = 0; j < message.outputs.length; ++j)
3271
+ object.outputs[j] = $root.sesame.v1.audio.AudioMixerOutputStatus.toObject(message.outputs[j], options);
3272
+ }
2465
3273
  return object;
2466
3274
  };
2467
3275
  AudioMixerStatus.prototype.toJSON = function toJSON() {
@@ -2616,6 +3424,9 @@ var sesame = $root.sesame = (() => {
2616
3424
  AudioChannelControlRequest.prototype.level = null;
2617
3425
  AudioChannelControlRequest.prototype.pan = null;
2618
3426
  AudioChannelControlRequest.prototype.plugins = $util.emptyArray;
3427
+ AudioChannelControlRequest.prototype.mute = null;
3428
+ AudioChannelControlRequest.prototype.automationLevel = null;
3429
+ AudioChannelControlRequest.prototype.automationMute = null;
2619
3430
  let $oneOfFields;
2620
3431
  Object.defineProperty(AudioChannelControlRequest.prototype, "_level", {
2621
3432
  get: $util.oneOfGetter($oneOfFields = ["level"]),
@@ -2625,6 +3436,18 @@ var sesame = $root.sesame = (() => {
2625
3436
  get: $util.oneOfGetter($oneOfFields = ["pan"]),
2626
3437
  set: $util.oneOfSetter($oneOfFields)
2627
3438
  });
3439
+ Object.defineProperty(AudioChannelControlRequest.prototype, "_mute", {
3440
+ get: $util.oneOfGetter($oneOfFields = ["mute"]),
3441
+ set: $util.oneOfSetter($oneOfFields)
3442
+ });
3443
+ Object.defineProperty(AudioChannelControlRequest.prototype, "_automationLevel", {
3444
+ get: $util.oneOfGetter($oneOfFields = ["automationLevel"]),
3445
+ set: $util.oneOfSetter($oneOfFields)
3446
+ });
3447
+ Object.defineProperty(AudioChannelControlRequest.prototype, "_automationMute", {
3448
+ get: $util.oneOfGetter($oneOfFields = ["automationMute"]),
3449
+ set: $util.oneOfSetter($oneOfFields)
3450
+ });
2628
3451
  AudioChannelControlRequest.create = function create(properties) {
2629
3452
  return new AudioChannelControlRequest(properties);
2630
3453
  };
@@ -2652,6 +3475,21 @@ var sesame = $root.sesame = (() => {
2652
3475
  /* id 4, wireType 2 =*/
2653
3476
  34
2654
3477
  ).fork()).ldelim();
3478
+ if (message.mute != null && Object.hasOwnProperty.call(message, "mute"))
3479
+ writer.uint32(
3480
+ /* id 5, wireType 0 =*/
3481
+ 40
3482
+ ).bool(message.mute);
3483
+ if (message.automationLevel != null && Object.hasOwnProperty.call(message, "automationLevel"))
3484
+ writer.uint32(
3485
+ /* id 6, wireType 5 =*/
3486
+ 53
3487
+ ).float(message.automationLevel);
3488
+ if (message.automationMute != null && Object.hasOwnProperty.call(message, "automationMute"))
3489
+ writer.uint32(
3490
+ /* id 7, wireType 0 =*/
3491
+ 56
3492
+ ).bool(message.automationMute);
2655
3493
  return writer;
2656
3494
  };
2657
3495
  AudioChannelControlRequest.encodeDelimited = function encodeDelimited(message, writer) {
@@ -2684,6 +3522,18 @@ var sesame = $root.sesame = (() => {
2684
3522
  message.plugins.push($root.sesame.v1.audio.AudioPluginControlRequest.decode(reader, reader.uint32()));
2685
3523
  break;
2686
3524
  }
3525
+ case 5: {
3526
+ message.mute = reader.bool();
3527
+ break;
3528
+ }
3529
+ case 6: {
3530
+ message.automationLevel = reader.float();
3531
+ break;
3532
+ }
3533
+ case 7: {
3534
+ message.automationMute = reader.bool();
3535
+ break;
3536
+ }
2687
3537
  default:
2688
3538
  reader.skipType(tag & 7);
2689
3539
  break;
@@ -2723,6 +3573,21 @@ var sesame = $root.sesame = (() => {
2723
3573
  return "plugins." + error;
2724
3574
  }
2725
3575
  }
3576
+ if (message.mute != null && message.hasOwnProperty("mute")) {
3577
+ properties._mute = 1;
3578
+ if (typeof message.mute !== "boolean")
3579
+ return "mute: boolean expected";
3580
+ }
3581
+ if (message.automationLevel != null && message.hasOwnProperty("automationLevel")) {
3582
+ properties._automationLevel = 1;
3583
+ if (typeof message.automationLevel !== "number")
3584
+ return "automationLevel: number expected";
3585
+ }
3586
+ if (message.automationMute != null && message.hasOwnProperty("automationMute")) {
3587
+ properties._automationMute = 1;
3588
+ if (typeof message.automationMute !== "boolean")
3589
+ return "automationMute: boolean expected";
3590
+ }
2726
3591
  return null;
2727
3592
  };
2728
3593
  AudioChannelControlRequest.fromObject = function fromObject(object) {
@@ -2745,6 +3610,12 @@ var sesame = $root.sesame = (() => {
2745
3610
  message.plugins[i] = $root.sesame.v1.audio.AudioPluginControlRequest.fromObject(object.plugins[i]);
2746
3611
  }
2747
3612
  }
3613
+ if (object.mute != null)
3614
+ message.mute = Boolean(object.mute);
3615
+ if (object.automationLevel != null)
3616
+ message.automationLevel = Number(object.automationLevel);
3617
+ if (object.automationMute != null)
3618
+ message.automationMute = Boolean(object.automationMute);
2748
3619
  return message;
2749
3620
  };
2750
3621
  AudioChannelControlRequest.toObject = function toObject(message, options) {
@@ -2772,6 +3643,21 @@ var sesame = $root.sesame = (() => {
2772
3643
  for (let j = 0; j < message.plugins.length; ++j)
2773
3644
  object.plugins[j] = $root.sesame.v1.audio.AudioPluginControlRequest.toObject(message.plugins[j], options);
2774
3645
  }
3646
+ if (message.mute != null && message.hasOwnProperty("mute")) {
3647
+ object.mute = message.mute;
3648
+ if (options.oneofs)
3649
+ object._mute = "mute";
3650
+ }
3651
+ if (message.automationLevel != null && message.hasOwnProperty("automationLevel")) {
3652
+ object.automationLevel = options.json && !isFinite(message.automationLevel) ? String(message.automationLevel) : message.automationLevel;
3653
+ if (options.oneofs)
3654
+ object._automationLevel = "automationLevel";
3655
+ }
3656
+ if (message.automationMute != null && message.hasOwnProperty("automationMute")) {
3657
+ object.automationMute = message.automationMute;
3658
+ if (options.oneofs)
3659
+ object._automationMute = "automationMute";
3660
+ }
2775
3661
  return object;
2776
3662
  };
2777
3663
  AudioChannelControlRequest.prototype.toJSON = function toJSON() {
@@ -2788,6 +3674,7 @@ var sesame = $root.sesame = (() => {
2788
3674
  audio.AudioControlRequest = function() {
2789
3675
  function AudioControlRequest(properties) {
2790
3676
  this.channels = [];
3677
+ this.masterPlugins = [];
2791
3678
  if (properties) {
2792
3679
  for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
2793
3680
  if (properties[keys[i]] != null)
@@ -2795,6 +3682,18 @@ var sesame = $root.sesame = (() => {
2795
3682
  }
2796
3683
  }
2797
3684
  AudioControlRequest.prototype.channels = $util.emptyArray;
3685
+ AudioControlRequest.prototype.masterLevel = null;
3686
+ AudioControlRequest.prototype.masterAutomationLevel = null;
3687
+ AudioControlRequest.prototype.masterPlugins = $util.emptyArray;
3688
+ let $oneOfFields;
3689
+ Object.defineProperty(AudioControlRequest.prototype, "_masterLevel", {
3690
+ get: $util.oneOfGetter($oneOfFields = ["masterLevel"]),
3691
+ set: $util.oneOfSetter($oneOfFields)
3692
+ });
3693
+ Object.defineProperty(AudioControlRequest.prototype, "_masterAutomationLevel", {
3694
+ get: $util.oneOfGetter($oneOfFields = ["masterAutomationLevel"]),
3695
+ set: $util.oneOfSetter($oneOfFields)
3696
+ });
2798
3697
  AudioControlRequest.create = function create(properties) {
2799
3698
  return new AudioControlRequest(properties);
2800
3699
  };
@@ -2807,6 +3706,22 @@ var sesame = $root.sesame = (() => {
2807
3706
  /* id 1, wireType 2 =*/
2808
3707
  10
2809
3708
  ).fork()).ldelim();
3709
+ if (message.masterLevel != null && Object.hasOwnProperty.call(message, "masterLevel"))
3710
+ writer.uint32(
3711
+ /* id 2, wireType 5 =*/
3712
+ 21
3713
+ ).float(message.masterLevel);
3714
+ if (message.masterAutomationLevel != null && Object.hasOwnProperty.call(message, "masterAutomationLevel"))
3715
+ writer.uint32(
3716
+ /* id 3, wireType 5 =*/
3717
+ 29
3718
+ ).float(message.masterAutomationLevel);
3719
+ if (message.masterPlugins != null && message.masterPlugins.length)
3720
+ for (let i = 0; i < message.masterPlugins.length; ++i)
3721
+ $root.sesame.v1.audio.AudioPluginControlRequest.encode(message.masterPlugins[i], writer.uint32(
3722
+ /* id 4, wireType 2 =*/
3723
+ 34
3724
+ ).fork()).ldelim();
2810
3725
  return writer;
2811
3726
  };
2812
3727
  AudioControlRequest.encodeDelimited = function encodeDelimited(message, writer) {
@@ -2827,6 +3742,20 @@ var sesame = $root.sesame = (() => {
2827
3742
  message.channels.push($root.sesame.v1.audio.AudioChannelControlRequest.decode(reader, reader.uint32()));
2828
3743
  break;
2829
3744
  }
3745
+ case 2: {
3746
+ message.masterLevel = reader.float();
3747
+ break;
3748
+ }
3749
+ case 3: {
3750
+ message.masterAutomationLevel = reader.float();
3751
+ break;
3752
+ }
3753
+ case 4: {
3754
+ if (!(message.masterPlugins && message.masterPlugins.length))
3755
+ message.masterPlugins = [];
3756
+ message.masterPlugins.push($root.sesame.v1.audio.AudioPluginControlRequest.decode(reader, reader.uint32()));
3757
+ break;
3758
+ }
2830
3759
  default:
2831
3760
  reader.skipType(tag & 7);
2832
3761
  break;
@@ -2842,6 +3771,7 @@ var sesame = $root.sesame = (() => {
2842
3771
  AudioControlRequest.verify = function verify(message) {
2843
3772
  if (typeof message !== "object" || message === null)
2844
3773
  return "object expected";
3774
+ let properties = {};
2845
3775
  if (message.channels != null && message.hasOwnProperty("channels")) {
2846
3776
  if (!Array.isArray(message.channels))
2847
3777
  return "channels: array expected";
@@ -2851,6 +3781,25 @@ var sesame = $root.sesame = (() => {
2851
3781
  return "channels." + error;
2852
3782
  }
2853
3783
  }
3784
+ if (message.masterLevel != null && message.hasOwnProperty("masterLevel")) {
3785
+ properties._masterLevel = 1;
3786
+ if (typeof message.masterLevel !== "number")
3787
+ return "masterLevel: number expected";
3788
+ }
3789
+ if (message.masterAutomationLevel != null && message.hasOwnProperty("masterAutomationLevel")) {
3790
+ properties._masterAutomationLevel = 1;
3791
+ if (typeof message.masterAutomationLevel !== "number")
3792
+ return "masterAutomationLevel: number expected";
3793
+ }
3794
+ if (message.masterPlugins != null && message.hasOwnProperty("masterPlugins")) {
3795
+ if (!Array.isArray(message.masterPlugins))
3796
+ return "masterPlugins: array expected";
3797
+ for (let i = 0; i < message.masterPlugins.length; ++i) {
3798
+ let error = $root.sesame.v1.audio.AudioPluginControlRequest.verify(message.masterPlugins[i]);
3799
+ if (error)
3800
+ return "masterPlugins." + error;
3801
+ }
3802
+ }
2854
3803
  return null;
2855
3804
  };
2856
3805
  AudioControlRequest.fromObject = function fromObject(object) {
@@ -2867,19 +3816,50 @@ var sesame = $root.sesame = (() => {
2867
3816
  message.channels[i] = $root.sesame.v1.audio.AudioChannelControlRequest.fromObject(object.channels[i]);
2868
3817
  }
2869
3818
  }
3819
+ if (object.masterLevel != null)
3820
+ message.masterLevel = Number(object.masterLevel);
3821
+ if (object.masterAutomationLevel != null)
3822
+ message.masterAutomationLevel = Number(object.masterAutomationLevel);
3823
+ if (object.masterPlugins) {
3824
+ if (!Array.isArray(object.masterPlugins))
3825
+ throw TypeError(".sesame.v1.audio.AudioControlRequest.masterPlugins: array expected");
3826
+ message.masterPlugins = [];
3827
+ for (let i = 0; i < object.masterPlugins.length; ++i) {
3828
+ if (typeof object.masterPlugins[i] !== "object")
3829
+ throw TypeError(".sesame.v1.audio.AudioControlRequest.masterPlugins: object expected");
3830
+ message.masterPlugins[i] = $root.sesame.v1.audio.AudioPluginControlRequest.fromObject(object.masterPlugins[i]);
3831
+ }
3832
+ }
2870
3833
  return message;
2871
3834
  };
2872
3835
  AudioControlRequest.toObject = function toObject(message, options) {
2873
3836
  if (!options)
2874
3837
  options = {};
2875
3838
  let object = {};
2876
- if (options.arrays || options.defaults)
3839
+ if (options.arrays || options.defaults) {
2877
3840
  object.channels = [];
3841
+ object.masterPlugins = [];
3842
+ }
2878
3843
  if (message.channels && message.channels.length) {
2879
3844
  object.channels = [];
2880
3845
  for (let j = 0; j < message.channels.length; ++j)
2881
3846
  object.channels[j] = $root.sesame.v1.audio.AudioChannelControlRequest.toObject(message.channels[j], options);
2882
3847
  }
3848
+ if (message.masterLevel != null && message.hasOwnProperty("masterLevel")) {
3849
+ object.masterLevel = options.json && !isFinite(message.masterLevel) ? String(message.masterLevel) : message.masterLevel;
3850
+ if (options.oneofs)
3851
+ object._masterLevel = "masterLevel";
3852
+ }
3853
+ if (message.masterAutomationLevel != null && message.hasOwnProperty("masterAutomationLevel")) {
3854
+ object.masterAutomationLevel = options.json && !isFinite(message.masterAutomationLevel) ? String(message.masterAutomationLevel) : message.masterAutomationLevel;
3855
+ if (options.oneofs)
3856
+ object._masterAutomationLevel = "masterAutomationLevel";
3857
+ }
3858
+ if (message.masterPlugins && message.masterPlugins.length) {
3859
+ object.masterPlugins = [];
3860
+ for (let j = 0; j < message.masterPlugins.length; ++j)
3861
+ object.masterPlugins[j] = $root.sesame.v1.audio.AudioPluginControlRequest.toObject(message.masterPlugins[j], options);
3862
+ }
2883
3863
  return object;
2884
3864
  };
2885
3865
  AudioControlRequest.prototype.toJSON = function toJSON() {
@@ -23847,11 +24827,12 @@ var CommandList = class {
23847
24827
  }
23848
24828
  applyTransaction(transaction) {
23849
24829
  this.cl.commandList.forEach((item) => {
23850
- if (transaction.transactionId !== void 0) {
24830
+ if (transaction.transactionId !== void 0 && item.transactionId == null) {
23851
24831
  item.transactionId = transaction.transactionId;
23852
24832
  }
23853
24833
  if (transaction.dependencies !== void 0) {
23854
- item.transactionDeps = item.transactionDeps ? item.transactionDeps.concat(transaction.dependencies) : transaction.dependencies;
24834
+ const existing = item.transactionDeps ?? [];
24835
+ item.transactionDeps = [...new Set(existing.concat(transaction.dependencies))];
23855
24836
  }
23856
24837
  });
23857
24838
  }
@@ -24034,7 +25015,7 @@ var CommandList = class {
24034
25015
  }
24035
25016
  }
24036
25017
  item.updateSourceTransport = transportCmd;
24037
- return this.add(item, timeOffsetMs, { transactionId: msg.transactionId, dependencies: [] });
25018
+ return this.add(item, timeOffsetMs, { transactionId: msg.transactionId, dependencies: msg.dependencies });
24038
25019
  }
24039
25020
  sourceUpdate(id, cfg, timeOffsetMs) {
24040
25021
  let item = new sesame.v1.commands.CommandListItem();
@@ -24786,15 +25767,21 @@ var EaseKind = /* @__PURE__ */ ((EaseKind2) => {
24786
25767
  EaseKind2["BACK_INOUT"] = "backInOut";
24787
25768
  return EaseKind2;
24788
25769
  })(EaseKind || {});
25770
+ function appendQueryParam(url, key, value) {
25771
+ if (!value) return url;
25772
+ const separator = url.includes("?") ? "&" : "?";
25773
+ return `${url}${separator}${encodeURIComponent(key)}=${encodeURIComponent(value)}`;
25774
+ }
24789
25775
  var SesameClient = class extends import_events3.EventEmitter {
24790
- constructor(portOrUrl) {
25776
+ constructor(portOrUrl, clientOptions = {}) {
24791
25777
  super();
24792
25778
  this.subscriptions = [];
24793
25779
  this.onMediaPacket = () => {
24794
25780
  };
24795
25781
  this.onCallbackMessage = () => {
24796
25782
  };
24797
- const url = typeof portOrUrl === "number" ? `ws://127.0.0.1:${portOrUrl}/api` : portOrUrl;
25783
+ const baseUrl = typeof portOrUrl === "number" ? `ws://127.0.0.1:${portOrUrl}/api` : portOrUrl;
25784
+ const url = appendQueryParam(baseUrl, "client", clientOptions.wsClientLabel ?? "");
24798
25785
  this.conn = new SesameConnection({
24799
25786
  url,
24800
25787
  autoConnect: true,