@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/proto/api.js CHANGED
@@ -881,6 +881,9 @@ export const sesame = $root.sesame = (() => {
881
881
  * @property {number|null} [level] AudioMixerChannel level
882
882
  * @property {number|null} [pan] AudioMixerChannel pan
883
883
  * @property {Array.<sesame.v1.audio.IAudioPlugin>|null} [plugins] AudioMixerChannel plugins
884
+ * @property {boolean|null} [mute] AudioMixerChannel mute
885
+ * @property {number|null} [automationLevel] AudioMixerChannel automationLevel
886
+ * @property {boolean|null} [automationMute] AudioMixerChannel automationMute
884
887
  */
885
888
 
886
889
  /**
@@ -956,6 +959,39 @@ export const sesame = $root.sesame = (() => {
956
959
  */
957
960
  AudioMixerChannel.prototype.plugins = $util.emptyArray;
958
961
 
962
+ /**
963
+ * AudioMixerChannel mute.
964
+ * @member {boolean} mute
965
+ * @memberof sesame.v1.audio.AudioMixerChannel
966
+ * @instance
967
+ */
968
+ AudioMixerChannel.prototype.mute = false;
969
+
970
+ /**
971
+ * AudioMixerChannel automationLevel.
972
+ * @member {number|null|undefined} automationLevel
973
+ * @memberof sesame.v1.audio.AudioMixerChannel
974
+ * @instance
975
+ */
976
+ AudioMixerChannel.prototype.automationLevel = null;
977
+
978
+ /**
979
+ * AudioMixerChannel automationMute.
980
+ * @member {boolean} automationMute
981
+ * @memberof sesame.v1.audio.AudioMixerChannel
982
+ * @instance
983
+ */
984
+ AudioMixerChannel.prototype.automationMute = false;
985
+
986
+ // OneOf field names bound to virtual getters and setters
987
+ let $oneOfFields;
988
+
989
+ // Virtual OneOf for proto3 optional field
990
+ Object.defineProperty(AudioMixerChannel.prototype, "_automationLevel", {
991
+ get: $util.oneOfGetter($oneOfFields = ["automationLevel"]),
992
+ set: $util.oneOfSetter($oneOfFields)
993
+ });
994
+
959
995
  /**
960
996
  * Creates a new AudioMixerChannel instance using the specified properties.
961
997
  * @function create
@@ -999,6 +1035,12 @@ export const sesame = $root.sesame = (() => {
999
1035
  if (message.plugins != null && message.plugins.length)
1000
1036
  for (let i = 0; i < message.plugins.length; ++i)
1001
1037
  $root.sesame.v1.audio.AudioPlugin.encode(message.plugins[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();
1038
+ if (message.mute != null && Object.hasOwnProperty.call(message, "mute"))
1039
+ writer.uint32(/* id 8, wireType 0 =*/64).bool(message.mute);
1040
+ if (message.automationLevel != null && Object.hasOwnProperty.call(message, "automationLevel"))
1041
+ writer.uint32(/* id 9, wireType 5 =*/77).float(message.automationLevel);
1042
+ if (message.automationMute != null && Object.hasOwnProperty.call(message, "automationMute"))
1043
+ writer.uint32(/* id 10, wireType 0 =*/80).bool(message.automationMute);
1002
1044
  return writer;
1003
1045
  };
1004
1046
 
@@ -1072,6 +1114,18 @@ export const sesame = $root.sesame = (() => {
1072
1114
  message.plugins.push($root.sesame.v1.audio.AudioPlugin.decode(reader, reader.uint32()));
1073
1115
  break;
1074
1116
  }
1117
+ case 8: {
1118
+ message.mute = reader.bool();
1119
+ break;
1120
+ }
1121
+ case 9: {
1122
+ message.automationLevel = reader.float();
1123
+ break;
1124
+ }
1125
+ case 10: {
1126
+ message.automationMute = reader.bool();
1127
+ break;
1128
+ }
1075
1129
  default:
1076
1130
  reader.skipType(tag & 7);
1077
1131
  break;
@@ -1107,6 +1161,7 @@ export const sesame = $root.sesame = (() => {
1107
1161
  AudioMixerChannel.verify = function verify(message) {
1108
1162
  if (typeof message !== "object" || message === null)
1109
1163
  return "object expected";
1164
+ let properties = {};
1110
1165
  if (message.id != null && message.hasOwnProperty("id"))
1111
1166
  if (!$util.isString(message.id))
1112
1167
  return "id: string expected";
@@ -1144,6 +1199,17 @@ export const sesame = $root.sesame = (() => {
1144
1199
  return "plugins." + error;
1145
1200
  }
1146
1201
  }
1202
+ if (message.mute != null && message.hasOwnProperty("mute"))
1203
+ if (typeof message.mute !== "boolean")
1204
+ return "mute: boolean expected";
1205
+ if (message.automationLevel != null && message.hasOwnProperty("automationLevel")) {
1206
+ properties._automationLevel = 1;
1207
+ if (typeof message.automationLevel !== "number")
1208
+ return "automationLevel: number expected";
1209
+ }
1210
+ if (message.automationMute != null && message.hasOwnProperty("automationMute"))
1211
+ if (typeof message.automationMute !== "boolean")
1212
+ return "automationMute: boolean expected";
1147
1213
  return null;
1148
1214
  };
1149
1215
 
@@ -1204,6 +1270,12 @@ export const sesame = $root.sesame = (() => {
1204
1270
  message.plugins[i] = $root.sesame.v1.audio.AudioPlugin.fromObject(object.plugins[i]);
1205
1271
  }
1206
1272
  }
1273
+ if (object.mute != null)
1274
+ message.mute = Boolean(object.mute);
1275
+ if (object.automationLevel != null)
1276
+ message.automationLevel = Number(object.automationLevel);
1277
+ if (object.automationMute != null)
1278
+ message.automationMute = Boolean(object.automationMute);
1207
1279
  return message;
1208
1280
  };
1209
1281
 
@@ -1230,6 +1302,8 @@ export const sesame = $root.sesame = (() => {
1230
1302
  object.channelType = options.enums === String ? "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED" : 0;
1231
1303
  object.level = 0;
1232
1304
  object.pan = 0;
1305
+ object.mute = false;
1306
+ object.automationMute = false;
1233
1307
  }
1234
1308
  if (message.id != null && message.hasOwnProperty("id"))
1235
1309
  object.id = message.id;
@@ -1251,6 +1325,15 @@ export const sesame = $root.sesame = (() => {
1251
1325
  for (let j = 0; j < message.plugins.length; ++j)
1252
1326
  object.plugins[j] = $root.sesame.v1.audio.AudioPlugin.toObject(message.plugins[j], options);
1253
1327
  }
1328
+ if (message.mute != null && message.hasOwnProperty("mute"))
1329
+ object.mute = message.mute;
1330
+ if (message.automationLevel != null && message.hasOwnProperty("automationLevel")) {
1331
+ object.automationLevel = options.json && !isFinite(message.automationLevel) ? String(message.automationLevel) : message.automationLevel;
1332
+ if (options.oneofs)
1333
+ object._automationLevel = "automationLevel";
1334
+ }
1335
+ if (message.automationMute != null && message.hasOwnProperty("automationMute"))
1336
+ object.automationMute = message.automationMute;
1254
1337
  return object;
1255
1338
  };
1256
1339
 
@@ -1283,27 +1366,27 @@ export const sesame = $root.sesame = (() => {
1283
1366
  return AudioMixerChannel;
1284
1367
  })();
1285
1368
 
1286
- audio.AudioMixerConfig = (function() {
1369
+ audio.AudioMixerOutput = (function() {
1287
1370
 
1288
1371
  /**
1289
- * Properties of an AudioMixerConfig.
1372
+ * Properties of an AudioMixerOutput.
1290
1373
  * @memberof sesame.v1.audio
1291
- * @interface IAudioMixerConfig
1292
- * @property {Array.<sesame.v1.audio.IAudioMixerChannel>|null} [channels] AudioMixerConfig channels
1293
- * @property {sesame.v1.audio.AudioMixerChannelType|null} [outputType] AudioMixerConfig outputType
1294
- * @property {number|null} [order] AudioMixerConfig order
1374
+ * @interface IAudioMixerOutput
1375
+ * @property {string|null} [id] AudioMixerOutput id
1376
+ * @property {Array.<string>|null} [excludedChannelIds] AudioMixerOutput excludedChannelIds
1377
+ * @property {boolean|null} [includeMasterPlugins] AudioMixerOutput includeMasterPlugins
1295
1378
  */
1296
1379
 
1297
1380
  /**
1298
- * Constructs a new AudioMixerConfig.
1381
+ * Constructs a new AudioMixerOutput.
1299
1382
  * @memberof sesame.v1.audio
1300
- * @classdesc Represents an AudioMixerConfig.
1301
- * @implements IAudioMixerConfig
1383
+ * @classdesc Represents an AudioMixerOutput.
1384
+ * @implements IAudioMixerOutput
1302
1385
  * @constructor
1303
- * @param {sesame.v1.audio.IAudioMixerConfig=} [properties] Properties to set
1386
+ * @param {sesame.v1.audio.IAudioMixerOutput=} [properties] Properties to set
1304
1387
  */
1305
- function AudioMixerConfig(properties) {
1306
- this.channels = [];
1388
+ function AudioMixerOutput(properties) {
1389
+ this.excludedChannelIds = [];
1307
1390
  if (properties)
1308
1391
  for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
1309
1392
  if (properties[keys[i]] != null)
@@ -1311,108 +1394,117 @@ export const sesame = $root.sesame = (() => {
1311
1394
  }
1312
1395
 
1313
1396
  /**
1314
- * AudioMixerConfig channels.
1315
- * @member {Array.<sesame.v1.audio.IAudioMixerChannel>} channels
1316
- * @memberof sesame.v1.audio.AudioMixerConfig
1397
+ * AudioMixerOutput id.
1398
+ * @member {string} id
1399
+ * @memberof sesame.v1.audio.AudioMixerOutput
1317
1400
  * @instance
1318
1401
  */
1319
- AudioMixerConfig.prototype.channels = $util.emptyArray;
1402
+ AudioMixerOutput.prototype.id = "";
1320
1403
 
1321
1404
  /**
1322
- * AudioMixerConfig outputType.
1323
- * @member {sesame.v1.audio.AudioMixerChannelType} outputType
1324
- * @memberof sesame.v1.audio.AudioMixerConfig
1405
+ * AudioMixerOutput excludedChannelIds.
1406
+ * @member {Array.<string>} excludedChannelIds
1407
+ * @memberof sesame.v1.audio.AudioMixerOutput
1325
1408
  * @instance
1326
1409
  */
1327
- AudioMixerConfig.prototype.outputType = 0;
1410
+ AudioMixerOutput.prototype.excludedChannelIds = $util.emptyArray;
1328
1411
 
1329
1412
  /**
1330
- * AudioMixerConfig order.
1331
- * @member {number} order
1332
- * @memberof sesame.v1.audio.AudioMixerConfig
1413
+ * AudioMixerOutput includeMasterPlugins.
1414
+ * @member {boolean|null|undefined} includeMasterPlugins
1415
+ * @memberof sesame.v1.audio.AudioMixerOutput
1333
1416
  * @instance
1334
1417
  */
1335
- AudioMixerConfig.prototype.order = 0;
1418
+ AudioMixerOutput.prototype.includeMasterPlugins = null;
1419
+
1420
+ // OneOf field names bound to virtual getters and setters
1421
+ let $oneOfFields;
1422
+
1423
+ // Virtual OneOf for proto3 optional field
1424
+ Object.defineProperty(AudioMixerOutput.prototype, "_includeMasterPlugins", {
1425
+ get: $util.oneOfGetter($oneOfFields = ["includeMasterPlugins"]),
1426
+ set: $util.oneOfSetter($oneOfFields)
1427
+ });
1336
1428
 
1337
1429
  /**
1338
- * Creates a new AudioMixerConfig instance using the specified properties.
1430
+ * Creates a new AudioMixerOutput instance using the specified properties.
1339
1431
  * @function create
1340
- * @memberof sesame.v1.audio.AudioMixerConfig
1432
+ * @memberof sesame.v1.audio.AudioMixerOutput
1341
1433
  * @static
1342
- * @param {sesame.v1.audio.IAudioMixerConfig=} [properties] Properties to set
1343
- * @returns {sesame.v1.audio.AudioMixerConfig} AudioMixerConfig instance
1434
+ * @param {sesame.v1.audio.IAudioMixerOutput=} [properties] Properties to set
1435
+ * @returns {sesame.v1.audio.AudioMixerOutput} AudioMixerOutput instance
1344
1436
  */
1345
- AudioMixerConfig.create = function create(properties) {
1346
- return new AudioMixerConfig(properties);
1437
+ AudioMixerOutput.create = function create(properties) {
1438
+ return new AudioMixerOutput(properties);
1347
1439
  };
1348
1440
 
1349
1441
  /**
1350
- * Encodes the specified AudioMixerConfig message. Does not implicitly {@link sesame.v1.audio.AudioMixerConfig.verify|verify} messages.
1442
+ * Encodes the specified AudioMixerOutput message. Does not implicitly {@link sesame.v1.audio.AudioMixerOutput.verify|verify} messages.
1351
1443
  * @function encode
1352
- * @memberof sesame.v1.audio.AudioMixerConfig
1444
+ * @memberof sesame.v1.audio.AudioMixerOutput
1353
1445
  * @static
1354
- * @param {sesame.v1.audio.IAudioMixerConfig} message AudioMixerConfig message or plain object to encode
1446
+ * @param {sesame.v1.audio.IAudioMixerOutput} message AudioMixerOutput message or plain object to encode
1355
1447
  * @param {$protobuf.Writer} [writer] Writer to encode to
1356
1448
  * @returns {$protobuf.Writer} Writer
1357
1449
  */
1358
- AudioMixerConfig.encode = function encode(message, writer) {
1450
+ AudioMixerOutput.encode = function encode(message, writer) {
1359
1451
  if (!writer)
1360
1452
  writer = $Writer.create();
1361
- if (message.channels != null && message.channels.length)
1362
- for (let i = 0; i < message.channels.length; ++i)
1363
- $root.sesame.v1.audio.AudioMixerChannel.encode(message.channels[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
1364
- if (message.outputType != null && Object.hasOwnProperty.call(message, "outputType"))
1365
- writer.uint32(/* id 2, wireType 0 =*/16).int32(message.outputType);
1366
- if (message.order != null && Object.hasOwnProperty.call(message, "order"))
1367
- writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.order);
1453
+ if (message.id != null && Object.hasOwnProperty.call(message, "id"))
1454
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.id);
1455
+ if (message.excludedChannelIds != null && message.excludedChannelIds.length)
1456
+ for (let i = 0; i < message.excludedChannelIds.length; ++i)
1457
+ writer.uint32(/* id 2, wireType 2 =*/18).string(message.excludedChannelIds[i]);
1458
+ if (message.includeMasterPlugins != null && Object.hasOwnProperty.call(message, "includeMasterPlugins"))
1459
+ writer.uint32(/* id 3, wireType 0 =*/24).bool(message.includeMasterPlugins);
1368
1460
  return writer;
1369
1461
  };
1370
1462
 
1371
1463
  /**
1372
- * Encodes the specified AudioMixerConfig message, length delimited. Does not implicitly {@link sesame.v1.audio.AudioMixerConfig.verify|verify} messages.
1464
+ * Encodes the specified AudioMixerOutput message, length delimited. Does not implicitly {@link sesame.v1.audio.AudioMixerOutput.verify|verify} messages.
1373
1465
  * @function encodeDelimited
1374
- * @memberof sesame.v1.audio.AudioMixerConfig
1466
+ * @memberof sesame.v1.audio.AudioMixerOutput
1375
1467
  * @static
1376
- * @param {sesame.v1.audio.IAudioMixerConfig} message AudioMixerConfig message or plain object to encode
1468
+ * @param {sesame.v1.audio.IAudioMixerOutput} message AudioMixerOutput message or plain object to encode
1377
1469
  * @param {$protobuf.Writer} [writer] Writer to encode to
1378
1470
  * @returns {$protobuf.Writer} Writer
1379
1471
  */
1380
- AudioMixerConfig.encodeDelimited = function encodeDelimited(message, writer) {
1472
+ AudioMixerOutput.encodeDelimited = function encodeDelimited(message, writer) {
1381
1473
  return this.encode(message, writer).ldelim();
1382
1474
  };
1383
1475
 
1384
1476
  /**
1385
- * Decodes an AudioMixerConfig message from the specified reader or buffer.
1477
+ * Decodes an AudioMixerOutput message from the specified reader or buffer.
1386
1478
  * @function decode
1387
- * @memberof sesame.v1.audio.AudioMixerConfig
1479
+ * @memberof sesame.v1.audio.AudioMixerOutput
1388
1480
  * @static
1389
1481
  * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1390
1482
  * @param {number} [length] Message length if known beforehand
1391
- * @returns {sesame.v1.audio.AudioMixerConfig} AudioMixerConfig
1483
+ * @returns {sesame.v1.audio.AudioMixerOutput} AudioMixerOutput
1392
1484
  * @throws {Error} If the payload is not a reader or valid buffer
1393
1485
  * @throws {$protobuf.util.ProtocolError} If required fields are missing
1394
1486
  */
1395
- AudioMixerConfig.decode = function decode(reader, length, error) {
1487
+ AudioMixerOutput.decode = function decode(reader, length, error) {
1396
1488
  if (!(reader instanceof $Reader))
1397
1489
  reader = $Reader.create(reader);
1398
- let end = length === undefined ? reader.len : reader.pos + length, message = new $root.sesame.v1.audio.AudioMixerConfig();
1490
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.sesame.v1.audio.AudioMixerOutput();
1399
1491
  while (reader.pos < end) {
1400
1492
  let tag = reader.uint32();
1401
1493
  if (tag === error)
1402
1494
  break;
1403
1495
  switch (tag >>> 3) {
1404
1496
  case 1: {
1405
- if (!(message.channels && message.channels.length))
1406
- message.channels = [];
1407
- message.channels.push($root.sesame.v1.audio.AudioMixerChannel.decode(reader, reader.uint32()));
1497
+ message.id = reader.string();
1408
1498
  break;
1409
1499
  }
1410
1500
  case 2: {
1411
- message.outputType = reader.int32();
1501
+ if (!(message.excludedChannelIds && message.excludedChannelIds.length))
1502
+ message.excludedChannelIds = [];
1503
+ message.excludedChannelIds.push(reader.string());
1412
1504
  break;
1413
1505
  }
1414
1506
  case 3: {
1415
- message.order = reader.uint32();
1507
+ message.includeMasterPlugins = reader.bool();
1416
1508
  break;
1417
1509
  }
1418
1510
  default:
@@ -1424,182 +1516,165 @@ export const sesame = $root.sesame = (() => {
1424
1516
  };
1425
1517
 
1426
1518
  /**
1427
- * Decodes an AudioMixerConfig message from the specified reader or buffer, length delimited.
1519
+ * Decodes an AudioMixerOutput message from the specified reader or buffer, length delimited.
1428
1520
  * @function decodeDelimited
1429
- * @memberof sesame.v1.audio.AudioMixerConfig
1521
+ * @memberof sesame.v1.audio.AudioMixerOutput
1430
1522
  * @static
1431
1523
  * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1432
- * @returns {sesame.v1.audio.AudioMixerConfig} AudioMixerConfig
1524
+ * @returns {sesame.v1.audio.AudioMixerOutput} AudioMixerOutput
1433
1525
  * @throws {Error} If the payload is not a reader or valid buffer
1434
1526
  * @throws {$protobuf.util.ProtocolError} If required fields are missing
1435
1527
  */
1436
- AudioMixerConfig.decodeDelimited = function decodeDelimited(reader) {
1528
+ AudioMixerOutput.decodeDelimited = function decodeDelimited(reader) {
1437
1529
  if (!(reader instanceof $Reader))
1438
1530
  reader = new $Reader(reader);
1439
1531
  return this.decode(reader, reader.uint32());
1440
1532
  };
1441
1533
 
1442
1534
  /**
1443
- * Verifies an AudioMixerConfig message.
1535
+ * Verifies an AudioMixerOutput message.
1444
1536
  * @function verify
1445
- * @memberof sesame.v1.audio.AudioMixerConfig
1537
+ * @memberof sesame.v1.audio.AudioMixerOutput
1446
1538
  * @static
1447
1539
  * @param {Object.<string,*>} message Plain object to verify
1448
1540
  * @returns {string|null} `null` if valid, otherwise the reason why it is not
1449
1541
  */
1450
- AudioMixerConfig.verify = function verify(message) {
1542
+ AudioMixerOutput.verify = function verify(message) {
1451
1543
  if (typeof message !== "object" || message === null)
1452
1544
  return "object expected";
1453
- if (message.channels != null && message.hasOwnProperty("channels")) {
1454
- if (!Array.isArray(message.channels))
1455
- return "channels: array expected";
1456
- for (let i = 0; i < message.channels.length; ++i) {
1457
- let error = $root.sesame.v1.audio.AudioMixerChannel.verify(message.channels[i]);
1458
- if (error)
1459
- return "channels." + error;
1460
- }
1545
+ let properties = {};
1546
+ if (message.id != null && message.hasOwnProperty("id"))
1547
+ if (!$util.isString(message.id))
1548
+ return "id: string expected";
1549
+ if (message.excludedChannelIds != null && message.hasOwnProperty("excludedChannelIds")) {
1550
+ if (!Array.isArray(message.excludedChannelIds))
1551
+ return "excludedChannelIds: array expected";
1552
+ for (let i = 0; i < message.excludedChannelIds.length; ++i)
1553
+ if (!$util.isString(message.excludedChannelIds[i]))
1554
+ return "excludedChannelIds: string[] expected";
1555
+ }
1556
+ if (message.includeMasterPlugins != null && message.hasOwnProperty("includeMasterPlugins")) {
1557
+ properties._includeMasterPlugins = 1;
1558
+ if (typeof message.includeMasterPlugins !== "boolean")
1559
+ return "includeMasterPlugins: boolean expected";
1461
1560
  }
1462
- if (message.outputType != null && message.hasOwnProperty("outputType"))
1463
- switch (message.outputType) {
1464
- default:
1465
- return "outputType: enum value expected";
1466
- case 0:
1467
- case 1:
1468
- case 2:
1469
- break;
1470
- }
1471
- if (message.order != null && message.hasOwnProperty("order"))
1472
- if (!$util.isInteger(message.order))
1473
- return "order: integer expected";
1474
1561
  return null;
1475
1562
  };
1476
1563
 
1477
1564
  /**
1478
- * Creates an AudioMixerConfig message from a plain object. Also converts values to their respective internal types.
1565
+ * Creates an AudioMixerOutput message from a plain object. Also converts values to their respective internal types.
1479
1566
  * @function fromObject
1480
- * @memberof sesame.v1.audio.AudioMixerConfig
1567
+ * @memberof sesame.v1.audio.AudioMixerOutput
1481
1568
  * @static
1482
1569
  * @param {Object.<string,*>} object Plain object
1483
- * @returns {sesame.v1.audio.AudioMixerConfig} AudioMixerConfig
1570
+ * @returns {sesame.v1.audio.AudioMixerOutput} AudioMixerOutput
1484
1571
  */
1485
- AudioMixerConfig.fromObject = function fromObject(object) {
1486
- if (object instanceof $root.sesame.v1.audio.AudioMixerConfig)
1572
+ AudioMixerOutput.fromObject = function fromObject(object) {
1573
+ if (object instanceof $root.sesame.v1.audio.AudioMixerOutput)
1487
1574
  return object;
1488
- let message = new $root.sesame.v1.audio.AudioMixerConfig();
1489
- if (object.channels) {
1490
- if (!Array.isArray(object.channels))
1491
- throw TypeError(".sesame.v1.audio.AudioMixerConfig.channels: array expected");
1492
- message.channels = [];
1493
- for (let i = 0; i < object.channels.length; ++i) {
1494
- if (typeof object.channels[i] !== "object")
1495
- throw TypeError(".sesame.v1.audio.AudioMixerConfig.channels: object expected");
1496
- message.channels[i] = $root.sesame.v1.audio.AudioMixerChannel.fromObject(object.channels[i]);
1497
- }
1498
- }
1499
- switch (object.outputType) {
1500
- default:
1501
- if (typeof object.outputType === "number") {
1502
- message.outputType = object.outputType;
1503
- break;
1504
- }
1505
- break;
1506
- case "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED":
1507
- case 0:
1508
- message.outputType = 0;
1509
- break;
1510
- case "AUDIO_MIXER_CHANNEL_TYPE_MONO":
1511
- case 1:
1512
- message.outputType = 1;
1513
- break;
1514
- case "AUDIO_MIXER_CHANNEL_TYPE_STEREO":
1515
- case 2:
1516
- message.outputType = 2;
1517
- break;
1518
- }
1519
- if (object.order != null)
1520
- message.order = object.order >>> 0;
1575
+ let message = new $root.sesame.v1.audio.AudioMixerOutput();
1576
+ if (object.id != null)
1577
+ message.id = String(object.id);
1578
+ if (object.excludedChannelIds) {
1579
+ if (!Array.isArray(object.excludedChannelIds))
1580
+ throw TypeError(".sesame.v1.audio.AudioMixerOutput.excludedChannelIds: array expected");
1581
+ message.excludedChannelIds = [];
1582
+ for (let i = 0; i < object.excludedChannelIds.length; ++i)
1583
+ message.excludedChannelIds[i] = String(object.excludedChannelIds[i]);
1584
+ }
1585
+ if (object.includeMasterPlugins != null)
1586
+ message.includeMasterPlugins = Boolean(object.includeMasterPlugins);
1521
1587
  return message;
1522
1588
  };
1523
1589
 
1524
1590
  /**
1525
- * Creates a plain object from an AudioMixerConfig message. Also converts values to other types if specified.
1591
+ * Creates a plain object from an AudioMixerOutput message. Also converts values to other types if specified.
1526
1592
  * @function toObject
1527
- * @memberof sesame.v1.audio.AudioMixerConfig
1593
+ * @memberof sesame.v1.audio.AudioMixerOutput
1528
1594
  * @static
1529
- * @param {sesame.v1.audio.AudioMixerConfig} message AudioMixerConfig
1595
+ * @param {sesame.v1.audio.AudioMixerOutput} message AudioMixerOutput
1530
1596
  * @param {$protobuf.IConversionOptions} [options] Conversion options
1531
1597
  * @returns {Object.<string,*>} Plain object
1532
1598
  */
1533
- AudioMixerConfig.toObject = function toObject(message, options) {
1599
+ AudioMixerOutput.toObject = function toObject(message, options) {
1534
1600
  if (!options)
1535
1601
  options = {};
1536
1602
  let object = {};
1537
1603
  if (options.arrays || options.defaults)
1538
- object.channels = [];
1539
- if (options.defaults) {
1540
- object.outputType = options.enums === String ? "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED" : 0;
1541
- object.order = 0;
1604
+ object.excludedChannelIds = [];
1605
+ if (options.defaults)
1606
+ object.id = "";
1607
+ if (message.id != null && message.hasOwnProperty("id"))
1608
+ object.id = message.id;
1609
+ if (message.excludedChannelIds && message.excludedChannelIds.length) {
1610
+ object.excludedChannelIds = [];
1611
+ for (let j = 0; j < message.excludedChannelIds.length; ++j)
1612
+ object.excludedChannelIds[j] = message.excludedChannelIds[j];
1542
1613
  }
1543
- if (message.channels && message.channels.length) {
1544
- object.channels = [];
1545
- for (let j = 0; j < message.channels.length; ++j)
1546
- object.channels[j] = $root.sesame.v1.audio.AudioMixerChannel.toObject(message.channels[j], options);
1614
+ if (message.includeMasterPlugins != null && message.hasOwnProperty("includeMasterPlugins")) {
1615
+ object.includeMasterPlugins = message.includeMasterPlugins;
1616
+ if (options.oneofs)
1617
+ object._includeMasterPlugins = "includeMasterPlugins";
1547
1618
  }
1548
- if (message.outputType != null && message.hasOwnProperty("outputType"))
1549
- object.outputType = options.enums === String ? $root.sesame.v1.audio.AudioMixerChannelType[message.outputType] === undefined ? message.outputType : $root.sesame.v1.audio.AudioMixerChannelType[message.outputType] : message.outputType;
1550
- if (message.order != null && message.hasOwnProperty("order"))
1551
- object.order = message.order;
1552
1619
  return object;
1553
1620
  };
1554
1621
 
1555
1622
  /**
1556
- * Converts this AudioMixerConfig to JSON.
1623
+ * Converts this AudioMixerOutput to JSON.
1557
1624
  * @function toJSON
1558
- * @memberof sesame.v1.audio.AudioMixerConfig
1625
+ * @memberof sesame.v1.audio.AudioMixerOutput
1559
1626
  * @instance
1560
1627
  * @returns {Object.<string,*>} JSON object
1561
1628
  */
1562
- AudioMixerConfig.prototype.toJSON = function toJSON() {
1629
+ AudioMixerOutput.prototype.toJSON = function toJSON() {
1563
1630
  return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
1564
1631
  };
1565
1632
 
1566
1633
  /**
1567
- * Gets the default type url for AudioMixerConfig
1634
+ * Gets the default type url for AudioMixerOutput
1568
1635
  * @function getTypeUrl
1569
- * @memberof sesame.v1.audio.AudioMixerConfig
1636
+ * @memberof sesame.v1.audio.AudioMixerOutput
1570
1637
  * @static
1571
1638
  * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
1572
1639
  * @returns {string} The default type url
1573
1640
  */
1574
- AudioMixerConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
1641
+ AudioMixerOutput.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
1575
1642
  if (typeUrlPrefix === undefined) {
1576
1643
  typeUrlPrefix = "type.googleapis.com";
1577
1644
  }
1578
- return typeUrlPrefix + "/sesame.v1.audio.AudioMixerConfig";
1645
+ return typeUrlPrefix + "/sesame.v1.audio.AudioMixerOutput";
1579
1646
  };
1580
1647
 
1581
- return AudioMixerConfig;
1648
+ return AudioMixerOutput;
1582
1649
  })();
1583
1650
 
1584
- audio.AudioMixerAddRequest = (function() {
1651
+ audio.AudioMixerConfig = (function() {
1585
1652
 
1586
1653
  /**
1587
- * Properties of an AudioMixerAddRequest.
1654
+ * Properties of an AudioMixerConfig.
1588
1655
  * @memberof sesame.v1.audio
1589
- * @interface IAudioMixerAddRequest
1590
- * @property {string|null} [id] AudioMixerAddRequest id
1591
- * @property {sesame.v1.audio.IAudioMixerConfig|null} [config] AudioMixerAddRequest config
1656
+ * @interface IAudioMixerConfig
1657
+ * @property {Array.<sesame.v1.audio.IAudioMixerChannel>|null} [channels] AudioMixerConfig channels
1658
+ * @property {sesame.v1.audio.AudioMixerChannelType|null} [outputType] AudioMixerConfig outputType
1659
+ * @property {number|null} [order] AudioMixerConfig order
1660
+ * @property {Array.<sesame.v1.audio.IAudioMixerOutput>|null} [outputs] AudioMixerConfig outputs
1661
+ * @property {number|null} [masterLevel] AudioMixerConfig masterLevel
1662
+ * @property {number|null} [masterAutomationLevel] AudioMixerConfig masterAutomationLevel
1663
+ * @property {Array.<sesame.v1.audio.IAudioPlugin>|null} [masterPlugins] AudioMixerConfig masterPlugins
1592
1664
  */
1593
1665
 
1594
1666
  /**
1595
- * Constructs a new AudioMixerAddRequest.
1667
+ * Constructs a new AudioMixerConfig.
1596
1668
  * @memberof sesame.v1.audio
1597
- * @classdesc Represents an AudioMixerAddRequest.
1598
- * @implements IAudioMixerAddRequest
1669
+ * @classdesc Represents an AudioMixerConfig.
1670
+ * @implements IAudioMixerConfig
1599
1671
  * @constructor
1600
- * @param {sesame.v1.audio.IAudioMixerAddRequest=} [properties] Properties to set
1672
+ * @param {sesame.v1.audio.IAudioMixerConfig=} [properties] Properties to set
1601
1673
  */
1602
- function AudioMixerAddRequest(properties) {
1674
+ function AudioMixerConfig(properties) {
1675
+ this.channels = [];
1676
+ this.outputs = [];
1677
+ this.masterPlugins = [];
1603
1678
  if (properties)
1604
1679
  for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
1605
1680
  if (properties[keys[i]] != null)
@@ -1607,36 +1682,485 @@ export const sesame = $root.sesame = (() => {
1607
1682
  }
1608
1683
 
1609
1684
  /**
1610
- * AudioMixerAddRequest id.
1611
- * @member {string} id
1612
- * @memberof sesame.v1.audio.AudioMixerAddRequest
1685
+ * AudioMixerConfig channels.
1686
+ * @member {Array.<sesame.v1.audio.IAudioMixerChannel>} channels
1687
+ * @memberof sesame.v1.audio.AudioMixerConfig
1613
1688
  * @instance
1614
1689
  */
1615
- AudioMixerAddRequest.prototype.id = "";
1690
+ AudioMixerConfig.prototype.channels = $util.emptyArray;
1616
1691
 
1617
1692
  /**
1618
- * AudioMixerAddRequest config.
1619
- * @member {sesame.v1.audio.IAudioMixerConfig|null|undefined} config
1620
- * @memberof sesame.v1.audio.AudioMixerAddRequest
1693
+ * AudioMixerConfig outputType.
1694
+ * @member {sesame.v1.audio.AudioMixerChannelType} outputType
1695
+ * @memberof sesame.v1.audio.AudioMixerConfig
1621
1696
  * @instance
1622
1697
  */
1623
- AudioMixerAddRequest.prototype.config = null;
1698
+ AudioMixerConfig.prototype.outputType = 0;
1624
1699
 
1625
1700
  /**
1626
- * Creates a new AudioMixerAddRequest instance using the specified properties.
1627
- * @function create
1628
- * @memberof sesame.v1.audio.AudioMixerAddRequest
1629
- * @static
1630
- * @param {sesame.v1.audio.IAudioMixerAddRequest=} [properties] Properties to set
1631
- * @returns {sesame.v1.audio.AudioMixerAddRequest} AudioMixerAddRequest instance
1701
+ * AudioMixerConfig order.
1702
+ * @member {number} order
1703
+ * @memberof sesame.v1.audio.AudioMixerConfig
1704
+ * @instance
1632
1705
  */
1633
- AudioMixerAddRequest.create = function create(properties) {
1634
- return new AudioMixerAddRequest(properties);
1635
- };
1706
+ AudioMixerConfig.prototype.order = 0;
1636
1707
 
1637
1708
  /**
1638
- * Encodes the specified AudioMixerAddRequest message. Does not implicitly {@link sesame.v1.audio.AudioMixerAddRequest.verify|verify} messages.
1639
- * @function encode
1709
+ * AudioMixerConfig outputs.
1710
+ * @member {Array.<sesame.v1.audio.IAudioMixerOutput>} outputs
1711
+ * @memberof sesame.v1.audio.AudioMixerConfig
1712
+ * @instance
1713
+ */
1714
+ AudioMixerConfig.prototype.outputs = $util.emptyArray;
1715
+
1716
+ /**
1717
+ * AudioMixerConfig masterLevel.
1718
+ * @member {number|null|undefined} masterLevel
1719
+ * @memberof sesame.v1.audio.AudioMixerConfig
1720
+ * @instance
1721
+ */
1722
+ AudioMixerConfig.prototype.masterLevel = null;
1723
+
1724
+ /**
1725
+ * AudioMixerConfig masterAutomationLevel.
1726
+ * @member {number|null|undefined} masterAutomationLevel
1727
+ * @memberof sesame.v1.audio.AudioMixerConfig
1728
+ * @instance
1729
+ */
1730
+ AudioMixerConfig.prototype.masterAutomationLevel = null;
1731
+
1732
+ /**
1733
+ * AudioMixerConfig masterPlugins.
1734
+ * @member {Array.<sesame.v1.audio.IAudioPlugin>} masterPlugins
1735
+ * @memberof sesame.v1.audio.AudioMixerConfig
1736
+ * @instance
1737
+ */
1738
+ AudioMixerConfig.prototype.masterPlugins = $util.emptyArray;
1739
+
1740
+ // OneOf field names bound to virtual getters and setters
1741
+ let $oneOfFields;
1742
+
1743
+ // Virtual OneOf for proto3 optional field
1744
+ Object.defineProperty(AudioMixerConfig.prototype, "_masterLevel", {
1745
+ get: $util.oneOfGetter($oneOfFields = ["masterLevel"]),
1746
+ set: $util.oneOfSetter($oneOfFields)
1747
+ });
1748
+
1749
+ // Virtual OneOf for proto3 optional field
1750
+ Object.defineProperty(AudioMixerConfig.prototype, "_masterAutomationLevel", {
1751
+ get: $util.oneOfGetter($oneOfFields = ["masterAutomationLevel"]),
1752
+ set: $util.oneOfSetter($oneOfFields)
1753
+ });
1754
+
1755
+ /**
1756
+ * Creates a new AudioMixerConfig instance using the specified properties.
1757
+ * @function create
1758
+ * @memberof sesame.v1.audio.AudioMixerConfig
1759
+ * @static
1760
+ * @param {sesame.v1.audio.IAudioMixerConfig=} [properties] Properties to set
1761
+ * @returns {sesame.v1.audio.AudioMixerConfig} AudioMixerConfig instance
1762
+ */
1763
+ AudioMixerConfig.create = function create(properties) {
1764
+ return new AudioMixerConfig(properties);
1765
+ };
1766
+
1767
+ /**
1768
+ * Encodes the specified AudioMixerConfig message. Does not implicitly {@link sesame.v1.audio.AudioMixerConfig.verify|verify} messages.
1769
+ * @function encode
1770
+ * @memberof sesame.v1.audio.AudioMixerConfig
1771
+ * @static
1772
+ * @param {sesame.v1.audio.IAudioMixerConfig} message AudioMixerConfig message or plain object to encode
1773
+ * @param {$protobuf.Writer} [writer] Writer to encode to
1774
+ * @returns {$protobuf.Writer} Writer
1775
+ */
1776
+ AudioMixerConfig.encode = function encode(message, writer) {
1777
+ if (!writer)
1778
+ writer = $Writer.create();
1779
+ if (message.channels != null && message.channels.length)
1780
+ for (let i = 0; i < message.channels.length; ++i)
1781
+ $root.sesame.v1.audio.AudioMixerChannel.encode(message.channels[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
1782
+ if (message.outputType != null && Object.hasOwnProperty.call(message, "outputType"))
1783
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.outputType);
1784
+ if (message.order != null && Object.hasOwnProperty.call(message, "order"))
1785
+ writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.order);
1786
+ if (message.outputs != null && message.outputs.length)
1787
+ for (let i = 0; i < message.outputs.length; ++i)
1788
+ $root.sesame.v1.audio.AudioMixerOutput.encode(message.outputs[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
1789
+ if (message.masterLevel != null && Object.hasOwnProperty.call(message, "masterLevel"))
1790
+ writer.uint32(/* id 5, wireType 5 =*/45).float(message.masterLevel);
1791
+ if (message.masterAutomationLevel != null && Object.hasOwnProperty.call(message, "masterAutomationLevel"))
1792
+ writer.uint32(/* id 6, wireType 5 =*/53).float(message.masterAutomationLevel);
1793
+ if (message.masterPlugins != null && message.masterPlugins.length)
1794
+ for (let i = 0; i < message.masterPlugins.length; ++i)
1795
+ $root.sesame.v1.audio.AudioPlugin.encode(message.masterPlugins[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();
1796
+ return writer;
1797
+ };
1798
+
1799
+ /**
1800
+ * Encodes the specified AudioMixerConfig message, length delimited. Does not implicitly {@link sesame.v1.audio.AudioMixerConfig.verify|verify} messages.
1801
+ * @function encodeDelimited
1802
+ * @memberof sesame.v1.audio.AudioMixerConfig
1803
+ * @static
1804
+ * @param {sesame.v1.audio.IAudioMixerConfig} message AudioMixerConfig message or plain object to encode
1805
+ * @param {$protobuf.Writer} [writer] Writer to encode to
1806
+ * @returns {$protobuf.Writer} Writer
1807
+ */
1808
+ AudioMixerConfig.encodeDelimited = function encodeDelimited(message, writer) {
1809
+ return this.encode(message, writer).ldelim();
1810
+ };
1811
+
1812
+ /**
1813
+ * Decodes an AudioMixerConfig message from the specified reader or buffer.
1814
+ * @function decode
1815
+ * @memberof sesame.v1.audio.AudioMixerConfig
1816
+ * @static
1817
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1818
+ * @param {number} [length] Message length if known beforehand
1819
+ * @returns {sesame.v1.audio.AudioMixerConfig} AudioMixerConfig
1820
+ * @throws {Error} If the payload is not a reader or valid buffer
1821
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
1822
+ */
1823
+ AudioMixerConfig.decode = function decode(reader, length, error) {
1824
+ if (!(reader instanceof $Reader))
1825
+ reader = $Reader.create(reader);
1826
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.sesame.v1.audio.AudioMixerConfig();
1827
+ while (reader.pos < end) {
1828
+ let tag = reader.uint32();
1829
+ if (tag === error)
1830
+ break;
1831
+ switch (tag >>> 3) {
1832
+ case 1: {
1833
+ if (!(message.channels && message.channels.length))
1834
+ message.channels = [];
1835
+ message.channels.push($root.sesame.v1.audio.AudioMixerChannel.decode(reader, reader.uint32()));
1836
+ break;
1837
+ }
1838
+ case 2: {
1839
+ message.outputType = reader.int32();
1840
+ break;
1841
+ }
1842
+ case 3: {
1843
+ message.order = reader.uint32();
1844
+ break;
1845
+ }
1846
+ case 4: {
1847
+ if (!(message.outputs && message.outputs.length))
1848
+ message.outputs = [];
1849
+ message.outputs.push($root.sesame.v1.audio.AudioMixerOutput.decode(reader, reader.uint32()));
1850
+ break;
1851
+ }
1852
+ case 5: {
1853
+ message.masterLevel = reader.float();
1854
+ break;
1855
+ }
1856
+ case 6: {
1857
+ message.masterAutomationLevel = reader.float();
1858
+ break;
1859
+ }
1860
+ case 7: {
1861
+ if (!(message.masterPlugins && message.masterPlugins.length))
1862
+ message.masterPlugins = [];
1863
+ message.masterPlugins.push($root.sesame.v1.audio.AudioPlugin.decode(reader, reader.uint32()));
1864
+ break;
1865
+ }
1866
+ default:
1867
+ reader.skipType(tag & 7);
1868
+ break;
1869
+ }
1870
+ }
1871
+ return message;
1872
+ };
1873
+
1874
+ /**
1875
+ * Decodes an AudioMixerConfig message from the specified reader or buffer, length delimited.
1876
+ * @function decodeDelimited
1877
+ * @memberof sesame.v1.audio.AudioMixerConfig
1878
+ * @static
1879
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1880
+ * @returns {sesame.v1.audio.AudioMixerConfig} AudioMixerConfig
1881
+ * @throws {Error} If the payload is not a reader or valid buffer
1882
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
1883
+ */
1884
+ AudioMixerConfig.decodeDelimited = function decodeDelimited(reader) {
1885
+ if (!(reader instanceof $Reader))
1886
+ reader = new $Reader(reader);
1887
+ return this.decode(reader, reader.uint32());
1888
+ };
1889
+
1890
+ /**
1891
+ * Verifies an AudioMixerConfig message.
1892
+ * @function verify
1893
+ * @memberof sesame.v1.audio.AudioMixerConfig
1894
+ * @static
1895
+ * @param {Object.<string,*>} message Plain object to verify
1896
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
1897
+ */
1898
+ AudioMixerConfig.verify = function verify(message) {
1899
+ if (typeof message !== "object" || message === null)
1900
+ return "object expected";
1901
+ let properties = {};
1902
+ if (message.channels != null && message.hasOwnProperty("channels")) {
1903
+ if (!Array.isArray(message.channels))
1904
+ return "channels: array expected";
1905
+ for (let i = 0; i < message.channels.length; ++i) {
1906
+ let error = $root.sesame.v1.audio.AudioMixerChannel.verify(message.channels[i]);
1907
+ if (error)
1908
+ return "channels." + error;
1909
+ }
1910
+ }
1911
+ if (message.outputType != null && message.hasOwnProperty("outputType"))
1912
+ switch (message.outputType) {
1913
+ default:
1914
+ return "outputType: enum value expected";
1915
+ case 0:
1916
+ case 1:
1917
+ case 2:
1918
+ break;
1919
+ }
1920
+ if (message.order != null && message.hasOwnProperty("order"))
1921
+ if (!$util.isInteger(message.order))
1922
+ return "order: integer expected";
1923
+ if (message.outputs != null && message.hasOwnProperty("outputs")) {
1924
+ if (!Array.isArray(message.outputs))
1925
+ return "outputs: array expected";
1926
+ for (let i = 0; i < message.outputs.length; ++i) {
1927
+ let error = $root.sesame.v1.audio.AudioMixerOutput.verify(message.outputs[i]);
1928
+ if (error)
1929
+ return "outputs." + error;
1930
+ }
1931
+ }
1932
+ if (message.masterLevel != null && message.hasOwnProperty("masterLevel")) {
1933
+ properties._masterLevel = 1;
1934
+ if (typeof message.masterLevel !== "number")
1935
+ return "masterLevel: number expected";
1936
+ }
1937
+ if (message.masterAutomationLevel != null && message.hasOwnProperty("masterAutomationLevel")) {
1938
+ properties._masterAutomationLevel = 1;
1939
+ if (typeof message.masterAutomationLevel !== "number")
1940
+ return "masterAutomationLevel: number expected";
1941
+ }
1942
+ if (message.masterPlugins != null && message.hasOwnProperty("masterPlugins")) {
1943
+ if (!Array.isArray(message.masterPlugins))
1944
+ return "masterPlugins: array expected";
1945
+ for (let i = 0; i < message.masterPlugins.length; ++i) {
1946
+ let error = $root.sesame.v1.audio.AudioPlugin.verify(message.masterPlugins[i]);
1947
+ if (error)
1948
+ return "masterPlugins." + error;
1949
+ }
1950
+ }
1951
+ return null;
1952
+ };
1953
+
1954
+ /**
1955
+ * Creates an AudioMixerConfig message from a plain object. Also converts values to their respective internal types.
1956
+ * @function fromObject
1957
+ * @memberof sesame.v1.audio.AudioMixerConfig
1958
+ * @static
1959
+ * @param {Object.<string,*>} object Plain object
1960
+ * @returns {sesame.v1.audio.AudioMixerConfig} AudioMixerConfig
1961
+ */
1962
+ AudioMixerConfig.fromObject = function fromObject(object) {
1963
+ if (object instanceof $root.sesame.v1.audio.AudioMixerConfig)
1964
+ return object;
1965
+ let message = new $root.sesame.v1.audio.AudioMixerConfig();
1966
+ if (object.channels) {
1967
+ if (!Array.isArray(object.channels))
1968
+ throw TypeError(".sesame.v1.audio.AudioMixerConfig.channels: array expected");
1969
+ message.channels = [];
1970
+ for (let i = 0; i < object.channels.length; ++i) {
1971
+ if (typeof object.channels[i] !== "object")
1972
+ throw TypeError(".sesame.v1.audio.AudioMixerConfig.channels: object expected");
1973
+ message.channels[i] = $root.sesame.v1.audio.AudioMixerChannel.fromObject(object.channels[i]);
1974
+ }
1975
+ }
1976
+ switch (object.outputType) {
1977
+ default:
1978
+ if (typeof object.outputType === "number") {
1979
+ message.outputType = object.outputType;
1980
+ break;
1981
+ }
1982
+ break;
1983
+ case "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED":
1984
+ case 0:
1985
+ message.outputType = 0;
1986
+ break;
1987
+ case "AUDIO_MIXER_CHANNEL_TYPE_MONO":
1988
+ case 1:
1989
+ message.outputType = 1;
1990
+ break;
1991
+ case "AUDIO_MIXER_CHANNEL_TYPE_STEREO":
1992
+ case 2:
1993
+ message.outputType = 2;
1994
+ break;
1995
+ }
1996
+ if (object.order != null)
1997
+ message.order = object.order >>> 0;
1998
+ if (object.outputs) {
1999
+ if (!Array.isArray(object.outputs))
2000
+ throw TypeError(".sesame.v1.audio.AudioMixerConfig.outputs: array expected");
2001
+ message.outputs = [];
2002
+ for (let i = 0; i < object.outputs.length; ++i) {
2003
+ if (typeof object.outputs[i] !== "object")
2004
+ throw TypeError(".sesame.v1.audio.AudioMixerConfig.outputs: object expected");
2005
+ message.outputs[i] = $root.sesame.v1.audio.AudioMixerOutput.fromObject(object.outputs[i]);
2006
+ }
2007
+ }
2008
+ if (object.masterLevel != null)
2009
+ message.masterLevel = Number(object.masterLevel);
2010
+ if (object.masterAutomationLevel != null)
2011
+ message.masterAutomationLevel = Number(object.masterAutomationLevel);
2012
+ if (object.masterPlugins) {
2013
+ if (!Array.isArray(object.masterPlugins))
2014
+ throw TypeError(".sesame.v1.audio.AudioMixerConfig.masterPlugins: array expected");
2015
+ message.masterPlugins = [];
2016
+ for (let i = 0; i < object.masterPlugins.length; ++i) {
2017
+ if (typeof object.masterPlugins[i] !== "object")
2018
+ throw TypeError(".sesame.v1.audio.AudioMixerConfig.masterPlugins: object expected");
2019
+ message.masterPlugins[i] = $root.sesame.v1.audio.AudioPlugin.fromObject(object.masterPlugins[i]);
2020
+ }
2021
+ }
2022
+ return message;
2023
+ };
2024
+
2025
+ /**
2026
+ * Creates a plain object from an AudioMixerConfig message. Also converts values to other types if specified.
2027
+ * @function toObject
2028
+ * @memberof sesame.v1.audio.AudioMixerConfig
2029
+ * @static
2030
+ * @param {sesame.v1.audio.AudioMixerConfig} message AudioMixerConfig
2031
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
2032
+ * @returns {Object.<string,*>} Plain object
2033
+ */
2034
+ AudioMixerConfig.toObject = function toObject(message, options) {
2035
+ if (!options)
2036
+ options = {};
2037
+ let object = {};
2038
+ if (options.arrays || options.defaults) {
2039
+ object.channels = [];
2040
+ object.outputs = [];
2041
+ object.masterPlugins = [];
2042
+ }
2043
+ if (options.defaults) {
2044
+ object.outputType = options.enums === String ? "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED" : 0;
2045
+ object.order = 0;
2046
+ }
2047
+ if (message.channels && message.channels.length) {
2048
+ object.channels = [];
2049
+ for (let j = 0; j < message.channels.length; ++j)
2050
+ object.channels[j] = $root.sesame.v1.audio.AudioMixerChannel.toObject(message.channels[j], options);
2051
+ }
2052
+ if (message.outputType != null && message.hasOwnProperty("outputType"))
2053
+ object.outputType = options.enums === String ? $root.sesame.v1.audio.AudioMixerChannelType[message.outputType] === undefined ? message.outputType : $root.sesame.v1.audio.AudioMixerChannelType[message.outputType] : message.outputType;
2054
+ if (message.order != null && message.hasOwnProperty("order"))
2055
+ object.order = message.order;
2056
+ if (message.outputs && message.outputs.length) {
2057
+ object.outputs = [];
2058
+ for (let j = 0; j < message.outputs.length; ++j)
2059
+ object.outputs[j] = $root.sesame.v1.audio.AudioMixerOutput.toObject(message.outputs[j], options);
2060
+ }
2061
+ if (message.masterLevel != null && message.hasOwnProperty("masterLevel")) {
2062
+ object.masterLevel = options.json && !isFinite(message.masterLevel) ? String(message.masterLevel) : message.masterLevel;
2063
+ if (options.oneofs)
2064
+ object._masterLevel = "masterLevel";
2065
+ }
2066
+ if (message.masterAutomationLevel != null && message.hasOwnProperty("masterAutomationLevel")) {
2067
+ object.masterAutomationLevel = options.json && !isFinite(message.masterAutomationLevel) ? String(message.masterAutomationLevel) : message.masterAutomationLevel;
2068
+ if (options.oneofs)
2069
+ object._masterAutomationLevel = "masterAutomationLevel";
2070
+ }
2071
+ if (message.masterPlugins && message.masterPlugins.length) {
2072
+ object.masterPlugins = [];
2073
+ for (let j = 0; j < message.masterPlugins.length; ++j)
2074
+ object.masterPlugins[j] = $root.sesame.v1.audio.AudioPlugin.toObject(message.masterPlugins[j], options);
2075
+ }
2076
+ return object;
2077
+ };
2078
+
2079
+ /**
2080
+ * Converts this AudioMixerConfig to JSON.
2081
+ * @function toJSON
2082
+ * @memberof sesame.v1.audio.AudioMixerConfig
2083
+ * @instance
2084
+ * @returns {Object.<string,*>} JSON object
2085
+ */
2086
+ AudioMixerConfig.prototype.toJSON = function toJSON() {
2087
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
2088
+ };
2089
+
2090
+ /**
2091
+ * Gets the default type url for AudioMixerConfig
2092
+ * @function getTypeUrl
2093
+ * @memberof sesame.v1.audio.AudioMixerConfig
2094
+ * @static
2095
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
2096
+ * @returns {string} The default type url
2097
+ */
2098
+ AudioMixerConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
2099
+ if (typeUrlPrefix === undefined) {
2100
+ typeUrlPrefix = "type.googleapis.com";
2101
+ }
2102
+ return typeUrlPrefix + "/sesame.v1.audio.AudioMixerConfig";
2103
+ };
2104
+
2105
+ return AudioMixerConfig;
2106
+ })();
2107
+
2108
+ audio.AudioMixerAddRequest = (function() {
2109
+
2110
+ /**
2111
+ * Properties of an AudioMixerAddRequest.
2112
+ * @memberof sesame.v1.audio
2113
+ * @interface IAudioMixerAddRequest
2114
+ * @property {string|null} [id] AudioMixerAddRequest id
2115
+ * @property {sesame.v1.audio.IAudioMixerConfig|null} [config] AudioMixerAddRequest config
2116
+ */
2117
+
2118
+ /**
2119
+ * Constructs a new AudioMixerAddRequest.
2120
+ * @memberof sesame.v1.audio
2121
+ * @classdesc Represents an AudioMixerAddRequest.
2122
+ * @implements IAudioMixerAddRequest
2123
+ * @constructor
2124
+ * @param {sesame.v1.audio.IAudioMixerAddRequest=} [properties] Properties to set
2125
+ */
2126
+ function AudioMixerAddRequest(properties) {
2127
+ if (properties)
2128
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
2129
+ if (properties[keys[i]] != null)
2130
+ this[keys[i]] = properties[keys[i]];
2131
+ }
2132
+
2133
+ /**
2134
+ * AudioMixerAddRequest id.
2135
+ * @member {string} id
2136
+ * @memberof sesame.v1.audio.AudioMixerAddRequest
2137
+ * @instance
2138
+ */
2139
+ AudioMixerAddRequest.prototype.id = "";
2140
+
2141
+ /**
2142
+ * AudioMixerAddRequest config.
2143
+ * @member {sesame.v1.audio.IAudioMixerConfig|null|undefined} config
2144
+ * @memberof sesame.v1.audio.AudioMixerAddRequest
2145
+ * @instance
2146
+ */
2147
+ AudioMixerAddRequest.prototype.config = null;
2148
+
2149
+ /**
2150
+ * Creates a new AudioMixerAddRequest instance using the specified properties.
2151
+ * @function create
2152
+ * @memberof sesame.v1.audio.AudioMixerAddRequest
2153
+ * @static
2154
+ * @param {sesame.v1.audio.IAudioMixerAddRequest=} [properties] Properties to set
2155
+ * @returns {sesame.v1.audio.AudioMixerAddRequest} AudioMixerAddRequest instance
2156
+ */
2157
+ AudioMixerAddRequest.create = function create(properties) {
2158
+ return new AudioMixerAddRequest(properties);
2159
+ };
2160
+
2161
+ /**
2162
+ * Encodes the specified AudioMixerAddRequest message. Does not implicitly {@link sesame.v1.audio.AudioMixerAddRequest.verify|verify} messages.
2163
+ * @function encode
1640
2164
  * @memberof sesame.v1.audio.AudioMixerAddRequest
1641
2165
  * @static
1642
2166
  * @param {sesame.v1.audio.IAudioMixerAddRequest} message AudioMixerAddRequest message or plain object to encode
@@ -2514,91 +3038,339 @@ export const sesame = $root.sesame = (() => {
2514
3038
  }
2515
3039
 
2516
3040
  /**
2517
- * AudioChannelRemoveRequest mixerId.
2518
- * @member {string} mixerId
2519
- * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3041
+ * AudioChannelRemoveRequest mixerId.
3042
+ * @member {string} mixerId
3043
+ * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3044
+ * @instance
3045
+ */
3046
+ AudioChannelRemoveRequest.prototype.mixerId = "";
3047
+
3048
+ /**
3049
+ * AudioChannelRemoveRequest channelId.
3050
+ * @member {string} channelId
3051
+ * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3052
+ * @instance
3053
+ */
3054
+ AudioChannelRemoveRequest.prototype.channelId = "";
3055
+
3056
+ /**
3057
+ * Creates a new AudioChannelRemoveRequest instance using the specified properties.
3058
+ * @function create
3059
+ * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3060
+ * @static
3061
+ * @param {sesame.v1.audio.IAudioChannelRemoveRequest=} [properties] Properties to set
3062
+ * @returns {sesame.v1.audio.AudioChannelRemoveRequest} AudioChannelRemoveRequest instance
3063
+ */
3064
+ AudioChannelRemoveRequest.create = function create(properties) {
3065
+ return new AudioChannelRemoveRequest(properties);
3066
+ };
3067
+
3068
+ /**
3069
+ * Encodes the specified AudioChannelRemoveRequest message. Does not implicitly {@link sesame.v1.audio.AudioChannelRemoveRequest.verify|verify} messages.
3070
+ * @function encode
3071
+ * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3072
+ * @static
3073
+ * @param {sesame.v1.audio.IAudioChannelRemoveRequest} message AudioChannelRemoveRequest message or plain object to encode
3074
+ * @param {$protobuf.Writer} [writer] Writer to encode to
3075
+ * @returns {$protobuf.Writer} Writer
3076
+ */
3077
+ AudioChannelRemoveRequest.encode = function encode(message, writer) {
3078
+ if (!writer)
3079
+ writer = $Writer.create();
3080
+ if (message.mixerId != null && Object.hasOwnProperty.call(message, "mixerId"))
3081
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.mixerId);
3082
+ if (message.channelId != null && Object.hasOwnProperty.call(message, "channelId"))
3083
+ writer.uint32(/* id 2, wireType 2 =*/18).string(message.channelId);
3084
+ return writer;
3085
+ };
3086
+
3087
+ /**
3088
+ * Encodes the specified AudioChannelRemoveRequest message, length delimited. Does not implicitly {@link sesame.v1.audio.AudioChannelRemoveRequest.verify|verify} messages.
3089
+ * @function encodeDelimited
3090
+ * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3091
+ * @static
3092
+ * @param {sesame.v1.audio.IAudioChannelRemoveRequest} message AudioChannelRemoveRequest message or plain object to encode
3093
+ * @param {$protobuf.Writer} [writer] Writer to encode to
3094
+ * @returns {$protobuf.Writer} Writer
3095
+ */
3096
+ AudioChannelRemoveRequest.encodeDelimited = function encodeDelimited(message, writer) {
3097
+ return this.encode(message, writer).ldelim();
3098
+ };
3099
+
3100
+ /**
3101
+ * Decodes an AudioChannelRemoveRequest message from the specified reader or buffer.
3102
+ * @function decode
3103
+ * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3104
+ * @static
3105
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
3106
+ * @param {number} [length] Message length if known beforehand
3107
+ * @returns {sesame.v1.audio.AudioChannelRemoveRequest} AudioChannelRemoveRequest
3108
+ * @throws {Error} If the payload is not a reader or valid buffer
3109
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
3110
+ */
3111
+ AudioChannelRemoveRequest.decode = function decode(reader, length, error) {
3112
+ if (!(reader instanceof $Reader))
3113
+ reader = $Reader.create(reader);
3114
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.sesame.v1.audio.AudioChannelRemoveRequest();
3115
+ while (reader.pos < end) {
3116
+ let tag = reader.uint32();
3117
+ if (tag === error)
3118
+ break;
3119
+ switch (tag >>> 3) {
3120
+ case 1: {
3121
+ message.mixerId = reader.string();
3122
+ break;
3123
+ }
3124
+ case 2: {
3125
+ message.channelId = reader.string();
3126
+ break;
3127
+ }
3128
+ default:
3129
+ reader.skipType(tag & 7);
3130
+ break;
3131
+ }
3132
+ }
3133
+ return message;
3134
+ };
3135
+
3136
+ /**
3137
+ * Decodes an AudioChannelRemoveRequest message from the specified reader or buffer, length delimited.
3138
+ * @function decodeDelimited
3139
+ * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3140
+ * @static
3141
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
3142
+ * @returns {sesame.v1.audio.AudioChannelRemoveRequest} AudioChannelRemoveRequest
3143
+ * @throws {Error} If the payload is not a reader or valid buffer
3144
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
3145
+ */
3146
+ AudioChannelRemoveRequest.decodeDelimited = function decodeDelimited(reader) {
3147
+ if (!(reader instanceof $Reader))
3148
+ reader = new $Reader(reader);
3149
+ return this.decode(reader, reader.uint32());
3150
+ };
3151
+
3152
+ /**
3153
+ * Verifies an AudioChannelRemoveRequest message.
3154
+ * @function verify
3155
+ * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3156
+ * @static
3157
+ * @param {Object.<string,*>} message Plain object to verify
3158
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
3159
+ */
3160
+ AudioChannelRemoveRequest.verify = function verify(message) {
3161
+ if (typeof message !== "object" || message === null)
3162
+ return "object expected";
3163
+ if (message.mixerId != null && message.hasOwnProperty("mixerId"))
3164
+ if (!$util.isString(message.mixerId))
3165
+ return "mixerId: string expected";
3166
+ if (message.channelId != null && message.hasOwnProperty("channelId"))
3167
+ if (!$util.isString(message.channelId))
3168
+ return "channelId: string expected";
3169
+ return null;
3170
+ };
3171
+
3172
+ /**
3173
+ * Creates an AudioChannelRemoveRequest message from a plain object. Also converts values to their respective internal types.
3174
+ * @function fromObject
3175
+ * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3176
+ * @static
3177
+ * @param {Object.<string,*>} object Plain object
3178
+ * @returns {sesame.v1.audio.AudioChannelRemoveRequest} AudioChannelRemoveRequest
3179
+ */
3180
+ AudioChannelRemoveRequest.fromObject = function fromObject(object) {
3181
+ if (object instanceof $root.sesame.v1.audio.AudioChannelRemoveRequest)
3182
+ return object;
3183
+ let message = new $root.sesame.v1.audio.AudioChannelRemoveRequest();
3184
+ if (object.mixerId != null)
3185
+ message.mixerId = String(object.mixerId);
3186
+ if (object.channelId != null)
3187
+ message.channelId = String(object.channelId);
3188
+ return message;
3189
+ };
3190
+
3191
+ /**
3192
+ * Creates a plain object from an AudioChannelRemoveRequest message. Also converts values to other types if specified.
3193
+ * @function toObject
3194
+ * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3195
+ * @static
3196
+ * @param {sesame.v1.audio.AudioChannelRemoveRequest} message AudioChannelRemoveRequest
3197
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
3198
+ * @returns {Object.<string,*>} Plain object
3199
+ */
3200
+ AudioChannelRemoveRequest.toObject = function toObject(message, options) {
3201
+ if (!options)
3202
+ options = {};
3203
+ let object = {};
3204
+ if (options.defaults) {
3205
+ object.mixerId = "";
3206
+ object.channelId = "";
3207
+ }
3208
+ if (message.mixerId != null && message.hasOwnProperty("mixerId"))
3209
+ object.mixerId = message.mixerId;
3210
+ if (message.channelId != null && message.hasOwnProperty("channelId"))
3211
+ object.channelId = message.channelId;
3212
+ return object;
3213
+ };
3214
+
3215
+ /**
3216
+ * Converts this AudioChannelRemoveRequest to JSON.
3217
+ * @function toJSON
3218
+ * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3219
+ * @instance
3220
+ * @returns {Object.<string,*>} JSON object
3221
+ */
3222
+ AudioChannelRemoveRequest.prototype.toJSON = function toJSON() {
3223
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
3224
+ };
3225
+
3226
+ /**
3227
+ * Gets the default type url for AudioChannelRemoveRequest
3228
+ * @function getTypeUrl
3229
+ * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3230
+ * @static
3231
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
3232
+ * @returns {string} The default type url
3233
+ */
3234
+ AudioChannelRemoveRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
3235
+ if (typeUrlPrefix === undefined) {
3236
+ typeUrlPrefix = "type.googleapis.com";
3237
+ }
3238
+ return typeUrlPrefix + "/sesame.v1.audio.AudioChannelRemoveRequest";
3239
+ };
3240
+
3241
+ return AudioChannelRemoveRequest;
3242
+ })();
3243
+
3244
+ audio.AudioChannelPluginStatus = (function() {
3245
+
3246
+ /**
3247
+ * Properties of an AudioChannelPluginStatus.
3248
+ * @memberof sesame.v1.audio
3249
+ * @interface IAudioChannelPluginStatus
3250
+ * @property {string|null} [id] AudioChannelPluginStatus id
3251
+ * @property {string|null} [type] AudioChannelPluginStatus type
3252
+ * @property {Array.<sesame.v1.audio.IAudioPluginParamStatus>|null} [params] AudioChannelPluginStatus params
3253
+ */
3254
+
3255
+ /**
3256
+ * Constructs a new AudioChannelPluginStatus.
3257
+ * @memberof sesame.v1.audio
3258
+ * @classdesc Represents an AudioChannelPluginStatus.
3259
+ * @implements IAudioChannelPluginStatus
3260
+ * @constructor
3261
+ * @param {sesame.v1.audio.IAudioChannelPluginStatus=} [properties] Properties to set
3262
+ */
3263
+ function AudioChannelPluginStatus(properties) {
3264
+ this.params = [];
3265
+ if (properties)
3266
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
3267
+ if (properties[keys[i]] != null)
3268
+ this[keys[i]] = properties[keys[i]];
3269
+ }
3270
+
3271
+ /**
3272
+ * AudioChannelPluginStatus id.
3273
+ * @member {string} id
3274
+ * @memberof sesame.v1.audio.AudioChannelPluginStatus
3275
+ * @instance
3276
+ */
3277
+ AudioChannelPluginStatus.prototype.id = "";
3278
+
3279
+ /**
3280
+ * AudioChannelPluginStatus type.
3281
+ * @member {string} type
3282
+ * @memberof sesame.v1.audio.AudioChannelPluginStatus
2520
3283
  * @instance
2521
3284
  */
2522
- AudioChannelRemoveRequest.prototype.mixerId = "";
3285
+ AudioChannelPluginStatus.prototype.type = "";
2523
3286
 
2524
3287
  /**
2525
- * AudioChannelRemoveRequest channelId.
2526
- * @member {string} channelId
2527
- * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3288
+ * AudioChannelPluginStatus params.
3289
+ * @member {Array.<sesame.v1.audio.IAudioPluginParamStatus>} params
3290
+ * @memberof sesame.v1.audio.AudioChannelPluginStatus
2528
3291
  * @instance
2529
3292
  */
2530
- AudioChannelRemoveRequest.prototype.channelId = "";
3293
+ AudioChannelPluginStatus.prototype.params = $util.emptyArray;
2531
3294
 
2532
3295
  /**
2533
- * Creates a new AudioChannelRemoveRequest instance using the specified properties.
3296
+ * Creates a new AudioChannelPluginStatus instance using the specified properties.
2534
3297
  * @function create
2535
- * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3298
+ * @memberof sesame.v1.audio.AudioChannelPluginStatus
2536
3299
  * @static
2537
- * @param {sesame.v1.audio.IAudioChannelRemoveRequest=} [properties] Properties to set
2538
- * @returns {sesame.v1.audio.AudioChannelRemoveRequest} AudioChannelRemoveRequest instance
3300
+ * @param {sesame.v1.audio.IAudioChannelPluginStatus=} [properties] Properties to set
3301
+ * @returns {sesame.v1.audio.AudioChannelPluginStatus} AudioChannelPluginStatus instance
2539
3302
  */
2540
- AudioChannelRemoveRequest.create = function create(properties) {
2541
- return new AudioChannelRemoveRequest(properties);
3303
+ AudioChannelPluginStatus.create = function create(properties) {
3304
+ return new AudioChannelPluginStatus(properties);
2542
3305
  };
2543
3306
 
2544
3307
  /**
2545
- * Encodes the specified AudioChannelRemoveRequest message. Does not implicitly {@link sesame.v1.audio.AudioChannelRemoveRequest.verify|verify} messages.
3308
+ * Encodes the specified AudioChannelPluginStatus message. Does not implicitly {@link sesame.v1.audio.AudioChannelPluginStatus.verify|verify} messages.
2546
3309
  * @function encode
2547
- * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3310
+ * @memberof sesame.v1.audio.AudioChannelPluginStatus
2548
3311
  * @static
2549
- * @param {sesame.v1.audio.IAudioChannelRemoveRequest} message AudioChannelRemoveRequest message or plain object to encode
3312
+ * @param {sesame.v1.audio.IAudioChannelPluginStatus} message AudioChannelPluginStatus message or plain object to encode
2550
3313
  * @param {$protobuf.Writer} [writer] Writer to encode to
2551
3314
  * @returns {$protobuf.Writer} Writer
2552
3315
  */
2553
- AudioChannelRemoveRequest.encode = function encode(message, writer) {
3316
+ AudioChannelPluginStatus.encode = function encode(message, writer) {
2554
3317
  if (!writer)
2555
3318
  writer = $Writer.create();
2556
- if (message.mixerId != null && Object.hasOwnProperty.call(message, "mixerId"))
2557
- writer.uint32(/* id 1, wireType 2 =*/10).string(message.mixerId);
2558
- if (message.channelId != null && Object.hasOwnProperty.call(message, "channelId"))
2559
- writer.uint32(/* id 2, wireType 2 =*/18).string(message.channelId);
3319
+ if (message.id != null && Object.hasOwnProperty.call(message, "id"))
3320
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.id);
3321
+ if (message.type != null && Object.hasOwnProperty.call(message, "type"))
3322
+ writer.uint32(/* id 2, wireType 2 =*/18).string(message.type);
3323
+ if (message.params != null && message.params.length)
3324
+ for (let i = 0; i < message.params.length; ++i)
3325
+ $root.sesame.v1.audio.AudioPluginParamStatus.encode(message.params[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
2560
3326
  return writer;
2561
3327
  };
2562
3328
 
2563
3329
  /**
2564
- * Encodes the specified AudioChannelRemoveRequest message, length delimited. Does not implicitly {@link sesame.v1.audio.AudioChannelRemoveRequest.verify|verify} messages.
3330
+ * Encodes the specified AudioChannelPluginStatus message, length delimited. Does not implicitly {@link sesame.v1.audio.AudioChannelPluginStatus.verify|verify} messages.
2565
3331
  * @function encodeDelimited
2566
- * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3332
+ * @memberof sesame.v1.audio.AudioChannelPluginStatus
2567
3333
  * @static
2568
- * @param {sesame.v1.audio.IAudioChannelRemoveRequest} message AudioChannelRemoveRequest message or plain object to encode
3334
+ * @param {sesame.v1.audio.IAudioChannelPluginStatus} message AudioChannelPluginStatus message or plain object to encode
2569
3335
  * @param {$protobuf.Writer} [writer] Writer to encode to
2570
3336
  * @returns {$protobuf.Writer} Writer
2571
3337
  */
2572
- AudioChannelRemoveRequest.encodeDelimited = function encodeDelimited(message, writer) {
3338
+ AudioChannelPluginStatus.encodeDelimited = function encodeDelimited(message, writer) {
2573
3339
  return this.encode(message, writer).ldelim();
2574
3340
  };
2575
3341
 
2576
3342
  /**
2577
- * Decodes an AudioChannelRemoveRequest message from the specified reader or buffer.
3343
+ * Decodes an AudioChannelPluginStatus message from the specified reader or buffer.
2578
3344
  * @function decode
2579
- * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3345
+ * @memberof sesame.v1.audio.AudioChannelPluginStatus
2580
3346
  * @static
2581
3347
  * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
2582
3348
  * @param {number} [length] Message length if known beforehand
2583
- * @returns {sesame.v1.audio.AudioChannelRemoveRequest} AudioChannelRemoveRequest
3349
+ * @returns {sesame.v1.audio.AudioChannelPluginStatus} AudioChannelPluginStatus
2584
3350
  * @throws {Error} If the payload is not a reader or valid buffer
2585
3351
  * @throws {$protobuf.util.ProtocolError} If required fields are missing
2586
3352
  */
2587
- AudioChannelRemoveRequest.decode = function decode(reader, length, error) {
3353
+ AudioChannelPluginStatus.decode = function decode(reader, length, error) {
2588
3354
  if (!(reader instanceof $Reader))
2589
3355
  reader = $Reader.create(reader);
2590
- let end = length === undefined ? reader.len : reader.pos + length, message = new $root.sesame.v1.audio.AudioChannelRemoveRequest();
3356
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.sesame.v1.audio.AudioChannelPluginStatus();
2591
3357
  while (reader.pos < end) {
2592
3358
  let tag = reader.uint32();
2593
3359
  if (tag === error)
2594
3360
  break;
2595
3361
  switch (tag >>> 3) {
2596
3362
  case 1: {
2597
- message.mixerId = reader.string();
3363
+ message.id = reader.string();
2598
3364
  break;
2599
3365
  }
2600
3366
  case 2: {
2601
- message.channelId = reader.string();
3367
+ message.type = reader.string();
3368
+ break;
3369
+ }
3370
+ case 3: {
3371
+ if (!(message.params && message.params.length))
3372
+ message.params = [];
3373
+ message.params.push($root.sesame.v1.audio.AudioPluginParamStatus.decode(reader, reader.uint32()));
2602
3374
  break;
2603
3375
  }
2604
3376
  default:
@@ -2610,226 +3382,367 @@ export const sesame = $root.sesame = (() => {
2610
3382
  };
2611
3383
 
2612
3384
  /**
2613
- * Decodes an AudioChannelRemoveRequest message from the specified reader or buffer, length delimited.
3385
+ * Decodes an AudioChannelPluginStatus message from the specified reader or buffer, length delimited.
2614
3386
  * @function decodeDelimited
2615
- * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3387
+ * @memberof sesame.v1.audio.AudioChannelPluginStatus
2616
3388
  * @static
2617
3389
  * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
2618
- * @returns {sesame.v1.audio.AudioChannelRemoveRequest} AudioChannelRemoveRequest
3390
+ * @returns {sesame.v1.audio.AudioChannelPluginStatus} AudioChannelPluginStatus
2619
3391
  * @throws {Error} If the payload is not a reader or valid buffer
2620
3392
  * @throws {$protobuf.util.ProtocolError} If required fields are missing
2621
3393
  */
2622
- AudioChannelRemoveRequest.decodeDelimited = function decodeDelimited(reader) {
3394
+ AudioChannelPluginStatus.decodeDelimited = function decodeDelimited(reader) {
2623
3395
  if (!(reader instanceof $Reader))
2624
3396
  reader = new $Reader(reader);
2625
3397
  return this.decode(reader, reader.uint32());
2626
3398
  };
2627
3399
 
2628
3400
  /**
2629
- * Verifies an AudioChannelRemoveRequest message.
3401
+ * Verifies an AudioChannelPluginStatus message.
2630
3402
  * @function verify
2631
- * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3403
+ * @memberof sesame.v1.audio.AudioChannelPluginStatus
2632
3404
  * @static
2633
3405
  * @param {Object.<string,*>} message Plain object to verify
2634
3406
  * @returns {string|null} `null` if valid, otherwise the reason why it is not
2635
3407
  */
2636
- AudioChannelRemoveRequest.verify = function verify(message) {
3408
+ AudioChannelPluginStatus.verify = function verify(message) {
2637
3409
  if (typeof message !== "object" || message === null)
2638
3410
  return "object expected";
2639
- if (message.mixerId != null && message.hasOwnProperty("mixerId"))
2640
- if (!$util.isString(message.mixerId))
2641
- return "mixerId: string expected";
2642
- if (message.channelId != null && message.hasOwnProperty("channelId"))
2643
- if (!$util.isString(message.channelId))
2644
- return "channelId: string expected";
3411
+ if (message.id != null && message.hasOwnProperty("id"))
3412
+ if (!$util.isString(message.id))
3413
+ return "id: string expected";
3414
+ if (message.type != null && message.hasOwnProperty("type"))
3415
+ if (!$util.isString(message.type))
3416
+ return "type: string expected";
3417
+ if (message.params != null && message.hasOwnProperty("params")) {
3418
+ if (!Array.isArray(message.params))
3419
+ return "params: array expected";
3420
+ for (let i = 0; i < message.params.length; ++i) {
3421
+ let error = $root.sesame.v1.audio.AudioPluginParamStatus.verify(message.params[i]);
3422
+ if (error)
3423
+ return "params." + error;
3424
+ }
3425
+ }
2645
3426
  return null;
2646
3427
  };
2647
3428
 
2648
3429
  /**
2649
- * Creates an AudioChannelRemoveRequest message from a plain object. Also converts values to their respective internal types.
3430
+ * Creates an AudioChannelPluginStatus message from a plain object. Also converts values to their respective internal types.
2650
3431
  * @function fromObject
2651
- * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3432
+ * @memberof sesame.v1.audio.AudioChannelPluginStatus
2652
3433
  * @static
2653
3434
  * @param {Object.<string,*>} object Plain object
2654
- * @returns {sesame.v1.audio.AudioChannelRemoveRequest} AudioChannelRemoveRequest
3435
+ * @returns {sesame.v1.audio.AudioChannelPluginStatus} AudioChannelPluginStatus
2655
3436
  */
2656
- AudioChannelRemoveRequest.fromObject = function fromObject(object) {
2657
- if (object instanceof $root.sesame.v1.audio.AudioChannelRemoveRequest)
3437
+ AudioChannelPluginStatus.fromObject = function fromObject(object) {
3438
+ if (object instanceof $root.sesame.v1.audio.AudioChannelPluginStatus)
2658
3439
  return object;
2659
- let message = new $root.sesame.v1.audio.AudioChannelRemoveRequest();
2660
- if (object.mixerId != null)
2661
- message.mixerId = String(object.mixerId);
2662
- if (object.channelId != null)
2663
- message.channelId = String(object.channelId);
3440
+ let message = new $root.sesame.v1.audio.AudioChannelPluginStatus();
3441
+ if (object.id != null)
3442
+ message.id = String(object.id);
3443
+ if (object.type != null)
3444
+ message.type = String(object.type);
3445
+ if (object.params) {
3446
+ if (!Array.isArray(object.params))
3447
+ throw TypeError(".sesame.v1.audio.AudioChannelPluginStatus.params: array expected");
3448
+ message.params = [];
3449
+ for (let i = 0; i < object.params.length; ++i) {
3450
+ if (typeof object.params[i] !== "object")
3451
+ throw TypeError(".sesame.v1.audio.AudioChannelPluginStatus.params: object expected");
3452
+ message.params[i] = $root.sesame.v1.audio.AudioPluginParamStatus.fromObject(object.params[i]);
3453
+ }
3454
+ }
2664
3455
  return message;
2665
3456
  };
2666
3457
 
2667
3458
  /**
2668
- * Creates a plain object from an AudioChannelRemoveRequest message. Also converts values to other types if specified.
2669
- * @function toObject
2670
- * @memberof sesame.v1.audio.AudioChannelRemoveRequest
2671
- * @static
2672
- * @param {sesame.v1.audio.AudioChannelRemoveRequest} message AudioChannelRemoveRequest
2673
- * @param {$protobuf.IConversionOptions} [options] Conversion options
2674
- * @returns {Object.<string,*>} Plain object
3459
+ * Creates a plain object from an AudioChannelPluginStatus message. Also converts values to other types if specified.
3460
+ * @function toObject
3461
+ * @memberof sesame.v1.audio.AudioChannelPluginStatus
3462
+ * @static
3463
+ * @param {sesame.v1.audio.AudioChannelPluginStatus} message AudioChannelPluginStatus
3464
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
3465
+ * @returns {Object.<string,*>} Plain object
3466
+ */
3467
+ AudioChannelPluginStatus.toObject = function toObject(message, options) {
3468
+ if (!options)
3469
+ options = {};
3470
+ let object = {};
3471
+ if (options.arrays || options.defaults)
3472
+ object.params = [];
3473
+ if (options.defaults) {
3474
+ object.id = "";
3475
+ object.type = "";
3476
+ }
3477
+ if (message.id != null && message.hasOwnProperty("id"))
3478
+ object.id = message.id;
3479
+ if (message.type != null && message.hasOwnProperty("type"))
3480
+ object.type = message.type;
3481
+ if (message.params && message.params.length) {
3482
+ object.params = [];
3483
+ for (let j = 0; j < message.params.length; ++j)
3484
+ object.params[j] = $root.sesame.v1.audio.AudioPluginParamStatus.toObject(message.params[j], options);
3485
+ }
3486
+ return object;
3487
+ };
3488
+
3489
+ /**
3490
+ * Converts this AudioChannelPluginStatus to JSON.
3491
+ * @function toJSON
3492
+ * @memberof sesame.v1.audio.AudioChannelPluginStatus
3493
+ * @instance
3494
+ * @returns {Object.<string,*>} JSON object
3495
+ */
3496
+ AudioChannelPluginStatus.prototype.toJSON = function toJSON() {
3497
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
3498
+ };
3499
+
3500
+ /**
3501
+ * Gets the default type url for AudioChannelPluginStatus
3502
+ * @function getTypeUrl
3503
+ * @memberof sesame.v1.audio.AudioChannelPluginStatus
3504
+ * @static
3505
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
3506
+ * @returns {string} The default type url
3507
+ */
3508
+ AudioChannelPluginStatus.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
3509
+ if (typeUrlPrefix === undefined) {
3510
+ typeUrlPrefix = "type.googleapis.com";
3511
+ }
3512
+ return typeUrlPrefix + "/sesame.v1.audio.AudioChannelPluginStatus";
3513
+ };
3514
+
3515
+ return AudioChannelPluginStatus;
3516
+ })();
3517
+
3518
+ audio.AudioChannelStatus = (function() {
3519
+
3520
+ /**
3521
+ * Properties of an AudioChannelStatus.
3522
+ * @memberof sesame.v1.audio
3523
+ * @interface IAudioChannelStatus
3524
+ * @property {string|null} [id] AudioChannelStatus id
3525
+ * @property {sesame.v1.audio.AudioMixerChannelType|null} [outputType] AudioChannelStatus outputType
3526
+ * @property {number|null} [level] AudioChannelStatus level
3527
+ * @property {number|null} [pan] AudioChannelStatus pan
3528
+ * @property {Array.<number>|null} [vu] AudioChannelStatus vu
3529
+ * @property {boolean|null} [hasData] AudioChannelStatus hasData
3530
+ * @property {number|null} [readErrors] AudioChannelStatus readErrors
3531
+ * @property {Array.<sesame.v1.audio.IAudioChannelPluginStatus>|null} [plugins] AudioChannelStatus plugins
3532
+ * @property {boolean|null} [mute] AudioChannelStatus mute
3533
+ * @property {number|null} [automationLevel] AudioChannelStatus automationLevel
3534
+ * @property {boolean|null} [automationMute] AudioChannelStatus automationMute
3535
+ * @property {number|null} [effectiveLevel] AudioChannelStatus effectiveLevel
3536
+ * @property {boolean|null} [effectiveMute] AudioChannelStatus effectiveMute
3537
+ */
3538
+
3539
+ /**
3540
+ * Constructs a new AudioChannelStatus.
3541
+ * @memberof sesame.v1.audio
3542
+ * @classdesc Represents an AudioChannelStatus.
3543
+ * @implements IAudioChannelStatus
3544
+ * @constructor
3545
+ * @param {sesame.v1.audio.IAudioChannelStatus=} [properties] Properties to set
3546
+ */
3547
+ function AudioChannelStatus(properties) {
3548
+ this.vu = [];
3549
+ this.plugins = [];
3550
+ if (properties)
3551
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
3552
+ if (properties[keys[i]] != null)
3553
+ this[keys[i]] = properties[keys[i]];
3554
+ }
3555
+
3556
+ /**
3557
+ * AudioChannelStatus id.
3558
+ * @member {string} id
3559
+ * @memberof sesame.v1.audio.AudioChannelStatus
3560
+ * @instance
3561
+ */
3562
+ AudioChannelStatus.prototype.id = "";
3563
+
3564
+ /**
3565
+ * AudioChannelStatus outputType.
3566
+ * @member {sesame.v1.audio.AudioMixerChannelType} outputType
3567
+ * @memberof sesame.v1.audio.AudioChannelStatus
3568
+ * @instance
3569
+ */
3570
+ AudioChannelStatus.prototype.outputType = 0;
3571
+
3572
+ /**
3573
+ * AudioChannelStatus level.
3574
+ * @member {number} level
3575
+ * @memberof sesame.v1.audio.AudioChannelStatus
3576
+ * @instance
3577
+ */
3578
+ AudioChannelStatus.prototype.level = 0;
3579
+
3580
+ /**
3581
+ * AudioChannelStatus pan.
3582
+ * @member {number} pan
3583
+ * @memberof sesame.v1.audio.AudioChannelStatus
3584
+ * @instance
2675
3585
  */
2676
- AudioChannelRemoveRequest.toObject = function toObject(message, options) {
2677
- if (!options)
2678
- options = {};
2679
- let object = {};
2680
- if (options.defaults) {
2681
- object.mixerId = "";
2682
- object.channelId = "";
2683
- }
2684
- if (message.mixerId != null && message.hasOwnProperty("mixerId"))
2685
- object.mixerId = message.mixerId;
2686
- if (message.channelId != null && message.hasOwnProperty("channelId"))
2687
- object.channelId = message.channelId;
2688
- return object;
2689
- };
3586
+ AudioChannelStatus.prototype.pan = 0;
2690
3587
 
2691
3588
  /**
2692
- * Converts this AudioChannelRemoveRequest to JSON.
2693
- * @function toJSON
2694
- * @memberof sesame.v1.audio.AudioChannelRemoveRequest
3589
+ * AudioChannelStatus vu.
3590
+ * @member {Array.<number>} vu
3591
+ * @memberof sesame.v1.audio.AudioChannelStatus
2695
3592
  * @instance
2696
- * @returns {Object.<string,*>} JSON object
2697
3593
  */
2698
- AudioChannelRemoveRequest.prototype.toJSON = function toJSON() {
2699
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
2700
- };
3594
+ AudioChannelStatus.prototype.vu = $util.emptyArray;
2701
3595
 
2702
3596
  /**
2703
- * Gets the default type url for AudioChannelRemoveRequest
2704
- * @function getTypeUrl
2705
- * @memberof sesame.v1.audio.AudioChannelRemoveRequest
2706
- * @static
2707
- * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
2708
- * @returns {string} The default type url
3597
+ * AudioChannelStatus hasData.
3598
+ * @member {boolean} hasData
3599
+ * @memberof sesame.v1.audio.AudioChannelStatus
3600
+ * @instance
2709
3601
  */
2710
- AudioChannelRemoveRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
2711
- if (typeUrlPrefix === undefined) {
2712
- typeUrlPrefix = "type.googleapis.com";
2713
- }
2714
- return typeUrlPrefix + "/sesame.v1.audio.AudioChannelRemoveRequest";
2715
- };
3602
+ AudioChannelStatus.prototype.hasData = false;
2716
3603
 
2717
- return AudioChannelRemoveRequest;
2718
- })();
3604
+ /**
3605
+ * AudioChannelStatus readErrors.
3606
+ * @member {number} readErrors
3607
+ * @memberof sesame.v1.audio.AudioChannelStatus
3608
+ * @instance
3609
+ */
3610
+ AudioChannelStatus.prototype.readErrors = 0;
2719
3611
 
2720
- audio.AudioChannelPluginStatus = (function() {
3612
+ /**
3613
+ * AudioChannelStatus plugins.
3614
+ * @member {Array.<sesame.v1.audio.IAudioChannelPluginStatus>} plugins
3615
+ * @memberof sesame.v1.audio.AudioChannelStatus
3616
+ * @instance
3617
+ */
3618
+ AudioChannelStatus.prototype.plugins = $util.emptyArray;
2721
3619
 
2722
3620
  /**
2723
- * Properties of an AudioChannelPluginStatus.
2724
- * @memberof sesame.v1.audio
2725
- * @interface IAudioChannelPluginStatus
2726
- * @property {string|null} [id] AudioChannelPluginStatus id
2727
- * @property {string|null} [type] AudioChannelPluginStatus type
2728
- * @property {Array.<sesame.v1.audio.IAudioPluginParamStatus>|null} [params] AudioChannelPluginStatus params
3621
+ * AudioChannelStatus mute.
3622
+ * @member {boolean} mute
3623
+ * @memberof sesame.v1.audio.AudioChannelStatus
3624
+ * @instance
2729
3625
  */
3626
+ AudioChannelStatus.prototype.mute = false;
2730
3627
 
2731
3628
  /**
2732
- * Constructs a new AudioChannelPluginStatus.
2733
- * @memberof sesame.v1.audio
2734
- * @classdesc Represents an AudioChannelPluginStatus.
2735
- * @implements IAudioChannelPluginStatus
2736
- * @constructor
2737
- * @param {sesame.v1.audio.IAudioChannelPluginStatus=} [properties] Properties to set
3629
+ * AudioChannelStatus automationLevel.
3630
+ * @member {number} automationLevel
3631
+ * @memberof sesame.v1.audio.AudioChannelStatus
3632
+ * @instance
2738
3633
  */
2739
- function AudioChannelPluginStatus(properties) {
2740
- this.params = [];
2741
- if (properties)
2742
- for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
2743
- if (properties[keys[i]] != null)
2744
- this[keys[i]] = properties[keys[i]];
2745
- }
3634
+ AudioChannelStatus.prototype.automationLevel = 0;
2746
3635
 
2747
3636
  /**
2748
- * AudioChannelPluginStatus id.
2749
- * @member {string} id
2750
- * @memberof sesame.v1.audio.AudioChannelPluginStatus
3637
+ * AudioChannelStatus automationMute.
3638
+ * @member {boolean} automationMute
3639
+ * @memberof sesame.v1.audio.AudioChannelStatus
2751
3640
  * @instance
2752
3641
  */
2753
- AudioChannelPluginStatus.prototype.id = "";
3642
+ AudioChannelStatus.prototype.automationMute = false;
2754
3643
 
2755
3644
  /**
2756
- * AudioChannelPluginStatus type.
2757
- * @member {string} type
2758
- * @memberof sesame.v1.audio.AudioChannelPluginStatus
3645
+ * AudioChannelStatus effectiveLevel.
3646
+ * @member {number} effectiveLevel
3647
+ * @memberof sesame.v1.audio.AudioChannelStatus
2759
3648
  * @instance
2760
3649
  */
2761
- AudioChannelPluginStatus.prototype.type = "";
3650
+ AudioChannelStatus.prototype.effectiveLevel = 0;
2762
3651
 
2763
3652
  /**
2764
- * AudioChannelPluginStatus params.
2765
- * @member {Array.<sesame.v1.audio.IAudioPluginParamStatus>} params
2766
- * @memberof sesame.v1.audio.AudioChannelPluginStatus
3653
+ * AudioChannelStatus effectiveMute.
3654
+ * @member {boolean} effectiveMute
3655
+ * @memberof sesame.v1.audio.AudioChannelStatus
2767
3656
  * @instance
2768
3657
  */
2769
- AudioChannelPluginStatus.prototype.params = $util.emptyArray;
3658
+ AudioChannelStatus.prototype.effectiveMute = false;
2770
3659
 
2771
3660
  /**
2772
- * Creates a new AudioChannelPluginStatus instance using the specified properties.
3661
+ * Creates a new AudioChannelStatus instance using the specified properties.
2773
3662
  * @function create
2774
- * @memberof sesame.v1.audio.AudioChannelPluginStatus
3663
+ * @memberof sesame.v1.audio.AudioChannelStatus
2775
3664
  * @static
2776
- * @param {sesame.v1.audio.IAudioChannelPluginStatus=} [properties] Properties to set
2777
- * @returns {sesame.v1.audio.AudioChannelPluginStatus} AudioChannelPluginStatus instance
3665
+ * @param {sesame.v1.audio.IAudioChannelStatus=} [properties] Properties to set
3666
+ * @returns {sesame.v1.audio.AudioChannelStatus} AudioChannelStatus instance
2778
3667
  */
2779
- AudioChannelPluginStatus.create = function create(properties) {
2780
- return new AudioChannelPluginStatus(properties);
3668
+ AudioChannelStatus.create = function create(properties) {
3669
+ return new AudioChannelStatus(properties);
2781
3670
  };
2782
3671
 
2783
3672
  /**
2784
- * Encodes the specified AudioChannelPluginStatus message. Does not implicitly {@link sesame.v1.audio.AudioChannelPluginStatus.verify|verify} messages.
3673
+ * Encodes the specified AudioChannelStatus message. Does not implicitly {@link sesame.v1.audio.AudioChannelStatus.verify|verify} messages.
2785
3674
  * @function encode
2786
- * @memberof sesame.v1.audio.AudioChannelPluginStatus
3675
+ * @memberof sesame.v1.audio.AudioChannelStatus
2787
3676
  * @static
2788
- * @param {sesame.v1.audio.IAudioChannelPluginStatus} message AudioChannelPluginStatus message or plain object to encode
3677
+ * @param {sesame.v1.audio.IAudioChannelStatus} message AudioChannelStatus message or plain object to encode
2789
3678
  * @param {$protobuf.Writer} [writer] Writer to encode to
2790
3679
  * @returns {$protobuf.Writer} Writer
2791
3680
  */
2792
- AudioChannelPluginStatus.encode = function encode(message, writer) {
3681
+ AudioChannelStatus.encode = function encode(message, writer) {
2793
3682
  if (!writer)
2794
3683
  writer = $Writer.create();
2795
3684
  if (message.id != null && Object.hasOwnProperty.call(message, "id"))
2796
3685
  writer.uint32(/* id 1, wireType 2 =*/10).string(message.id);
2797
- if (message.type != null && Object.hasOwnProperty.call(message, "type"))
2798
- writer.uint32(/* id 2, wireType 2 =*/18).string(message.type);
2799
- if (message.params != null && message.params.length)
2800
- for (let i = 0; i < message.params.length; ++i)
2801
- $root.sesame.v1.audio.AudioPluginParamStatus.encode(message.params[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
3686
+ if (message.outputType != null && Object.hasOwnProperty.call(message, "outputType"))
3687
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.outputType);
3688
+ if (message.level != null && Object.hasOwnProperty.call(message, "level"))
3689
+ writer.uint32(/* id 3, wireType 5 =*/29).float(message.level);
3690
+ if (message.pan != null && Object.hasOwnProperty.call(message, "pan"))
3691
+ writer.uint32(/* id 4, wireType 5 =*/37).float(message.pan);
3692
+ if (message.vu != null && message.vu.length) {
3693
+ writer.uint32(/* id 5, wireType 2 =*/42).fork();
3694
+ for (let i = 0; i < message.vu.length; ++i)
3695
+ writer.float(message.vu[i]);
3696
+ writer.ldelim();
3697
+ }
3698
+ if (message.hasData != null && Object.hasOwnProperty.call(message, "hasData"))
3699
+ writer.uint32(/* id 6, wireType 0 =*/48).bool(message.hasData);
3700
+ if (message.readErrors != null && Object.hasOwnProperty.call(message, "readErrors"))
3701
+ writer.uint32(/* id 7, wireType 0 =*/56).uint32(message.readErrors);
3702
+ if (message.plugins != null && message.plugins.length)
3703
+ for (let i = 0; i < message.plugins.length; ++i)
3704
+ $root.sesame.v1.audio.AudioChannelPluginStatus.encode(message.plugins[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();
3705
+ if (message.mute != null && Object.hasOwnProperty.call(message, "mute"))
3706
+ writer.uint32(/* id 9, wireType 0 =*/72).bool(message.mute);
3707
+ if (message.automationLevel != null && Object.hasOwnProperty.call(message, "automationLevel"))
3708
+ writer.uint32(/* id 10, wireType 5 =*/85).float(message.automationLevel);
3709
+ if (message.automationMute != null && Object.hasOwnProperty.call(message, "automationMute"))
3710
+ writer.uint32(/* id 11, wireType 0 =*/88).bool(message.automationMute);
3711
+ if (message.effectiveLevel != null && Object.hasOwnProperty.call(message, "effectiveLevel"))
3712
+ writer.uint32(/* id 12, wireType 5 =*/101).float(message.effectiveLevel);
3713
+ if (message.effectiveMute != null && Object.hasOwnProperty.call(message, "effectiveMute"))
3714
+ writer.uint32(/* id 13, wireType 0 =*/104).bool(message.effectiveMute);
2802
3715
  return writer;
2803
3716
  };
2804
3717
 
2805
3718
  /**
2806
- * Encodes the specified AudioChannelPluginStatus message, length delimited. Does not implicitly {@link sesame.v1.audio.AudioChannelPluginStatus.verify|verify} messages.
3719
+ * Encodes the specified AudioChannelStatus message, length delimited. Does not implicitly {@link sesame.v1.audio.AudioChannelStatus.verify|verify} messages.
2807
3720
  * @function encodeDelimited
2808
- * @memberof sesame.v1.audio.AudioChannelPluginStatus
3721
+ * @memberof sesame.v1.audio.AudioChannelStatus
2809
3722
  * @static
2810
- * @param {sesame.v1.audio.IAudioChannelPluginStatus} message AudioChannelPluginStatus message or plain object to encode
3723
+ * @param {sesame.v1.audio.IAudioChannelStatus} message AudioChannelStatus message or plain object to encode
2811
3724
  * @param {$protobuf.Writer} [writer] Writer to encode to
2812
3725
  * @returns {$protobuf.Writer} Writer
2813
3726
  */
2814
- AudioChannelPluginStatus.encodeDelimited = function encodeDelimited(message, writer) {
3727
+ AudioChannelStatus.encodeDelimited = function encodeDelimited(message, writer) {
2815
3728
  return this.encode(message, writer).ldelim();
2816
3729
  };
2817
3730
 
2818
3731
  /**
2819
- * Decodes an AudioChannelPluginStatus message from the specified reader or buffer.
3732
+ * Decodes an AudioChannelStatus message from the specified reader or buffer.
2820
3733
  * @function decode
2821
- * @memberof sesame.v1.audio.AudioChannelPluginStatus
3734
+ * @memberof sesame.v1.audio.AudioChannelStatus
2822
3735
  * @static
2823
3736
  * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
2824
3737
  * @param {number} [length] Message length if known beforehand
2825
- * @returns {sesame.v1.audio.AudioChannelPluginStatus} AudioChannelPluginStatus
3738
+ * @returns {sesame.v1.audio.AudioChannelStatus} AudioChannelStatus
2826
3739
  * @throws {Error} If the payload is not a reader or valid buffer
2827
3740
  * @throws {$protobuf.util.ProtocolError} If required fields are missing
2828
3741
  */
2829
- AudioChannelPluginStatus.decode = function decode(reader, length, error) {
3742
+ AudioChannelStatus.decode = function decode(reader, length, error) {
2830
3743
  if (!(reader instanceof $Reader))
2831
3744
  reader = $Reader.create(reader);
2832
- let end = length === undefined ? reader.len : reader.pos + length, message = new $root.sesame.v1.audio.AudioChannelPluginStatus();
3745
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.sesame.v1.audio.AudioChannelStatus();
2833
3746
  while (reader.pos < end) {
2834
3747
  let tag = reader.uint32();
2835
3748
  if (tag === error)
@@ -2840,13 +3753,60 @@ export const sesame = $root.sesame = (() => {
2840
3753
  break;
2841
3754
  }
2842
3755
  case 2: {
2843
- message.type = reader.string();
3756
+ message.outputType = reader.int32();
2844
3757
  break;
2845
3758
  }
2846
3759
  case 3: {
2847
- if (!(message.params && message.params.length))
2848
- message.params = [];
2849
- message.params.push($root.sesame.v1.audio.AudioPluginParamStatus.decode(reader, reader.uint32()));
3760
+ message.level = reader.float();
3761
+ break;
3762
+ }
3763
+ case 4: {
3764
+ message.pan = reader.float();
3765
+ break;
3766
+ }
3767
+ case 5: {
3768
+ if (!(message.vu && message.vu.length))
3769
+ message.vu = [];
3770
+ if ((tag & 7) === 2) {
3771
+ let end2 = reader.uint32() + reader.pos;
3772
+ while (reader.pos < end2)
3773
+ message.vu.push(reader.float());
3774
+ } else
3775
+ message.vu.push(reader.float());
3776
+ break;
3777
+ }
3778
+ case 6: {
3779
+ message.hasData = reader.bool();
3780
+ break;
3781
+ }
3782
+ case 7: {
3783
+ message.readErrors = reader.uint32();
3784
+ break;
3785
+ }
3786
+ case 8: {
3787
+ if (!(message.plugins && message.plugins.length))
3788
+ message.plugins = [];
3789
+ message.plugins.push($root.sesame.v1.audio.AudioChannelPluginStatus.decode(reader, reader.uint32()));
3790
+ break;
3791
+ }
3792
+ case 9: {
3793
+ message.mute = reader.bool();
3794
+ break;
3795
+ }
3796
+ case 10: {
3797
+ message.automationLevel = reader.float();
3798
+ break;
3799
+ }
3800
+ case 11: {
3801
+ message.automationMute = reader.bool();
3802
+ break;
3803
+ }
3804
+ case 12: {
3805
+ message.effectiveLevel = reader.float();
3806
+ break;
3807
+ }
3808
+ case 13: {
3809
+ message.effectiveMute = reader.bool();
2850
3810
  break;
2851
3811
  }
2852
3812
  default:
@@ -2858,166 +3818,280 @@ export const sesame = $root.sesame = (() => {
2858
3818
  };
2859
3819
 
2860
3820
  /**
2861
- * Decodes an AudioChannelPluginStatus message from the specified reader or buffer, length delimited.
3821
+ * Decodes an AudioChannelStatus message from the specified reader or buffer, length delimited.
2862
3822
  * @function decodeDelimited
2863
- * @memberof sesame.v1.audio.AudioChannelPluginStatus
3823
+ * @memberof sesame.v1.audio.AudioChannelStatus
2864
3824
  * @static
2865
3825
  * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
2866
- * @returns {sesame.v1.audio.AudioChannelPluginStatus} AudioChannelPluginStatus
3826
+ * @returns {sesame.v1.audio.AudioChannelStatus} AudioChannelStatus
2867
3827
  * @throws {Error} If the payload is not a reader or valid buffer
2868
3828
  * @throws {$protobuf.util.ProtocolError} If required fields are missing
2869
3829
  */
2870
- AudioChannelPluginStatus.decodeDelimited = function decodeDelimited(reader) {
3830
+ AudioChannelStatus.decodeDelimited = function decodeDelimited(reader) {
2871
3831
  if (!(reader instanceof $Reader))
2872
3832
  reader = new $Reader(reader);
2873
3833
  return this.decode(reader, reader.uint32());
2874
3834
  };
2875
3835
 
2876
3836
  /**
2877
- * Verifies an AudioChannelPluginStatus message.
3837
+ * Verifies an AudioChannelStatus message.
2878
3838
  * @function verify
2879
- * @memberof sesame.v1.audio.AudioChannelPluginStatus
3839
+ * @memberof sesame.v1.audio.AudioChannelStatus
2880
3840
  * @static
2881
3841
  * @param {Object.<string,*>} message Plain object to verify
2882
3842
  * @returns {string|null} `null` if valid, otherwise the reason why it is not
2883
3843
  */
2884
- AudioChannelPluginStatus.verify = function verify(message) {
3844
+ AudioChannelStatus.verify = function verify(message) {
2885
3845
  if (typeof message !== "object" || message === null)
2886
3846
  return "object expected";
2887
3847
  if (message.id != null && message.hasOwnProperty("id"))
2888
3848
  if (!$util.isString(message.id))
2889
3849
  return "id: string expected";
2890
- if (message.type != null && message.hasOwnProperty("type"))
2891
- if (!$util.isString(message.type))
2892
- return "type: string expected";
2893
- if (message.params != null && message.hasOwnProperty("params")) {
2894
- if (!Array.isArray(message.params))
2895
- return "params: array expected";
2896
- for (let i = 0; i < message.params.length; ++i) {
2897
- let error = $root.sesame.v1.audio.AudioPluginParamStatus.verify(message.params[i]);
3850
+ if (message.outputType != null && message.hasOwnProperty("outputType"))
3851
+ switch (message.outputType) {
3852
+ default:
3853
+ return "outputType: enum value expected";
3854
+ case 0:
3855
+ case 1:
3856
+ case 2:
3857
+ break;
3858
+ }
3859
+ if (message.level != null && message.hasOwnProperty("level"))
3860
+ if (typeof message.level !== "number")
3861
+ return "level: number expected";
3862
+ if (message.pan != null && message.hasOwnProperty("pan"))
3863
+ if (typeof message.pan !== "number")
3864
+ return "pan: number expected";
3865
+ if (message.vu != null && message.hasOwnProperty("vu")) {
3866
+ if (!Array.isArray(message.vu))
3867
+ return "vu: array expected";
3868
+ for (let i = 0; i < message.vu.length; ++i)
3869
+ if (typeof message.vu[i] !== "number")
3870
+ return "vu: number[] expected";
3871
+ }
3872
+ if (message.hasData != null && message.hasOwnProperty("hasData"))
3873
+ if (typeof message.hasData !== "boolean")
3874
+ return "hasData: boolean expected";
3875
+ if (message.readErrors != null && message.hasOwnProperty("readErrors"))
3876
+ if (!$util.isInteger(message.readErrors))
3877
+ return "readErrors: integer expected";
3878
+ if (message.plugins != null && message.hasOwnProperty("plugins")) {
3879
+ if (!Array.isArray(message.plugins))
3880
+ return "plugins: array expected";
3881
+ for (let i = 0; i < message.plugins.length; ++i) {
3882
+ let error = $root.sesame.v1.audio.AudioChannelPluginStatus.verify(message.plugins[i]);
2898
3883
  if (error)
2899
- return "params." + error;
3884
+ return "plugins." + error;
2900
3885
  }
2901
3886
  }
3887
+ if (message.mute != null && message.hasOwnProperty("mute"))
3888
+ if (typeof message.mute !== "boolean")
3889
+ return "mute: boolean expected";
3890
+ if (message.automationLevel != null && message.hasOwnProperty("automationLevel"))
3891
+ if (typeof message.automationLevel !== "number")
3892
+ return "automationLevel: number expected";
3893
+ if (message.automationMute != null && message.hasOwnProperty("automationMute"))
3894
+ if (typeof message.automationMute !== "boolean")
3895
+ return "automationMute: boolean expected";
3896
+ if (message.effectiveLevel != null && message.hasOwnProperty("effectiveLevel"))
3897
+ if (typeof message.effectiveLevel !== "number")
3898
+ return "effectiveLevel: number expected";
3899
+ if (message.effectiveMute != null && message.hasOwnProperty("effectiveMute"))
3900
+ if (typeof message.effectiveMute !== "boolean")
3901
+ return "effectiveMute: boolean expected";
2902
3902
  return null;
2903
3903
  };
2904
3904
 
2905
3905
  /**
2906
- * Creates an AudioChannelPluginStatus message from a plain object. Also converts values to their respective internal types.
3906
+ * Creates an AudioChannelStatus message from a plain object. Also converts values to their respective internal types.
2907
3907
  * @function fromObject
2908
- * @memberof sesame.v1.audio.AudioChannelPluginStatus
3908
+ * @memberof sesame.v1.audio.AudioChannelStatus
2909
3909
  * @static
2910
3910
  * @param {Object.<string,*>} object Plain object
2911
- * @returns {sesame.v1.audio.AudioChannelPluginStatus} AudioChannelPluginStatus
3911
+ * @returns {sesame.v1.audio.AudioChannelStatus} AudioChannelStatus
2912
3912
  */
2913
- AudioChannelPluginStatus.fromObject = function fromObject(object) {
2914
- if (object instanceof $root.sesame.v1.audio.AudioChannelPluginStatus)
3913
+ AudioChannelStatus.fromObject = function fromObject(object) {
3914
+ if (object instanceof $root.sesame.v1.audio.AudioChannelStatus)
2915
3915
  return object;
2916
- let message = new $root.sesame.v1.audio.AudioChannelPluginStatus();
3916
+ let message = new $root.sesame.v1.audio.AudioChannelStatus();
2917
3917
  if (object.id != null)
2918
3918
  message.id = String(object.id);
2919
- if (object.type != null)
2920
- message.type = String(object.type);
2921
- if (object.params) {
2922
- if (!Array.isArray(object.params))
2923
- throw TypeError(".sesame.v1.audio.AudioChannelPluginStatus.params: array expected");
2924
- message.params = [];
2925
- for (let i = 0; i < object.params.length; ++i) {
2926
- if (typeof object.params[i] !== "object")
2927
- throw TypeError(".sesame.v1.audio.AudioChannelPluginStatus.params: object expected");
2928
- message.params[i] = $root.sesame.v1.audio.AudioPluginParamStatus.fromObject(object.params[i]);
3919
+ switch (object.outputType) {
3920
+ default:
3921
+ if (typeof object.outputType === "number") {
3922
+ message.outputType = object.outputType;
3923
+ break;
3924
+ }
3925
+ break;
3926
+ case "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED":
3927
+ case 0:
3928
+ message.outputType = 0;
3929
+ break;
3930
+ case "AUDIO_MIXER_CHANNEL_TYPE_MONO":
3931
+ case 1:
3932
+ message.outputType = 1;
3933
+ break;
3934
+ case "AUDIO_MIXER_CHANNEL_TYPE_STEREO":
3935
+ case 2:
3936
+ message.outputType = 2;
3937
+ break;
3938
+ }
3939
+ if (object.level != null)
3940
+ message.level = Number(object.level);
3941
+ if (object.pan != null)
3942
+ message.pan = Number(object.pan);
3943
+ if (object.vu) {
3944
+ if (!Array.isArray(object.vu))
3945
+ throw TypeError(".sesame.v1.audio.AudioChannelStatus.vu: array expected");
3946
+ message.vu = [];
3947
+ for (let i = 0; i < object.vu.length; ++i)
3948
+ message.vu[i] = Number(object.vu[i]);
3949
+ }
3950
+ if (object.hasData != null)
3951
+ message.hasData = Boolean(object.hasData);
3952
+ if (object.readErrors != null)
3953
+ message.readErrors = object.readErrors >>> 0;
3954
+ if (object.plugins) {
3955
+ if (!Array.isArray(object.plugins))
3956
+ throw TypeError(".sesame.v1.audio.AudioChannelStatus.plugins: array expected");
3957
+ message.plugins = [];
3958
+ for (let i = 0; i < object.plugins.length; ++i) {
3959
+ if (typeof object.plugins[i] !== "object")
3960
+ throw TypeError(".sesame.v1.audio.AudioChannelStatus.plugins: object expected");
3961
+ message.plugins[i] = $root.sesame.v1.audio.AudioChannelPluginStatus.fromObject(object.plugins[i]);
2929
3962
  }
2930
3963
  }
3964
+ if (object.mute != null)
3965
+ message.mute = Boolean(object.mute);
3966
+ if (object.automationLevel != null)
3967
+ message.automationLevel = Number(object.automationLevel);
3968
+ if (object.automationMute != null)
3969
+ message.automationMute = Boolean(object.automationMute);
3970
+ if (object.effectiveLevel != null)
3971
+ message.effectiveLevel = Number(object.effectiveLevel);
3972
+ if (object.effectiveMute != null)
3973
+ message.effectiveMute = Boolean(object.effectiveMute);
2931
3974
  return message;
2932
3975
  };
2933
3976
 
2934
3977
  /**
2935
- * Creates a plain object from an AudioChannelPluginStatus message. Also converts values to other types if specified.
3978
+ * Creates a plain object from an AudioChannelStatus message. Also converts values to other types if specified.
2936
3979
  * @function toObject
2937
- * @memberof sesame.v1.audio.AudioChannelPluginStatus
3980
+ * @memberof sesame.v1.audio.AudioChannelStatus
2938
3981
  * @static
2939
- * @param {sesame.v1.audio.AudioChannelPluginStatus} message AudioChannelPluginStatus
3982
+ * @param {sesame.v1.audio.AudioChannelStatus} message AudioChannelStatus
2940
3983
  * @param {$protobuf.IConversionOptions} [options] Conversion options
2941
3984
  * @returns {Object.<string,*>} Plain object
2942
3985
  */
2943
- AudioChannelPluginStatus.toObject = function toObject(message, options) {
3986
+ AudioChannelStatus.toObject = function toObject(message, options) {
2944
3987
  if (!options)
2945
3988
  options = {};
2946
3989
  let object = {};
2947
- if (options.arrays || options.defaults)
2948
- object.params = [];
3990
+ if (options.arrays || options.defaults) {
3991
+ object.vu = [];
3992
+ object.plugins = [];
3993
+ }
2949
3994
  if (options.defaults) {
2950
3995
  object.id = "";
2951
- object.type = "";
3996
+ object.outputType = options.enums === String ? "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED" : 0;
3997
+ object.level = 0;
3998
+ object.pan = 0;
3999
+ object.hasData = false;
4000
+ object.readErrors = 0;
4001
+ object.mute = false;
4002
+ object.automationLevel = 0;
4003
+ object.automationMute = false;
4004
+ object.effectiveLevel = 0;
4005
+ object.effectiveMute = false;
2952
4006
  }
2953
4007
  if (message.id != null && message.hasOwnProperty("id"))
2954
4008
  object.id = message.id;
2955
- if (message.type != null && message.hasOwnProperty("type"))
2956
- object.type = message.type;
2957
- if (message.params && message.params.length) {
2958
- object.params = [];
2959
- for (let j = 0; j < message.params.length; ++j)
2960
- object.params[j] = $root.sesame.v1.audio.AudioPluginParamStatus.toObject(message.params[j], options);
4009
+ if (message.outputType != null && message.hasOwnProperty("outputType"))
4010
+ object.outputType = options.enums === String ? $root.sesame.v1.audio.AudioMixerChannelType[message.outputType] === undefined ? message.outputType : $root.sesame.v1.audio.AudioMixerChannelType[message.outputType] : message.outputType;
4011
+ if (message.level != null && message.hasOwnProperty("level"))
4012
+ object.level = options.json && !isFinite(message.level) ? String(message.level) : message.level;
4013
+ if (message.pan != null && message.hasOwnProperty("pan"))
4014
+ object.pan = options.json && !isFinite(message.pan) ? String(message.pan) : message.pan;
4015
+ if (message.vu && message.vu.length) {
4016
+ object.vu = [];
4017
+ for (let j = 0; j < message.vu.length; ++j)
4018
+ object.vu[j] = options.json && !isFinite(message.vu[j]) ? String(message.vu[j]) : message.vu[j];
2961
4019
  }
4020
+ if (message.hasData != null && message.hasOwnProperty("hasData"))
4021
+ object.hasData = message.hasData;
4022
+ if (message.readErrors != null && message.hasOwnProperty("readErrors"))
4023
+ object.readErrors = message.readErrors;
4024
+ if (message.plugins && message.plugins.length) {
4025
+ object.plugins = [];
4026
+ for (let j = 0; j < message.plugins.length; ++j)
4027
+ object.plugins[j] = $root.sesame.v1.audio.AudioChannelPluginStatus.toObject(message.plugins[j], options);
4028
+ }
4029
+ if (message.mute != null && message.hasOwnProperty("mute"))
4030
+ object.mute = message.mute;
4031
+ if (message.automationLevel != null && message.hasOwnProperty("automationLevel"))
4032
+ object.automationLevel = options.json && !isFinite(message.automationLevel) ? String(message.automationLevel) : message.automationLevel;
4033
+ if (message.automationMute != null && message.hasOwnProperty("automationMute"))
4034
+ object.automationMute = message.automationMute;
4035
+ if (message.effectiveLevel != null && message.hasOwnProperty("effectiveLevel"))
4036
+ object.effectiveLevel = options.json && !isFinite(message.effectiveLevel) ? String(message.effectiveLevel) : message.effectiveLevel;
4037
+ if (message.effectiveMute != null && message.hasOwnProperty("effectiveMute"))
4038
+ object.effectiveMute = message.effectiveMute;
2962
4039
  return object;
2963
4040
  };
2964
4041
 
2965
4042
  /**
2966
- * Converts this AudioChannelPluginStatus to JSON.
4043
+ * Converts this AudioChannelStatus to JSON.
2967
4044
  * @function toJSON
2968
- * @memberof sesame.v1.audio.AudioChannelPluginStatus
4045
+ * @memberof sesame.v1.audio.AudioChannelStatus
2969
4046
  * @instance
2970
4047
  * @returns {Object.<string,*>} JSON object
2971
4048
  */
2972
- AudioChannelPluginStatus.prototype.toJSON = function toJSON() {
4049
+ AudioChannelStatus.prototype.toJSON = function toJSON() {
2973
4050
  return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
2974
4051
  };
2975
4052
 
2976
4053
  /**
2977
- * Gets the default type url for AudioChannelPluginStatus
4054
+ * Gets the default type url for AudioChannelStatus
2978
4055
  * @function getTypeUrl
2979
- * @memberof sesame.v1.audio.AudioChannelPluginStatus
4056
+ * @memberof sesame.v1.audio.AudioChannelStatus
2980
4057
  * @static
2981
4058
  * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
2982
4059
  * @returns {string} The default type url
2983
4060
  */
2984
- AudioChannelPluginStatus.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
4061
+ AudioChannelStatus.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
2985
4062
  if (typeUrlPrefix === undefined) {
2986
4063
  typeUrlPrefix = "type.googleapis.com";
2987
4064
  }
2988
- return typeUrlPrefix + "/sesame.v1.audio.AudioChannelPluginStatus";
4065
+ return typeUrlPrefix + "/sesame.v1.audio.AudioChannelStatus";
2989
4066
  };
2990
4067
 
2991
- return AudioChannelPluginStatus;
4068
+ return AudioChannelStatus;
2992
4069
  })();
2993
4070
 
2994
- audio.AudioChannelStatus = (function() {
4071
+ audio.AudioMixerOutputStatus = (function() {
2995
4072
 
2996
4073
  /**
2997
- * Properties of an AudioChannelStatus.
4074
+ * Properties of an AudioMixerOutputStatus.
2998
4075
  * @memberof sesame.v1.audio
2999
- * @interface IAudioChannelStatus
3000
- * @property {string|null} [id] AudioChannelStatus id
3001
- * @property {sesame.v1.audio.AudioMixerChannelType|null} [outputType] AudioChannelStatus outputType
3002
- * @property {number|null} [level] AudioChannelStatus level
3003
- * @property {number|null} [pan] AudioChannelStatus pan
3004
- * @property {Array.<number>|null} [vu] AudioChannelStatus vu
3005
- * @property {boolean|null} [hasData] AudioChannelStatus hasData
3006
- * @property {number|null} [readErrors] AudioChannelStatus readErrors
3007
- * @property {Array.<sesame.v1.audio.IAudioChannelPluginStatus>|null} [plugins] AudioChannelStatus plugins
4076
+ * @interface IAudioMixerOutputStatus
4077
+ * @property {string|null} [id] AudioMixerOutputStatus id
4078
+ * @property {sesame.v1.audio.AudioMixerChannelType|null} [outputType] AudioMixerOutputStatus outputType
4079
+ * @property {Array.<number>|null} [vu] AudioMixerOutputStatus vu
4080
+ * @property {Array.<string>|null} [excludedChannelIds] AudioMixerOutputStatus excludedChannelIds
4081
+ * @property {boolean|null} [includeMasterPlugins] AudioMixerOutputStatus includeMasterPlugins
3008
4082
  */
3009
4083
 
3010
4084
  /**
3011
- * Constructs a new AudioChannelStatus.
4085
+ * Constructs a new AudioMixerOutputStatus.
3012
4086
  * @memberof sesame.v1.audio
3013
- * @classdesc Represents an AudioChannelStatus.
3014
- * @implements IAudioChannelStatus
4087
+ * @classdesc Represents an AudioMixerOutputStatus.
4088
+ * @implements IAudioMixerOutputStatus
3015
4089
  * @constructor
3016
- * @param {sesame.v1.audio.IAudioChannelStatus=} [properties] Properties to set
4090
+ * @param {sesame.v1.audio.IAudioMixerOutputStatus=} [properties] Properties to set
3017
4091
  */
3018
- function AudioChannelStatus(properties) {
4092
+ function AudioMixerOutputStatus(properties) {
3019
4093
  this.vu = [];
3020
- this.plugins = [];
4094
+ this.excludedChannelIds = [];
3021
4095
  if (properties)
3022
4096
  for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
3023
4097
  if (properties[keys[i]] != null)
@@ -3025,145 +4099,115 @@ export const sesame = $root.sesame = (() => {
3025
4099
  }
3026
4100
 
3027
4101
  /**
3028
- * AudioChannelStatus id.
4102
+ * AudioMixerOutputStatus id.
3029
4103
  * @member {string} id
3030
- * @memberof sesame.v1.audio.AudioChannelStatus
4104
+ * @memberof sesame.v1.audio.AudioMixerOutputStatus
3031
4105
  * @instance
3032
4106
  */
3033
- AudioChannelStatus.prototype.id = "";
4107
+ AudioMixerOutputStatus.prototype.id = "";
3034
4108
 
3035
4109
  /**
3036
- * AudioChannelStatus outputType.
4110
+ * AudioMixerOutputStatus outputType.
3037
4111
  * @member {sesame.v1.audio.AudioMixerChannelType} outputType
3038
- * @memberof sesame.v1.audio.AudioChannelStatus
3039
- * @instance
3040
- */
3041
- AudioChannelStatus.prototype.outputType = 0;
3042
-
3043
- /**
3044
- * AudioChannelStatus level.
3045
- * @member {number} level
3046
- * @memberof sesame.v1.audio.AudioChannelStatus
3047
- * @instance
3048
- */
3049
- AudioChannelStatus.prototype.level = 0;
3050
-
3051
- /**
3052
- * AudioChannelStatus pan.
3053
- * @member {number} pan
3054
- * @memberof sesame.v1.audio.AudioChannelStatus
4112
+ * @memberof sesame.v1.audio.AudioMixerOutputStatus
3055
4113
  * @instance
3056
4114
  */
3057
- AudioChannelStatus.prototype.pan = 0;
4115
+ AudioMixerOutputStatus.prototype.outputType = 0;
3058
4116
 
3059
4117
  /**
3060
- * AudioChannelStatus vu.
4118
+ * AudioMixerOutputStatus vu.
3061
4119
  * @member {Array.<number>} vu
3062
- * @memberof sesame.v1.audio.AudioChannelStatus
3063
- * @instance
3064
- */
3065
- AudioChannelStatus.prototype.vu = $util.emptyArray;
3066
-
3067
- /**
3068
- * AudioChannelStatus hasData.
3069
- * @member {boolean} hasData
3070
- * @memberof sesame.v1.audio.AudioChannelStatus
4120
+ * @memberof sesame.v1.audio.AudioMixerOutputStatus
3071
4121
  * @instance
3072
4122
  */
3073
- AudioChannelStatus.prototype.hasData = false;
4123
+ AudioMixerOutputStatus.prototype.vu = $util.emptyArray;
3074
4124
 
3075
4125
  /**
3076
- * AudioChannelStatus readErrors.
3077
- * @member {number} readErrors
3078
- * @memberof sesame.v1.audio.AudioChannelStatus
4126
+ * AudioMixerOutputStatus excludedChannelIds.
4127
+ * @member {Array.<string>} excludedChannelIds
4128
+ * @memberof sesame.v1.audio.AudioMixerOutputStatus
3079
4129
  * @instance
3080
4130
  */
3081
- AudioChannelStatus.prototype.readErrors = 0;
4131
+ AudioMixerOutputStatus.prototype.excludedChannelIds = $util.emptyArray;
3082
4132
 
3083
4133
  /**
3084
- * AudioChannelStatus plugins.
3085
- * @member {Array.<sesame.v1.audio.IAudioChannelPluginStatus>} plugins
3086
- * @memberof sesame.v1.audio.AudioChannelStatus
4134
+ * AudioMixerOutputStatus includeMasterPlugins.
4135
+ * @member {boolean} includeMasterPlugins
4136
+ * @memberof sesame.v1.audio.AudioMixerOutputStatus
3087
4137
  * @instance
3088
4138
  */
3089
- AudioChannelStatus.prototype.plugins = $util.emptyArray;
4139
+ AudioMixerOutputStatus.prototype.includeMasterPlugins = false;
3090
4140
 
3091
4141
  /**
3092
- * Creates a new AudioChannelStatus instance using the specified properties.
4142
+ * Creates a new AudioMixerOutputStatus instance using the specified properties.
3093
4143
  * @function create
3094
- * @memberof sesame.v1.audio.AudioChannelStatus
4144
+ * @memberof sesame.v1.audio.AudioMixerOutputStatus
3095
4145
  * @static
3096
- * @param {sesame.v1.audio.IAudioChannelStatus=} [properties] Properties to set
3097
- * @returns {sesame.v1.audio.AudioChannelStatus} AudioChannelStatus instance
4146
+ * @param {sesame.v1.audio.IAudioMixerOutputStatus=} [properties] Properties to set
4147
+ * @returns {sesame.v1.audio.AudioMixerOutputStatus} AudioMixerOutputStatus instance
3098
4148
  */
3099
- AudioChannelStatus.create = function create(properties) {
3100
- return new AudioChannelStatus(properties);
4149
+ AudioMixerOutputStatus.create = function create(properties) {
4150
+ return new AudioMixerOutputStatus(properties);
3101
4151
  };
3102
4152
 
3103
4153
  /**
3104
- * Encodes the specified AudioChannelStatus message. Does not implicitly {@link sesame.v1.audio.AudioChannelStatus.verify|verify} messages.
4154
+ * Encodes the specified AudioMixerOutputStatus message. Does not implicitly {@link sesame.v1.audio.AudioMixerOutputStatus.verify|verify} messages.
3105
4155
  * @function encode
3106
- * @memberof sesame.v1.audio.AudioChannelStatus
4156
+ * @memberof sesame.v1.audio.AudioMixerOutputStatus
3107
4157
  * @static
3108
- * @param {sesame.v1.audio.IAudioChannelStatus} message AudioChannelStatus message or plain object to encode
4158
+ * @param {sesame.v1.audio.IAudioMixerOutputStatus} message AudioMixerOutputStatus message or plain object to encode
3109
4159
  * @param {$protobuf.Writer} [writer] Writer to encode to
3110
4160
  * @returns {$protobuf.Writer} Writer
3111
4161
  */
3112
- AudioChannelStatus.encode = function encode(message, writer) {
4162
+ AudioMixerOutputStatus.encode = function encode(message, writer) {
3113
4163
  if (!writer)
3114
4164
  writer = $Writer.create();
3115
4165
  if (message.id != null && Object.hasOwnProperty.call(message, "id"))
3116
4166
  writer.uint32(/* id 1, wireType 2 =*/10).string(message.id);
3117
4167
  if (message.outputType != null && Object.hasOwnProperty.call(message, "outputType"))
3118
4168
  writer.uint32(/* id 2, wireType 0 =*/16).int32(message.outputType);
3119
- if (message.level != null && Object.hasOwnProperty.call(message, "level"))
3120
- writer.uint32(/* id 3, wireType 5 =*/29).float(message.level);
3121
- if (message.pan != null && Object.hasOwnProperty.call(message, "pan"))
3122
- writer.uint32(/* id 4, wireType 5 =*/37).float(message.pan);
3123
4169
  if (message.vu != null && message.vu.length) {
3124
- writer.uint32(/* id 5, wireType 2 =*/42).fork();
4170
+ writer.uint32(/* id 3, wireType 2 =*/26).fork();
3125
4171
  for (let i = 0; i < message.vu.length; ++i)
3126
4172
  writer.float(message.vu[i]);
3127
4173
  writer.ldelim();
3128
4174
  }
3129
- if (message.hasData != null && Object.hasOwnProperty.call(message, "hasData"))
3130
- writer.uint32(/* id 6, wireType 0 =*/48).bool(message.hasData);
3131
- if (message.readErrors != null && Object.hasOwnProperty.call(message, "readErrors"))
3132
- writer.uint32(/* id 7, wireType 0 =*/56).uint32(message.readErrors);
3133
- if (message.plugins != null && message.plugins.length)
3134
- for (let i = 0; i < message.plugins.length; ++i)
3135
- $root.sesame.v1.audio.AudioChannelPluginStatus.encode(message.plugins[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();
4175
+ if (message.excludedChannelIds != null && message.excludedChannelIds.length)
4176
+ for (let i = 0; i < message.excludedChannelIds.length; ++i)
4177
+ writer.uint32(/* id 4, wireType 2 =*/34).string(message.excludedChannelIds[i]);
4178
+ if (message.includeMasterPlugins != null && Object.hasOwnProperty.call(message, "includeMasterPlugins"))
4179
+ writer.uint32(/* id 5, wireType 0 =*/40).bool(message.includeMasterPlugins);
3136
4180
  return writer;
3137
4181
  };
3138
4182
 
3139
4183
  /**
3140
- * Encodes the specified AudioChannelStatus message, length delimited. Does not implicitly {@link sesame.v1.audio.AudioChannelStatus.verify|verify} messages.
4184
+ * Encodes the specified AudioMixerOutputStatus message, length delimited. Does not implicitly {@link sesame.v1.audio.AudioMixerOutputStatus.verify|verify} messages.
3141
4185
  * @function encodeDelimited
3142
- * @memberof sesame.v1.audio.AudioChannelStatus
4186
+ * @memberof sesame.v1.audio.AudioMixerOutputStatus
3143
4187
  * @static
3144
- * @param {sesame.v1.audio.IAudioChannelStatus} message AudioChannelStatus message or plain object to encode
4188
+ * @param {sesame.v1.audio.IAudioMixerOutputStatus} message AudioMixerOutputStatus message or plain object to encode
3145
4189
  * @param {$protobuf.Writer} [writer] Writer to encode to
3146
4190
  * @returns {$protobuf.Writer} Writer
3147
4191
  */
3148
- AudioChannelStatus.encodeDelimited = function encodeDelimited(message, writer) {
4192
+ AudioMixerOutputStatus.encodeDelimited = function encodeDelimited(message, writer) {
3149
4193
  return this.encode(message, writer).ldelim();
3150
4194
  };
3151
4195
 
3152
4196
  /**
3153
- * Decodes an AudioChannelStatus message from the specified reader or buffer.
4197
+ * Decodes an AudioMixerOutputStatus message from the specified reader or buffer.
3154
4198
  * @function decode
3155
- * @memberof sesame.v1.audio.AudioChannelStatus
4199
+ * @memberof sesame.v1.audio.AudioMixerOutputStatus
3156
4200
  * @static
3157
4201
  * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
3158
4202
  * @param {number} [length] Message length if known beforehand
3159
- * @returns {sesame.v1.audio.AudioChannelStatus} AudioChannelStatus
4203
+ * @returns {sesame.v1.audio.AudioMixerOutputStatus} AudioMixerOutputStatus
3160
4204
  * @throws {Error} If the payload is not a reader or valid buffer
3161
4205
  * @throws {$protobuf.util.ProtocolError} If required fields are missing
3162
4206
  */
3163
- AudioChannelStatus.decode = function decode(reader, length, error) {
4207
+ AudioMixerOutputStatus.decode = function decode(reader, length, error) {
3164
4208
  if (!(reader instanceof $Reader))
3165
4209
  reader = $Reader.create(reader);
3166
- let end = length === undefined ? reader.len : reader.pos + length, message = new $root.sesame.v1.audio.AudioChannelStatus();
4210
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.sesame.v1.audio.AudioMixerOutputStatus();
3167
4211
  while (reader.pos < end) {
3168
4212
  let tag = reader.uint32();
3169
4213
  if (tag === error)
@@ -3178,14 +4222,6 @@ export const sesame = $root.sesame = (() => {
3178
4222
  break;
3179
4223
  }
3180
4224
  case 3: {
3181
- message.level = reader.float();
3182
- break;
3183
- }
3184
- case 4: {
3185
- message.pan = reader.float();
3186
- break;
3187
- }
3188
- case 5: {
3189
4225
  if (!(message.vu && message.vu.length))
3190
4226
  message.vu = [];
3191
4227
  if ((tag & 7) === 2) {
@@ -3193,21 +4229,17 @@ export const sesame = $root.sesame = (() => {
3193
4229
  while (reader.pos < end2)
3194
4230
  message.vu.push(reader.float());
3195
4231
  } else
3196
- message.vu.push(reader.float());
3197
- break;
3198
- }
3199
- case 6: {
3200
- message.hasData = reader.bool();
4232
+ message.vu.push(reader.float());
3201
4233
  break;
3202
4234
  }
3203
- case 7: {
3204
- message.readErrors = reader.uint32();
4235
+ case 4: {
4236
+ if (!(message.excludedChannelIds && message.excludedChannelIds.length))
4237
+ message.excludedChannelIds = [];
4238
+ message.excludedChannelIds.push(reader.string());
3205
4239
  break;
3206
4240
  }
3207
- case 8: {
3208
- if (!(message.plugins && message.plugins.length))
3209
- message.plugins = [];
3210
- message.plugins.push($root.sesame.v1.audio.AudioChannelPluginStatus.decode(reader, reader.uint32()));
4241
+ case 5: {
4242
+ message.includeMasterPlugins = reader.bool();
3211
4243
  break;
3212
4244
  }
3213
4245
  default:
@@ -3219,30 +4251,30 @@ export const sesame = $root.sesame = (() => {
3219
4251
  };
3220
4252
 
3221
4253
  /**
3222
- * Decodes an AudioChannelStatus message from the specified reader or buffer, length delimited.
4254
+ * Decodes an AudioMixerOutputStatus message from the specified reader or buffer, length delimited.
3223
4255
  * @function decodeDelimited
3224
- * @memberof sesame.v1.audio.AudioChannelStatus
4256
+ * @memberof sesame.v1.audio.AudioMixerOutputStatus
3225
4257
  * @static
3226
4258
  * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
3227
- * @returns {sesame.v1.audio.AudioChannelStatus} AudioChannelStatus
4259
+ * @returns {sesame.v1.audio.AudioMixerOutputStatus} AudioMixerOutputStatus
3228
4260
  * @throws {Error} If the payload is not a reader or valid buffer
3229
4261
  * @throws {$protobuf.util.ProtocolError} If required fields are missing
3230
4262
  */
3231
- AudioChannelStatus.decodeDelimited = function decodeDelimited(reader) {
4263
+ AudioMixerOutputStatus.decodeDelimited = function decodeDelimited(reader) {
3232
4264
  if (!(reader instanceof $Reader))
3233
4265
  reader = new $Reader(reader);
3234
4266
  return this.decode(reader, reader.uint32());
3235
4267
  };
3236
4268
 
3237
4269
  /**
3238
- * Verifies an AudioChannelStatus message.
4270
+ * Verifies an AudioMixerOutputStatus message.
3239
4271
  * @function verify
3240
- * @memberof sesame.v1.audio.AudioChannelStatus
4272
+ * @memberof sesame.v1.audio.AudioMixerOutputStatus
3241
4273
  * @static
3242
4274
  * @param {Object.<string,*>} message Plain object to verify
3243
4275
  * @returns {string|null} `null` if valid, otherwise the reason why it is not
3244
4276
  */
3245
- AudioChannelStatus.verify = function verify(message) {
4277
+ AudioMixerOutputStatus.verify = function verify(message) {
3246
4278
  if (typeof message !== "object" || message === null)
3247
4279
  return "object expected";
3248
4280
  if (message.id != null && message.hasOwnProperty("id"))
@@ -3257,12 +4289,6 @@ export const sesame = $root.sesame = (() => {
3257
4289
  case 2:
3258
4290
  break;
3259
4291
  }
3260
- if (message.level != null && message.hasOwnProperty("level"))
3261
- if (typeof message.level !== "number")
3262
- return "level: number expected";
3263
- if (message.pan != null && message.hasOwnProperty("pan"))
3264
- if (typeof message.pan !== "number")
3265
- return "pan: number expected";
3266
4292
  if (message.vu != null && message.hasOwnProperty("vu")) {
3267
4293
  if (!Array.isArray(message.vu))
3268
4294
  return "vu: array expected";
@@ -3270,36 +4296,31 @@ export const sesame = $root.sesame = (() => {
3270
4296
  if (typeof message.vu[i] !== "number")
3271
4297
  return "vu: number[] expected";
3272
4298
  }
3273
- if (message.hasData != null && message.hasOwnProperty("hasData"))
3274
- if (typeof message.hasData !== "boolean")
3275
- return "hasData: boolean expected";
3276
- if (message.readErrors != null && message.hasOwnProperty("readErrors"))
3277
- if (!$util.isInteger(message.readErrors))
3278
- return "readErrors: integer expected";
3279
- if (message.plugins != null && message.hasOwnProperty("plugins")) {
3280
- if (!Array.isArray(message.plugins))
3281
- return "plugins: array expected";
3282
- for (let i = 0; i < message.plugins.length; ++i) {
3283
- let error = $root.sesame.v1.audio.AudioChannelPluginStatus.verify(message.plugins[i]);
3284
- if (error)
3285
- return "plugins." + error;
3286
- }
4299
+ if (message.excludedChannelIds != null && message.hasOwnProperty("excludedChannelIds")) {
4300
+ if (!Array.isArray(message.excludedChannelIds))
4301
+ return "excludedChannelIds: array expected";
4302
+ for (let i = 0; i < message.excludedChannelIds.length; ++i)
4303
+ if (!$util.isString(message.excludedChannelIds[i]))
4304
+ return "excludedChannelIds: string[] expected";
3287
4305
  }
4306
+ if (message.includeMasterPlugins != null && message.hasOwnProperty("includeMasterPlugins"))
4307
+ if (typeof message.includeMasterPlugins !== "boolean")
4308
+ return "includeMasterPlugins: boolean expected";
3288
4309
  return null;
3289
4310
  };
3290
4311
 
3291
4312
  /**
3292
- * Creates an AudioChannelStatus message from a plain object. Also converts values to their respective internal types.
4313
+ * Creates an AudioMixerOutputStatus message from a plain object. Also converts values to their respective internal types.
3293
4314
  * @function fromObject
3294
- * @memberof sesame.v1.audio.AudioChannelStatus
4315
+ * @memberof sesame.v1.audio.AudioMixerOutputStatus
3295
4316
  * @static
3296
4317
  * @param {Object.<string,*>} object Plain object
3297
- * @returns {sesame.v1.audio.AudioChannelStatus} AudioChannelStatus
4318
+ * @returns {sesame.v1.audio.AudioMixerOutputStatus} AudioMixerOutputStatus
3298
4319
  */
3299
- AudioChannelStatus.fromObject = function fromObject(object) {
3300
- if (object instanceof $root.sesame.v1.audio.AudioChannelStatus)
4320
+ AudioMixerOutputStatus.fromObject = function fromObject(object) {
4321
+ if (object instanceof $root.sesame.v1.audio.AudioMixerOutputStatus)
3301
4322
  return object;
3302
- let message = new $root.sesame.v1.audio.AudioChannelStatus();
4323
+ let message = new $root.sesame.v1.audio.AudioMixerOutputStatus();
3303
4324
  if (object.id != null)
3304
4325
  message.id = String(object.id);
3305
4326
  switch (object.outputType) {
@@ -3322,111 +4343,93 @@ export const sesame = $root.sesame = (() => {
3322
4343
  message.outputType = 2;
3323
4344
  break;
3324
4345
  }
3325
- if (object.level != null)
3326
- message.level = Number(object.level);
3327
- if (object.pan != null)
3328
- message.pan = Number(object.pan);
3329
4346
  if (object.vu) {
3330
4347
  if (!Array.isArray(object.vu))
3331
- throw TypeError(".sesame.v1.audio.AudioChannelStatus.vu: array expected");
4348
+ throw TypeError(".sesame.v1.audio.AudioMixerOutputStatus.vu: array expected");
3332
4349
  message.vu = [];
3333
4350
  for (let i = 0; i < object.vu.length; ++i)
3334
4351
  message.vu[i] = Number(object.vu[i]);
3335
4352
  }
3336
- if (object.hasData != null)
3337
- message.hasData = Boolean(object.hasData);
3338
- if (object.readErrors != null)
3339
- message.readErrors = object.readErrors >>> 0;
3340
- if (object.plugins) {
3341
- if (!Array.isArray(object.plugins))
3342
- throw TypeError(".sesame.v1.audio.AudioChannelStatus.plugins: array expected");
3343
- message.plugins = [];
3344
- for (let i = 0; i < object.plugins.length; ++i) {
3345
- if (typeof object.plugins[i] !== "object")
3346
- throw TypeError(".sesame.v1.audio.AudioChannelStatus.plugins: object expected");
3347
- message.plugins[i] = $root.sesame.v1.audio.AudioChannelPluginStatus.fromObject(object.plugins[i]);
3348
- }
4353
+ if (object.excludedChannelIds) {
4354
+ if (!Array.isArray(object.excludedChannelIds))
4355
+ throw TypeError(".sesame.v1.audio.AudioMixerOutputStatus.excludedChannelIds: array expected");
4356
+ message.excludedChannelIds = [];
4357
+ for (let i = 0; i < object.excludedChannelIds.length; ++i)
4358
+ message.excludedChannelIds[i] = String(object.excludedChannelIds[i]);
3349
4359
  }
4360
+ if (object.includeMasterPlugins != null)
4361
+ message.includeMasterPlugins = Boolean(object.includeMasterPlugins);
3350
4362
  return message;
3351
4363
  };
3352
4364
 
3353
4365
  /**
3354
- * Creates a plain object from an AudioChannelStatus message. Also converts values to other types if specified.
4366
+ * Creates a plain object from an AudioMixerOutputStatus message. Also converts values to other types if specified.
3355
4367
  * @function toObject
3356
- * @memberof sesame.v1.audio.AudioChannelStatus
4368
+ * @memberof sesame.v1.audio.AudioMixerOutputStatus
3357
4369
  * @static
3358
- * @param {sesame.v1.audio.AudioChannelStatus} message AudioChannelStatus
4370
+ * @param {sesame.v1.audio.AudioMixerOutputStatus} message AudioMixerOutputStatus
3359
4371
  * @param {$protobuf.IConversionOptions} [options] Conversion options
3360
4372
  * @returns {Object.<string,*>} Plain object
3361
4373
  */
3362
- AudioChannelStatus.toObject = function toObject(message, options) {
4374
+ AudioMixerOutputStatus.toObject = function toObject(message, options) {
3363
4375
  if (!options)
3364
4376
  options = {};
3365
4377
  let object = {};
3366
4378
  if (options.arrays || options.defaults) {
3367
4379
  object.vu = [];
3368
- object.plugins = [];
4380
+ object.excludedChannelIds = [];
3369
4381
  }
3370
4382
  if (options.defaults) {
3371
4383
  object.id = "";
3372
4384
  object.outputType = options.enums === String ? "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED" : 0;
3373
- object.level = 0;
3374
- object.pan = 0;
3375
- object.hasData = false;
3376
- object.readErrors = 0;
4385
+ object.includeMasterPlugins = false;
3377
4386
  }
3378
4387
  if (message.id != null && message.hasOwnProperty("id"))
3379
4388
  object.id = message.id;
3380
4389
  if (message.outputType != null && message.hasOwnProperty("outputType"))
3381
4390
  object.outputType = options.enums === String ? $root.sesame.v1.audio.AudioMixerChannelType[message.outputType] === undefined ? message.outputType : $root.sesame.v1.audio.AudioMixerChannelType[message.outputType] : message.outputType;
3382
- if (message.level != null && message.hasOwnProperty("level"))
3383
- object.level = options.json && !isFinite(message.level) ? String(message.level) : message.level;
3384
- if (message.pan != null && message.hasOwnProperty("pan"))
3385
- object.pan = options.json && !isFinite(message.pan) ? String(message.pan) : message.pan;
3386
4391
  if (message.vu && message.vu.length) {
3387
4392
  object.vu = [];
3388
4393
  for (let j = 0; j < message.vu.length; ++j)
3389
4394
  object.vu[j] = options.json && !isFinite(message.vu[j]) ? String(message.vu[j]) : message.vu[j];
3390
4395
  }
3391
- if (message.hasData != null && message.hasOwnProperty("hasData"))
3392
- object.hasData = message.hasData;
3393
- if (message.readErrors != null && message.hasOwnProperty("readErrors"))
3394
- object.readErrors = message.readErrors;
3395
- if (message.plugins && message.plugins.length) {
3396
- object.plugins = [];
3397
- for (let j = 0; j < message.plugins.length; ++j)
3398
- object.plugins[j] = $root.sesame.v1.audio.AudioChannelPluginStatus.toObject(message.plugins[j], options);
4396
+ if (message.excludedChannelIds && message.excludedChannelIds.length) {
4397
+ object.excludedChannelIds = [];
4398
+ for (let j = 0; j < message.excludedChannelIds.length; ++j)
4399
+ object.excludedChannelIds[j] = message.excludedChannelIds[j];
3399
4400
  }
4401
+ if (message.includeMasterPlugins != null && message.hasOwnProperty("includeMasterPlugins"))
4402
+ object.includeMasterPlugins = message.includeMasterPlugins;
3400
4403
  return object;
3401
4404
  };
3402
4405
 
3403
4406
  /**
3404
- * Converts this AudioChannelStatus to JSON.
4407
+ * Converts this AudioMixerOutputStatus to JSON.
3405
4408
  * @function toJSON
3406
- * @memberof sesame.v1.audio.AudioChannelStatus
4409
+ * @memberof sesame.v1.audio.AudioMixerOutputStatus
3407
4410
  * @instance
3408
4411
  * @returns {Object.<string,*>} JSON object
3409
4412
  */
3410
- AudioChannelStatus.prototype.toJSON = function toJSON() {
4413
+ AudioMixerOutputStatus.prototype.toJSON = function toJSON() {
3411
4414
  return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
3412
4415
  };
3413
4416
 
3414
4417
  /**
3415
- * Gets the default type url for AudioChannelStatus
4418
+ * Gets the default type url for AudioMixerOutputStatus
3416
4419
  * @function getTypeUrl
3417
- * @memberof sesame.v1.audio.AudioChannelStatus
4420
+ * @memberof sesame.v1.audio.AudioMixerOutputStatus
3418
4421
  * @static
3419
4422
  * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
3420
4423
  * @returns {string} The default type url
3421
4424
  */
3422
- AudioChannelStatus.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
4425
+ AudioMixerOutputStatus.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
3423
4426
  if (typeUrlPrefix === undefined) {
3424
4427
  typeUrlPrefix = "type.googleapis.com";
3425
4428
  }
3426
- return typeUrlPrefix + "/sesame.v1.audio.AudioChannelStatus";
4429
+ return typeUrlPrefix + "/sesame.v1.audio.AudioMixerOutputStatus";
3427
4430
  };
3428
4431
 
3429
- return AudioChannelStatus;
4432
+ return AudioMixerOutputStatus;
3430
4433
  })();
3431
4434
 
3432
4435
  audio.AudioMixerStatus = (function() {
@@ -3439,6 +4442,11 @@ export const sesame = $root.sesame = (() => {
3439
4442
  * @property {sesame.v1.audio.AudioMixerChannelType|null} [outputType] AudioMixerStatus outputType
3440
4443
  * @property {Array.<number>|null} [vu] AudioMixerStatus vu
3441
4444
  * @property {Array.<sesame.v1.audio.IAudioChannelStatus>|null} [channels] AudioMixerStatus channels
4445
+ * @property {number|null} [masterLevel] AudioMixerStatus masterLevel
4446
+ * @property {number|null} [masterAutomationLevel] AudioMixerStatus masterAutomationLevel
4447
+ * @property {number|null} [masterEffectiveLevel] AudioMixerStatus masterEffectiveLevel
4448
+ * @property {Array.<sesame.v1.audio.IAudioChannelPluginStatus>|null} [masterPlugins] AudioMixerStatus masterPlugins
4449
+ * @property {Array.<sesame.v1.audio.IAudioMixerOutputStatus>|null} [outputs] AudioMixerStatus outputs
3442
4450
  */
3443
4451
 
3444
4452
  /**
@@ -3452,6 +4460,8 @@ export const sesame = $root.sesame = (() => {
3452
4460
  function AudioMixerStatus(properties) {
3453
4461
  this.vu = [];
3454
4462
  this.channels = [];
4463
+ this.masterPlugins = [];
4464
+ this.outputs = [];
3455
4465
  if (properties)
3456
4466
  for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
3457
4467
  if (properties[keys[i]] != null)
@@ -3490,6 +4500,46 @@ export const sesame = $root.sesame = (() => {
3490
4500
  */
3491
4501
  AudioMixerStatus.prototype.channels = $util.emptyArray;
3492
4502
 
4503
+ /**
4504
+ * AudioMixerStatus masterLevel.
4505
+ * @member {number} masterLevel
4506
+ * @memberof sesame.v1.audio.AudioMixerStatus
4507
+ * @instance
4508
+ */
4509
+ AudioMixerStatus.prototype.masterLevel = 0;
4510
+
4511
+ /**
4512
+ * AudioMixerStatus masterAutomationLevel.
4513
+ * @member {number} masterAutomationLevel
4514
+ * @memberof sesame.v1.audio.AudioMixerStatus
4515
+ * @instance
4516
+ */
4517
+ AudioMixerStatus.prototype.masterAutomationLevel = 0;
4518
+
4519
+ /**
4520
+ * AudioMixerStatus masterEffectiveLevel.
4521
+ * @member {number} masterEffectiveLevel
4522
+ * @memberof sesame.v1.audio.AudioMixerStatus
4523
+ * @instance
4524
+ */
4525
+ AudioMixerStatus.prototype.masterEffectiveLevel = 0;
4526
+
4527
+ /**
4528
+ * AudioMixerStatus masterPlugins.
4529
+ * @member {Array.<sesame.v1.audio.IAudioChannelPluginStatus>} masterPlugins
4530
+ * @memberof sesame.v1.audio.AudioMixerStatus
4531
+ * @instance
4532
+ */
4533
+ AudioMixerStatus.prototype.masterPlugins = $util.emptyArray;
4534
+
4535
+ /**
4536
+ * AudioMixerStatus outputs.
4537
+ * @member {Array.<sesame.v1.audio.IAudioMixerOutputStatus>} outputs
4538
+ * @memberof sesame.v1.audio.AudioMixerStatus
4539
+ * @instance
4540
+ */
4541
+ AudioMixerStatus.prototype.outputs = $util.emptyArray;
4542
+
3493
4543
  /**
3494
4544
  * Creates a new AudioMixerStatus instance using the specified properties.
3495
4545
  * @function create
@@ -3527,6 +4577,18 @@ export const sesame = $root.sesame = (() => {
3527
4577
  if (message.channels != null && message.channels.length)
3528
4578
  for (let i = 0; i < message.channels.length; ++i)
3529
4579
  $root.sesame.v1.audio.AudioChannelStatus.encode(message.channels[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
4580
+ if (message.masterLevel != null && Object.hasOwnProperty.call(message, "masterLevel"))
4581
+ writer.uint32(/* id 5, wireType 5 =*/45).float(message.masterLevel);
4582
+ if (message.masterAutomationLevel != null && Object.hasOwnProperty.call(message, "masterAutomationLevel"))
4583
+ writer.uint32(/* id 6, wireType 5 =*/53).float(message.masterAutomationLevel);
4584
+ if (message.masterEffectiveLevel != null && Object.hasOwnProperty.call(message, "masterEffectiveLevel"))
4585
+ writer.uint32(/* id 7, wireType 5 =*/61).float(message.masterEffectiveLevel);
4586
+ if (message.masterPlugins != null && message.masterPlugins.length)
4587
+ for (let i = 0; i < message.masterPlugins.length; ++i)
4588
+ $root.sesame.v1.audio.AudioChannelPluginStatus.encode(message.masterPlugins[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();
4589
+ if (message.outputs != null && message.outputs.length)
4590
+ for (let i = 0; i < message.outputs.length; ++i)
4591
+ $root.sesame.v1.audio.AudioMixerOutputStatus.encode(message.outputs[i], writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim();
3530
4592
  return writer;
3531
4593
  };
3532
4594
 
@@ -3588,6 +4650,30 @@ export const sesame = $root.sesame = (() => {
3588
4650
  message.channels.push($root.sesame.v1.audio.AudioChannelStatus.decode(reader, reader.uint32()));
3589
4651
  break;
3590
4652
  }
4653
+ case 5: {
4654
+ message.masterLevel = reader.float();
4655
+ break;
4656
+ }
4657
+ case 6: {
4658
+ message.masterAutomationLevel = reader.float();
4659
+ break;
4660
+ }
4661
+ case 7: {
4662
+ message.masterEffectiveLevel = reader.float();
4663
+ break;
4664
+ }
4665
+ case 8: {
4666
+ if (!(message.masterPlugins && message.masterPlugins.length))
4667
+ message.masterPlugins = [];
4668
+ message.masterPlugins.push($root.sesame.v1.audio.AudioChannelPluginStatus.decode(reader, reader.uint32()));
4669
+ break;
4670
+ }
4671
+ case 9: {
4672
+ if (!(message.outputs && message.outputs.length))
4673
+ message.outputs = [];
4674
+ message.outputs.push($root.sesame.v1.audio.AudioMixerOutputStatus.decode(reader, reader.uint32()));
4675
+ break;
4676
+ }
3591
4677
  default:
3592
4678
  reader.skipType(tag & 7);
3593
4679
  break;
@@ -3651,6 +4737,33 @@ export const sesame = $root.sesame = (() => {
3651
4737
  return "channels." + error;
3652
4738
  }
3653
4739
  }
4740
+ if (message.masterLevel != null && message.hasOwnProperty("masterLevel"))
4741
+ if (typeof message.masterLevel !== "number")
4742
+ return "masterLevel: number expected";
4743
+ if (message.masterAutomationLevel != null && message.hasOwnProperty("masterAutomationLevel"))
4744
+ if (typeof message.masterAutomationLevel !== "number")
4745
+ return "masterAutomationLevel: number expected";
4746
+ if (message.masterEffectiveLevel != null && message.hasOwnProperty("masterEffectiveLevel"))
4747
+ if (typeof message.masterEffectiveLevel !== "number")
4748
+ return "masterEffectiveLevel: number expected";
4749
+ if (message.masterPlugins != null && message.hasOwnProperty("masterPlugins")) {
4750
+ if (!Array.isArray(message.masterPlugins))
4751
+ return "masterPlugins: array expected";
4752
+ for (let i = 0; i < message.masterPlugins.length; ++i) {
4753
+ let error = $root.sesame.v1.audio.AudioChannelPluginStatus.verify(message.masterPlugins[i]);
4754
+ if (error)
4755
+ return "masterPlugins." + error;
4756
+ }
4757
+ }
4758
+ if (message.outputs != null && message.hasOwnProperty("outputs")) {
4759
+ if (!Array.isArray(message.outputs))
4760
+ return "outputs: array expected";
4761
+ for (let i = 0; i < message.outputs.length; ++i) {
4762
+ let error = $root.sesame.v1.audio.AudioMixerOutputStatus.verify(message.outputs[i]);
4763
+ if (error)
4764
+ return "outputs." + error;
4765
+ }
4766
+ }
3654
4767
  return null;
3655
4768
  };
3656
4769
 
@@ -3705,6 +4818,32 @@ export const sesame = $root.sesame = (() => {
3705
4818
  message.channels[i] = $root.sesame.v1.audio.AudioChannelStatus.fromObject(object.channels[i]);
3706
4819
  }
3707
4820
  }
4821
+ if (object.masterLevel != null)
4822
+ message.masterLevel = Number(object.masterLevel);
4823
+ if (object.masterAutomationLevel != null)
4824
+ message.masterAutomationLevel = Number(object.masterAutomationLevel);
4825
+ if (object.masterEffectiveLevel != null)
4826
+ message.masterEffectiveLevel = Number(object.masterEffectiveLevel);
4827
+ if (object.masterPlugins) {
4828
+ if (!Array.isArray(object.masterPlugins))
4829
+ throw TypeError(".sesame.v1.audio.AudioMixerStatus.masterPlugins: array expected");
4830
+ message.masterPlugins = [];
4831
+ for (let i = 0; i < object.masterPlugins.length; ++i) {
4832
+ if (typeof object.masterPlugins[i] !== "object")
4833
+ throw TypeError(".sesame.v1.audio.AudioMixerStatus.masterPlugins: object expected");
4834
+ message.masterPlugins[i] = $root.sesame.v1.audio.AudioChannelPluginStatus.fromObject(object.masterPlugins[i]);
4835
+ }
4836
+ }
4837
+ if (object.outputs) {
4838
+ if (!Array.isArray(object.outputs))
4839
+ throw TypeError(".sesame.v1.audio.AudioMixerStatus.outputs: array expected");
4840
+ message.outputs = [];
4841
+ for (let i = 0; i < object.outputs.length; ++i) {
4842
+ if (typeof object.outputs[i] !== "object")
4843
+ throw TypeError(".sesame.v1.audio.AudioMixerStatus.outputs: object expected");
4844
+ message.outputs[i] = $root.sesame.v1.audio.AudioMixerOutputStatus.fromObject(object.outputs[i]);
4845
+ }
4846
+ }
3708
4847
  return message;
3709
4848
  };
3710
4849
 
@@ -3724,10 +4863,15 @@ export const sesame = $root.sesame = (() => {
3724
4863
  if (options.arrays || options.defaults) {
3725
4864
  object.vu = [];
3726
4865
  object.channels = [];
4866
+ object.masterPlugins = [];
4867
+ object.outputs = [];
3727
4868
  }
3728
4869
  if (options.defaults) {
3729
4870
  object.id = "";
3730
4871
  object.outputType = options.enums === String ? "AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED" : 0;
4872
+ object.masterLevel = 0;
4873
+ object.masterAutomationLevel = 0;
4874
+ object.masterEffectiveLevel = 0;
3731
4875
  }
3732
4876
  if (message.id != null && message.hasOwnProperty("id"))
3733
4877
  object.id = message.id;
@@ -3743,6 +4887,22 @@ export const sesame = $root.sesame = (() => {
3743
4887
  for (let j = 0; j < message.channels.length; ++j)
3744
4888
  object.channels[j] = $root.sesame.v1.audio.AudioChannelStatus.toObject(message.channels[j], options);
3745
4889
  }
4890
+ if (message.masterLevel != null && message.hasOwnProperty("masterLevel"))
4891
+ object.masterLevel = options.json && !isFinite(message.masterLevel) ? String(message.masterLevel) : message.masterLevel;
4892
+ if (message.masterAutomationLevel != null && message.hasOwnProperty("masterAutomationLevel"))
4893
+ object.masterAutomationLevel = options.json && !isFinite(message.masterAutomationLevel) ? String(message.masterAutomationLevel) : message.masterAutomationLevel;
4894
+ if (message.masterEffectiveLevel != null && message.hasOwnProperty("masterEffectiveLevel"))
4895
+ object.masterEffectiveLevel = options.json && !isFinite(message.masterEffectiveLevel) ? String(message.masterEffectiveLevel) : message.masterEffectiveLevel;
4896
+ if (message.masterPlugins && message.masterPlugins.length) {
4897
+ object.masterPlugins = [];
4898
+ for (let j = 0; j < message.masterPlugins.length; ++j)
4899
+ object.masterPlugins[j] = $root.sesame.v1.audio.AudioChannelPluginStatus.toObject(message.masterPlugins[j], options);
4900
+ }
4901
+ if (message.outputs && message.outputs.length) {
4902
+ object.outputs = [];
4903
+ for (let j = 0; j < message.outputs.length; ++j)
4904
+ object.outputs[j] = $root.sesame.v1.audio.AudioMixerOutputStatus.toObject(message.outputs[j], options);
4905
+ }
3746
4906
  return object;
3747
4907
  };
3748
4908
 
@@ -4035,6 +5195,9 @@ export const sesame = $root.sesame = (() => {
4035
5195
  * @property {number|null} [level] AudioChannelControlRequest level
4036
5196
  * @property {number|null} [pan] AudioChannelControlRequest pan
4037
5197
  * @property {Array.<sesame.v1.audio.IAudioPluginControlRequest>|null} [plugins] AudioChannelControlRequest plugins
5198
+ * @property {boolean|null} [mute] AudioChannelControlRequest mute
5199
+ * @property {number|null} [automationLevel] AudioChannelControlRequest automationLevel
5200
+ * @property {boolean|null} [automationMute] AudioChannelControlRequest automationMute
4038
5201
  */
4039
5202
 
4040
5203
  /**
@@ -4085,6 +5248,30 @@ export const sesame = $root.sesame = (() => {
4085
5248
  */
4086
5249
  AudioChannelControlRequest.prototype.plugins = $util.emptyArray;
4087
5250
 
5251
+ /**
5252
+ * AudioChannelControlRequest mute.
5253
+ * @member {boolean|null|undefined} mute
5254
+ * @memberof sesame.v1.audio.AudioChannelControlRequest
5255
+ * @instance
5256
+ */
5257
+ AudioChannelControlRequest.prototype.mute = null;
5258
+
5259
+ /**
5260
+ * AudioChannelControlRequest automationLevel.
5261
+ * @member {number|null|undefined} automationLevel
5262
+ * @memberof sesame.v1.audio.AudioChannelControlRequest
5263
+ * @instance
5264
+ */
5265
+ AudioChannelControlRequest.prototype.automationLevel = null;
5266
+
5267
+ /**
5268
+ * AudioChannelControlRequest automationMute.
5269
+ * @member {boolean|null|undefined} automationMute
5270
+ * @memberof sesame.v1.audio.AudioChannelControlRequest
5271
+ * @instance
5272
+ */
5273
+ AudioChannelControlRequest.prototype.automationMute = null;
5274
+
4088
5275
  // OneOf field names bound to virtual getters and setters
4089
5276
  let $oneOfFields;
4090
5277
 
@@ -4100,6 +5287,24 @@ export const sesame = $root.sesame = (() => {
4100
5287
  set: $util.oneOfSetter($oneOfFields)
4101
5288
  });
4102
5289
 
5290
+ // Virtual OneOf for proto3 optional field
5291
+ Object.defineProperty(AudioChannelControlRequest.prototype, "_mute", {
5292
+ get: $util.oneOfGetter($oneOfFields = ["mute"]),
5293
+ set: $util.oneOfSetter($oneOfFields)
5294
+ });
5295
+
5296
+ // Virtual OneOf for proto3 optional field
5297
+ Object.defineProperty(AudioChannelControlRequest.prototype, "_automationLevel", {
5298
+ get: $util.oneOfGetter($oneOfFields = ["automationLevel"]),
5299
+ set: $util.oneOfSetter($oneOfFields)
5300
+ });
5301
+
5302
+ // Virtual OneOf for proto3 optional field
5303
+ Object.defineProperty(AudioChannelControlRequest.prototype, "_automationMute", {
5304
+ get: $util.oneOfGetter($oneOfFields = ["automationMute"]),
5305
+ set: $util.oneOfSetter($oneOfFields)
5306
+ });
5307
+
4103
5308
  /**
4104
5309
  * Creates a new AudioChannelControlRequest instance using the specified properties.
4105
5310
  * @function create
@@ -4133,6 +5338,12 @@ export const sesame = $root.sesame = (() => {
4133
5338
  if (message.plugins != null && message.plugins.length)
4134
5339
  for (let i = 0; i < message.plugins.length; ++i)
4135
5340
  $root.sesame.v1.audio.AudioPluginControlRequest.encode(message.plugins[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
5341
+ if (message.mute != null && Object.hasOwnProperty.call(message, "mute"))
5342
+ writer.uint32(/* id 5, wireType 0 =*/40).bool(message.mute);
5343
+ if (message.automationLevel != null && Object.hasOwnProperty.call(message, "automationLevel"))
5344
+ writer.uint32(/* id 6, wireType 5 =*/53).float(message.automationLevel);
5345
+ if (message.automationMute != null && Object.hasOwnProperty.call(message, "automationMute"))
5346
+ writer.uint32(/* id 7, wireType 0 =*/56).bool(message.automationMute);
4136
5347
  return writer;
4137
5348
  };
4138
5349
 
@@ -4187,6 +5398,18 @@ export const sesame = $root.sesame = (() => {
4187
5398
  message.plugins.push($root.sesame.v1.audio.AudioPluginControlRequest.decode(reader, reader.uint32()));
4188
5399
  break;
4189
5400
  }
5401
+ case 5: {
5402
+ message.mute = reader.bool();
5403
+ break;
5404
+ }
5405
+ case 6: {
5406
+ message.automationLevel = reader.float();
5407
+ break;
5408
+ }
5409
+ case 7: {
5410
+ message.automationMute = reader.bool();
5411
+ break;
5412
+ }
4190
5413
  default:
4191
5414
  reader.skipType(tag & 7);
4192
5415
  break;
@@ -4245,6 +5468,21 @@ export const sesame = $root.sesame = (() => {
4245
5468
  return "plugins." + error;
4246
5469
  }
4247
5470
  }
5471
+ if (message.mute != null && message.hasOwnProperty("mute")) {
5472
+ properties._mute = 1;
5473
+ if (typeof message.mute !== "boolean")
5474
+ return "mute: boolean expected";
5475
+ }
5476
+ if (message.automationLevel != null && message.hasOwnProperty("automationLevel")) {
5477
+ properties._automationLevel = 1;
5478
+ if (typeof message.automationLevel !== "number")
5479
+ return "automationLevel: number expected";
5480
+ }
5481
+ if (message.automationMute != null && message.hasOwnProperty("automationMute")) {
5482
+ properties._automationMute = 1;
5483
+ if (typeof message.automationMute !== "boolean")
5484
+ return "automationMute: boolean expected";
5485
+ }
4248
5486
  return null;
4249
5487
  };
4250
5488
 
@@ -4276,6 +5514,12 @@ export const sesame = $root.sesame = (() => {
4276
5514
  message.plugins[i] = $root.sesame.v1.audio.AudioPluginControlRequest.fromObject(object.plugins[i]);
4277
5515
  }
4278
5516
  }
5517
+ if (object.mute != null)
5518
+ message.mute = Boolean(object.mute);
5519
+ if (object.automationLevel != null)
5520
+ message.automationLevel = Number(object.automationLevel);
5521
+ if (object.automationMute != null)
5522
+ message.automationMute = Boolean(object.automationMute);
4279
5523
  return message;
4280
5524
  };
4281
5525
 
@@ -4313,6 +5557,21 @@ export const sesame = $root.sesame = (() => {
4313
5557
  for (let j = 0; j < message.plugins.length; ++j)
4314
5558
  object.plugins[j] = $root.sesame.v1.audio.AudioPluginControlRequest.toObject(message.plugins[j], options);
4315
5559
  }
5560
+ if (message.mute != null && message.hasOwnProperty("mute")) {
5561
+ object.mute = message.mute;
5562
+ if (options.oneofs)
5563
+ object._mute = "mute";
5564
+ }
5565
+ if (message.automationLevel != null && message.hasOwnProperty("automationLevel")) {
5566
+ object.automationLevel = options.json && !isFinite(message.automationLevel) ? String(message.automationLevel) : message.automationLevel;
5567
+ if (options.oneofs)
5568
+ object._automationLevel = "automationLevel";
5569
+ }
5570
+ if (message.automationMute != null && message.hasOwnProperty("automationMute")) {
5571
+ object.automationMute = message.automationMute;
5572
+ if (options.oneofs)
5573
+ object._automationMute = "automationMute";
5574
+ }
4316
5575
  return object;
4317
5576
  };
4318
5577
 
@@ -4352,6 +5611,9 @@ export const sesame = $root.sesame = (() => {
4352
5611
  * @memberof sesame.v1.audio
4353
5612
  * @interface IAudioControlRequest
4354
5613
  * @property {Array.<sesame.v1.audio.IAudioChannelControlRequest>|null} [channels] AudioControlRequest channels
5614
+ * @property {number|null} [masterLevel] AudioControlRequest masterLevel
5615
+ * @property {number|null} [masterAutomationLevel] AudioControlRequest masterAutomationLevel
5616
+ * @property {Array.<sesame.v1.audio.IAudioPluginControlRequest>|null} [masterPlugins] AudioControlRequest masterPlugins
4355
5617
  */
4356
5618
 
4357
5619
  /**
@@ -4364,6 +5626,7 @@ export const sesame = $root.sesame = (() => {
4364
5626
  */
4365
5627
  function AudioControlRequest(properties) {
4366
5628
  this.channels = [];
5629
+ this.masterPlugins = [];
4367
5630
  if (properties)
4368
5631
  for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
4369
5632
  if (properties[keys[i]] != null)
@@ -4378,6 +5641,45 @@ export const sesame = $root.sesame = (() => {
4378
5641
  */
4379
5642
  AudioControlRequest.prototype.channels = $util.emptyArray;
4380
5643
 
5644
+ /**
5645
+ * AudioControlRequest masterLevel.
5646
+ * @member {number|null|undefined} masterLevel
5647
+ * @memberof sesame.v1.audio.AudioControlRequest
5648
+ * @instance
5649
+ */
5650
+ AudioControlRequest.prototype.masterLevel = null;
5651
+
5652
+ /**
5653
+ * AudioControlRequest masterAutomationLevel.
5654
+ * @member {number|null|undefined} masterAutomationLevel
5655
+ * @memberof sesame.v1.audio.AudioControlRequest
5656
+ * @instance
5657
+ */
5658
+ AudioControlRequest.prototype.masterAutomationLevel = null;
5659
+
5660
+ /**
5661
+ * AudioControlRequest masterPlugins.
5662
+ * @member {Array.<sesame.v1.audio.IAudioPluginControlRequest>} masterPlugins
5663
+ * @memberof sesame.v1.audio.AudioControlRequest
5664
+ * @instance
5665
+ */
5666
+ AudioControlRequest.prototype.masterPlugins = $util.emptyArray;
5667
+
5668
+ // OneOf field names bound to virtual getters and setters
5669
+ let $oneOfFields;
5670
+
5671
+ // Virtual OneOf for proto3 optional field
5672
+ Object.defineProperty(AudioControlRequest.prototype, "_masterLevel", {
5673
+ get: $util.oneOfGetter($oneOfFields = ["masterLevel"]),
5674
+ set: $util.oneOfSetter($oneOfFields)
5675
+ });
5676
+
5677
+ // Virtual OneOf for proto3 optional field
5678
+ Object.defineProperty(AudioControlRequest.prototype, "_masterAutomationLevel", {
5679
+ get: $util.oneOfGetter($oneOfFields = ["masterAutomationLevel"]),
5680
+ set: $util.oneOfSetter($oneOfFields)
5681
+ });
5682
+
4381
5683
  /**
4382
5684
  * Creates a new AudioControlRequest instance using the specified properties.
4383
5685
  * @function create
@@ -4405,6 +5707,13 @@ export const sesame = $root.sesame = (() => {
4405
5707
  if (message.channels != null && message.channels.length)
4406
5708
  for (let i = 0; i < message.channels.length; ++i)
4407
5709
  $root.sesame.v1.audio.AudioChannelControlRequest.encode(message.channels[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
5710
+ if (message.masterLevel != null && Object.hasOwnProperty.call(message, "masterLevel"))
5711
+ writer.uint32(/* id 2, wireType 5 =*/21).float(message.masterLevel);
5712
+ if (message.masterAutomationLevel != null && Object.hasOwnProperty.call(message, "masterAutomationLevel"))
5713
+ writer.uint32(/* id 3, wireType 5 =*/29).float(message.masterAutomationLevel);
5714
+ if (message.masterPlugins != null && message.masterPlugins.length)
5715
+ for (let i = 0; i < message.masterPlugins.length; ++i)
5716
+ $root.sesame.v1.audio.AudioPluginControlRequest.encode(message.masterPlugins[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
4408
5717
  return writer;
4409
5718
  };
4410
5719
 
@@ -4447,6 +5756,20 @@ export const sesame = $root.sesame = (() => {
4447
5756
  message.channels.push($root.sesame.v1.audio.AudioChannelControlRequest.decode(reader, reader.uint32()));
4448
5757
  break;
4449
5758
  }
5759
+ case 2: {
5760
+ message.masterLevel = reader.float();
5761
+ break;
5762
+ }
5763
+ case 3: {
5764
+ message.masterAutomationLevel = reader.float();
5765
+ break;
5766
+ }
5767
+ case 4: {
5768
+ if (!(message.masterPlugins && message.masterPlugins.length))
5769
+ message.masterPlugins = [];
5770
+ message.masterPlugins.push($root.sesame.v1.audio.AudioPluginControlRequest.decode(reader, reader.uint32()));
5771
+ break;
5772
+ }
4450
5773
  default:
4451
5774
  reader.skipType(tag & 7);
4452
5775
  break;
@@ -4482,6 +5805,7 @@ export const sesame = $root.sesame = (() => {
4482
5805
  AudioControlRequest.verify = function verify(message) {
4483
5806
  if (typeof message !== "object" || message === null)
4484
5807
  return "object expected";
5808
+ let properties = {};
4485
5809
  if (message.channels != null && message.hasOwnProperty("channels")) {
4486
5810
  if (!Array.isArray(message.channels))
4487
5811
  return "channels: array expected";
@@ -4491,6 +5815,25 @@ export const sesame = $root.sesame = (() => {
4491
5815
  return "channels." + error;
4492
5816
  }
4493
5817
  }
5818
+ if (message.masterLevel != null && message.hasOwnProperty("masterLevel")) {
5819
+ properties._masterLevel = 1;
5820
+ if (typeof message.masterLevel !== "number")
5821
+ return "masterLevel: number expected";
5822
+ }
5823
+ if (message.masterAutomationLevel != null && message.hasOwnProperty("masterAutomationLevel")) {
5824
+ properties._masterAutomationLevel = 1;
5825
+ if (typeof message.masterAutomationLevel !== "number")
5826
+ return "masterAutomationLevel: number expected";
5827
+ }
5828
+ if (message.masterPlugins != null && message.hasOwnProperty("masterPlugins")) {
5829
+ if (!Array.isArray(message.masterPlugins))
5830
+ return "masterPlugins: array expected";
5831
+ for (let i = 0; i < message.masterPlugins.length; ++i) {
5832
+ let error = $root.sesame.v1.audio.AudioPluginControlRequest.verify(message.masterPlugins[i]);
5833
+ if (error)
5834
+ return "masterPlugins." + error;
5835
+ }
5836
+ }
4494
5837
  return null;
4495
5838
  };
4496
5839
 
@@ -4516,6 +5859,20 @@ export const sesame = $root.sesame = (() => {
4516
5859
  message.channels[i] = $root.sesame.v1.audio.AudioChannelControlRequest.fromObject(object.channels[i]);
4517
5860
  }
4518
5861
  }
5862
+ if (object.masterLevel != null)
5863
+ message.masterLevel = Number(object.masterLevel);
5864
+ if (object.masterAutomationLevel != null)
5865
+ message.masterAutomationLevel = Number(object.masterAutomationLevel);
5866
+ if (object.masterPlugins) {
5867
+ if (!Array.isArray(object.masterPlugins))
5868
+ throw TypeError(".sesame.v1.audio.AudioControlRequest.masterPlugins: array expected");
5869
+ message.masterPlugins = [];
5870
+ for (let i = 0; i < object.masterPlugins.length; ++i) {
5871
+ if (typeof object.masterPlugins[i] !== "object")
5872
+ throw TypeError(".sesame.v1.audio.AudioControlRequest.masterPlugins: object expected");
5873
+ message.masterPlugins[i] = $root.sesame.v1.audio.AudioPluginControlRequest.fromObject(object.masterPlugins[i]);
5874
+ }
5875
+ }
4519
5876
  return message;
4520
5877
  };
4521
5878
 
@@ -4532,13 +5889,30 @@ export const sesame = $root.sesame = (() => {
4532
5889
  if (!options)
4533
5890
  options = {};
4534
5891
  let object = {};
4535
- if (options.arrays || options.defaults)
5892
+ if (options.arrays || options.defaults) {
4536
5893
  object.channels = [];
5894
+ object.masterPlugins = [];
5895
+ }
4537
5896
  if (message.channels && message.channels.length) {
4538
5897
  object.channels = [];
4539
5898
  for (let j = 0; j < message.channels.length; ++j)
4540
5899
  object.channels[j] = $root.sesame.v1.audio.AudioChannelControlRequest.toObject(message.channels[j], options);
4541
5900
  }
5901
+ if (message.masterLevel != null && message.hasOwnProperty("masterLevel")) {
5902
+ object.masterLevel = options.json && !isFinite(message.masterLevel) ? String(message.masterLevel) : message.masterLevel;
5903
+ if (options.oneofs)
5904
+ object._masterLevel = "masterLevel";
5905
+ }
5906
+ if (message.masterAutomationLevel != null && message.hasOwnProperty("masterAutomationLevel")) {
5907
+ object.masterAutomationLevel = options.json && !isFinite(message.masterAutomationLevel) ? String(message.masterAutomationLevel) : message.masterAutomationLevel;
5908
+ if (options.oneofs)
5909
+ object._masterAutomationLevel = "masterAutomationLevel";
5910
+ }
5911
+ if (message.masterPlugins && message.masterPlugins.length) {
5912
+ object.masterPlugins = [];
5913
+ for (let j = 0; j < message.masterPlugins.length; ++j)
5914
+ object.masterPlugins[j] = $root.sesame.v1.audio.AudioPluginControlRequest.toObject(message.masterPlugins[j], options);
5915
+ }
4542
5916
  return object;
4543
5917
  };
4544
5918