@stinkycomputing/sesame-api-client 1.10.0-alpha.2 → 1.10.0-alpha.4

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.
@@ -6690,6 +6690,9 @@ export namespace sesame {
6690
6690
 
6691
6691
  /** TransportControlRequest value */
6692
6692
  value?: (sesame.v1.common.IPropValue|null);
6693
+
6694
+ /** TransportControlRequest sourceId */
6695
+ sourceId?: (string|null);
6693
6696
  }
6694
6697
 
6695
6698
  /** Represents a TransportControlRequest. */
@@ -6707,6 +6710,9 @@ export namespace sesame {
6707
6710
  /** TransportControlRequest value. */
6708
6711
  public value?: (sesame.v1.common.IPropValue|null);
6709
6712
 
6713
+ /** TransportControlRequest sourceId. */
6714
+ public sourceId: string;
6715
+
6710
6716
  /**
6711
6717
  * Creates a new TransportControlRequest instance using the specified properties.
6712
6718
  * @param [properties] Properties to set
@@ -10568,6 +10574,103 @@ export namespace sesame {
10568
10574
  public static getTypeUrl(typeUrlPrefix?: string): string;
10569
10575
  }
10570
10576
 
10577
+ /** Properties of a TransportStatus. */
10578
+ interface ITransportStatus {
10579
+
10580
+ /** TransportStatus sources */
10581
+ sources?: (sesame.v1.status.ITransportEvent[]|null);
10582
+ }
10583
+
10584
+ /** Represents a TransportStatus. */
10585
+ class TransportStatus implements ITransportStatus {
10586
+
10587
+ /**
10588
+ * Constructs a new TransportStatus.
10589
+ * @param [properties] Properties to set
10590
+ */
10591
+ constructor(properties?: sesame.v1.status.ITransportStatus);
10592
+
10593
+ /** TransportStatus sources. */
10594
+ public sources: sesame.v1.status.ITransportEvent[];
10595
+
10596
+ /**
10597
+ * Creates a new TransportStatus instance using the specified properties.
10598
+ * @param [properties] Properties to set
10599
+ * @returns TransportStatus instance
10600
+ */
10601
+ public static create(properties?: sesame.v1.status.ITransportStatus): sesame.v1.status.TransportStatus;
10602
+
10603
+ /**
10604
+ * Encodes the specified TransportStatus message. Does not implicitly {@link sesame.v1.status.TransportStatus.verify|verify} messages.
10605
+ * @param message TransportStatus message or plain object to encode
10606
+ * @param [writer] Writer to encode to
10607
+ * @returns Writer
10608
+ */
10609
+ public static encode(message: sesame.v1.status.ITransportStatus, writer?: $protobuf.Writer): $protobuf.Writer;
10610
+
10611
+ /**
10612
+ * Encodes the specified TransportStatus message, length delimited. Does not implicitly {@link sesame.v1.status.TransportStatus.verify|verify} messages.
10613
+ * @param message TransportStatus message or plain object to encode
10614
+ * @param [writer] Writer to encode to
10615
+ * @returns Writer
10616
+ */
10617
+ public static encodeDelimited(message: sesame.v1.status.ITransportStatus, writer?: $protobuf.Writer): $protobuf.Writer;
10618
+
10619
+ /**
10620
+ * Decodes a TransportStatus message from the specified reader or buffer.
10621
+ * @param reader Reader or buffer to decode from
10622
+ * @param [length] Message length if known beforehand
10623
+ * @returns TransportStatus
10624
+ * @throws {Error} If the payload is not a reader or valid buffer
10625
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
10626
+ */
10627
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): sesame.v1.status.TransportStatus;
10628
+
10629
+ /**
10630
+ * Decodes a TransportStatus message from the specified reader or buffer, length delimited.
10631
+ * @param reader Reader or buffer to decode from
10632
+ * @returns TransportStatus
10633
+ * @throws {Error} If the payload is not a reader or valid buffer
10634
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
10635
+ */
10636
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): sesame.v1.status.TransportStatus;
10637
+
10638
+ /**
10639
+ * Verifies a TransportStatus message.
10640
+ * @param message Plain object to verify
10641
+ * @returns `null` if valid, otherwise the reason why it is not
10642
+ */
10643
+ public static verify(message: { [k: string]: any }): (string|null);
10644
+
10645
+ /**
10646
+ * Creates a TransportStatus message from a plain object. Also converts values to their respective internal types.
10647
+ * @param object Plain object
10648
+ * @returns TransportStatus
10649
+ */
10650
+ public static fromObject(object: { [k: string]: any }): sesame.v1.status.TransportStatus;
10651
+
10652
+ /**
10653
+ * Creates a plain object from a TransportStatus message. Also converts values to other types if specified.
10654
+ * @param message TransportStatus
10655
+ * @param [options] Conversion options
10656
+ * @returns Plain object
10657
+ */
10658
+ public static toObject(message: sesame.v1.status.TransportStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };
10659
+
10660
+ /**
10661
+ * Converts this TransportStatus to JSON.
10662
+ * @returns JSON object
10663
+ */
10664
+ public toJSON(): { [k: string]: any };
10665
+
10666
+ /**
10667
+ * Gets the default type url for TransportStatus
10668
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
10669
+ * @returns The default type url
10670
+ */
10671
+ public static getTypeUrl(typeUrlPrefix?: string): string;
10672
+ }
10673
+
10571
10674
  /** Properties of a MetadataEvent. */
10572
10675
  interface IMetadataEvent {
10573
10676
 
package/dist/proto/api.js CHANGED
@@ -18643,6 +18643,7 @@ export const sesame = $root.sesame = (() => {
18643
18643
  * @interface ITransportControlRequest
18644
18644
  * @property {sesame.v1.sources.SourceTransportCommandType|null} [cmdType] TransportControlRequest cmdType
18645
18645
  * @property {sesame.v1.common.IPropValue|null} [value] TransportControlRequest value
18646
+ * @property {string|null} [sourceId] TransportControlRequest sourceId
18646
18647
  */
18647
18648
 
18648
18649
  /**
@@ -18676,6 +18677,14 @@ export const sesame = $root.sesame = (() => {
18676
18677
  */
18677
18678
  TransportControlRequest.prototype.value = null;
18678
18679
 
18680
+ /**
18681
+ * TransportControlRequest sourceId.
18682
+ * @member {string} sourceId
18683
+ * @memberof sesame.v1.sources.TransportControlRequest
18684
+ * @instance
18685
+ */
18686
+ TransportControlRequest.prototype.sourceId = "";
18687
+
18679
18688
  /**
18680
18689
  * Creates a new TransportControlRequest instance using the specified properties.
18681
18690
  * @function create
@@ -18704,6 +18713,8 @@ export const sesame = $root.sesame = (() => {
18704
18713
  writer.uint32(/* id 1, wireType 0 =*/8).int32(message.cmdType);
18705
18714
  if (message.value != null && Object.hasOwnProperty.call(message, "value"))
18706
18715
  $root.sesame.v1.common.PropValue.encode(message.value, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
18716
+ if (message.sourceId != null && Object.hasOwnProperty.call(message, "sourceId"))
18717
+ writer.uint32(/* id 3, wireType 2 =*/26).string(message.sourceId);
18707
18718
  return writer;
18708
18719
  };
18709
18720
 
@@ -18748,6 +18759,10 @@ export const sesame = $root.sesame = (() => {
18748
18759
  message.value = $root.sesame.v1.common.PropValue.decode(reader, reader.uint32());
18749
18760
  break;
18750
18761
  }
18762
+ case 3: {
18763
+ message.sourceId = reader.string();
18764
+ break;
18765
+ }
18751
18766
  default:
18752
18767
  reader.skipType(tag & 7);
18753
18768
  break;
@@ -18811,6 +18826,9 @@ export const sesame = $root.sesame = (() => {
18811
18826
  if (error)
18812
18827
  return "value." + error;
18813
18828
  }
18829
+ if (message.sourceId != null && message.hasOwnProperty("sourceId"))
18830
+ if (!$util.isString(message.sourceId))
18831
+ return "sourceId: string expected";
18814
18832
  return null;
18815
18833
  };
18816
18834
 
@@ -18907,6 +18925,8 @@ export const sesame = $root.sesame = (() => {
18907
18925
  throw TypeError(".sesame.v1.sources.TransportControlRequest.value: object expected");
18908
18926
  message.value = $root.sesame.v1.common.PropValue.fromObject(object.value);
18909
18927
  }
18928
+ if (object.sourceId != null)
18929
+ message.sourceId = String(object.sourceId);
18910
18930
  return message;
18911
18931
  };
18912
18932
 
@@ -18926,11 +18946,14 @@ export const sesame = $root.sesame = (() => {
18926
18946
  if (options.defaults) {
18927
18947
  object.cmdType = options.enums === String ? "SOURCE_TRANSPORT_CMD_UNSPECIFIED" : 0;
18928
18948
  object.value = null;
18949
+ object.sourceId = "";
18929
18950
  }
18930
18951
  if (message.cmdType != null && message.hasOwnProperty("cmdType"))
18931
18952
  object.cmdType = options.enums === String ? $root.sesame.v1.sources.SourceTransportCommandType[message.cmdType] === undefined ? message.cmdType : $root.sesame.v1.sources.SourceTransportCommandType[message.cmdType] : message.cmdType;
18932
18953
  if (message.value != null && message.hasOwnProperty("value"))
18933
18954
  object.value = $root.sesame.v1.common.PropValue.toObject(message.value, options);
18955
+ if (message.sourceId != null && message.hasOwnProperty("sourceId"))
18956
+ object.sourceId = message.sourceId;
18934
18957
  return object;
18935
18958
  };
18936
18959
 
@@ -29341,6 +29364,232 @@ export const sesame = $root.sesame = (() => {
29341
29364
  return TransportEvent;
29342
29365
  })();
29343
29366
 
29367
+ status.TransportStatus = (function() {
29368
+
29369
+ /**
29370
+ * Properties of a TransportStatus.
29371
+ * @memberof sesame.v1.status
29372
+ * @interface ITransportStatus
29373
+ * @property {Array.<sesame.v1.status.ITransportEvent>|null} [sources] TransportStatus sources
29374
+ */
29375
+
29376
+ /**
29377
+ * Constructs a new TransportStatus.
29378
+ * @memberof sesame.v1.status
29379
+ * @classdesc Represents a TransportStatus.
29380
+ * @implements ITransportStatus
29381
+ * @constructor
29382
+ * @param {sesame.v1.status.ITransportStatus=} [properties] Properties to set
29383
+ */
29384
+ function TransportStatus(properties) {
29385
+ this.sources = [];
29386
+ if (properties)
29387
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
29388
+ if (properties[keys[i]] != null)
29389
+ this[keys[i]] = properties[keys[i]];
29390
+ }
29391
+
29392
+ /**
29393
+ * TransportStatus sources.
29394
+ * @member {Array.<sesame.v1.status.ITransportEvent>} sources
29395
+ * @memberof sesame.v1.status.TransportStatus
29396
+ * @instance
29397
+ */
29398
+ TransportStatus.prototype.sources = $util.emptyArray;
29399
+
29400
+ /**
29401
+ * Creates a new TransportStatus instance using the specified properties.
29402
+ * @function create
29403
+ * @memberof sesame.v1.status.TransportStatus
29404
+ * @static
29405
+ * @param {sesame.v1.status.ITransportStatus=} [properties] Properties to set
29406
+ * @returns {sesame.v1.status.TransportStatus} TransportStatus instance
29407
+ */
29408
+ TransportStatus.create = function create(properties) {
29409
+ return new TransportStatus(properties);
29410
+ };
29411
+
29412
+ /**
29413
+ * Encodes the specified TransportStatus message. Does not implicitly {@link sesame.v1.status.TransportStatus.verify|verify} messages.
29414
+ * @function encode
29415
+ * @memberof sesame.v1.status.TransportStatus
29416
+ * @static
29417
+ * @param {sesame.v1.status.ITransportStatus} message TransportStatus message or plain object to encode
29418
+ * @param {$protobuf.Writer} [writer] Writer to encode to
29419
+ * @returns {$protobuf.Writer} Writer
29420
+ */
29421
+ TransportStatus.encode = function encode(message, writer) {
29422
+ if (!writer)
29423
+ writer = $Writer.create();
29424
+ if (message.sources != null && message.sources.length)
29425
+ for (let i = 0; i < message.sources.length; ++i)
29426
+ $root.sesame.v1.status.TransportEvent.encode(message.sources[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
29427
+ return writer;
29428
+ };
29429
+
29430
+ /**
29431
+ * Encodes the specified TransportStatus message, length delimited. Does not implicitly {@link sesame.v1.status.TransportStatus.verify|verify} messages.
29432
+ * @function encodeDelimited
29433
+ * @memberof sesame.v1.status.TransportStatus
29434
+ * @static
29435
+ * @param {sesame.v1.status.ITransportStatus} message TransportStatus message or plain object to encode
29436
+ * @param {$protobuf.Writer} [writer] Writer to encode to
29437
+ * @returns {$protobuf.Writer} Writer
29438
+ */
29439
+ TransportStatus.encodeDelimited = function encodeDelimited(message, writer) {
29440
+ return this.encode(message, writer).ldelim();
29441
+ };
29442
+
29443
+ /**
29444
+ * Decodes a TransportStatus message from the specified reader or buffer.
29445
+ * @function decode
29446
+ * @memberof sesame.v1.status.TransportStatus
29447
+ * @static
29448
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
29449
+ * @param {number} [length] Message length if known beforehand
29450
+ * @returns {sesame.v1.status.TransportStatus} TransportStatus
29451
+ * @throws {Error} If the payload is not a reader or valid buffer
29452
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
29453
+ */
29454
+ TransportStatus.decode = function decode(reader, length, error) {
29455
+ if (!(reader instanceof $Reader))
29456
+ reader = $Reader.create(reader);
29457
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.sesame.v1.status.TransportStatus();
29458
+ while (reader.pos < end) {
29459
+ let tag = reader.uint32();
29460
+ if (tag === error)
29461
+ break;
29462
+ switch (tag >>> 3) {
29463
+ case 1: {
29464
+ if (!(message.sources && message.sources.length))
29465
+ message.sources = [];
29466
+ message.sources.push($root.sesame.v1.status.TransportEvent.decode(reader, reader.uint32()));
29467
+ break;
29468
+ }
29469
+ default:
29470
+ reader.skipType(tag & 7);
29471
+ break;
29472
+ }
29473
+ }
29474
+ return message;
29475
+ };
29476
+
29477
+ /**
29478
+ * Decodes a TransportStatus message from the specified reader or buffer, length delimited.
29479
+ * @function decodeDelimited
29480
+ * @memberof sesame.v1.status.TransportStatus
29481
+ * @static
29482
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
29483
+ * @returns {sesame.v1.status.TransportStatus} TransportStatus
29484
+ * @throws {Error} If the payload is not a reader or valid buffer
29485
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
29486
+ */
29487
+ TransportStatus.decodeDelimited = function decodeDelimited(reader) {
29488
+ if (!(reader instanceof $Reader))
29489
+ reader = new $Reader(reader);
29490
+ return this.decode(reader, reader.uint32());
29491
+ };
29492
+
29493
+ /**
29494
+ * Verifies a TransportStatus message.
29495
+ * @function verify
29496
+ * @memberof sesame.v1.status.TransportStatus
29497
+ * @static
29498
+ * @param {Object.<string,*>} message Plain object to verify
29499
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
29500
+ */
29501
+ TransportStatus.verify = function verify(message) {
29502
+ if (typeof message !== "object" || message === null)
29503
+ return "object expected";
29504
+ if (message.sources != null && message.hasOwnProperty("sources")) {
29505
+ if (!Array.isArray(message.sources))
29506
+ return "sources: array expected";
29507
+ for (let i = 0; i < message.sources.length; ++i) {
29508
+ let error = $root.sesame.v1.status.TransportEvent.verify(message.sources[i]);
29509
+ if (error)
29510
+ return "sources." + error;
29511
+ }
29512
+ }
29513
+ return null;
29514
+ };
29515
+
29516
+ /**
29517
+ * Creates a TransportStatus message from a plain object. Also converts values to their respective internal types.
29518
+ * @function fromObject
29519
+ * @memberof sesame.v1.status.TransportStatus
29520
+ * @static
29521
+ * @param {Object.<string,*>} object Plain object
29522
+ * @returns {sesame.v1.status.TransportStatus} TransportStatus
29523
+ */
29524
+ TransportStatus.fromObject = function fromObject(object) {
29525
+ if (object instanceof $root.sesame.v1.status.TransportStatus)
29526
+ return object;
29527
+ let message = new $root.sesame.v1.status.TransportStatus();
29528
+ if (object.sources) {
29529
+ if (!Array.isArray(object.sources))
29530
+ throw TypeError(".sesame.v1.status.TransportStatus.sources: array expected");
29531
+ message.sources = [];
29532
+ for (let i = 0; i < object.sources.length; ++i) {
29533
+ if (typeof object.sources[i] !== "object")
29534
+ throw TypeError(".sesame.v1.status.TransportStatus.sources: object expected");
29535
+ message.sources[i] = $root.sesame.v1.status.TransportEvent.fromObject(object.sources[i]);
29536
+ }
29537
+ }
29538
+ return message;
29539
+ };
29540
+
29541
+ /**
29542
+ * Creates a plain object from a TransportStatus message. Also converts values to other types if specified.
29543
+ * @function toObject
29544
+ * @memberof sesame.v1.status.TransportStatus
29545
+ * @static
29546
+ * @param {sesame.v1.status.TransportStatus} message TransportStatus
29547
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
29548
+ * @returns {Object.<string,*>} Plain object
29549
+ */
29550
+ TransportStatus.toObject = function toObject(message, options) {
29551
+ if (!options)
29552
+ options = {};
29553
+ let object = {};
29554
+ if (options.arrays || options.defaults)
29555
+ object.sources = [];
29556
+ if (message.sources && message.sources.length) {
29557
+ object.sources = [];
29558
+ for (let j = 0; j < message.sources.length; ++j)
29559
+ object.sources[j] = $root.sesame.v1.status.TransportEvent.toObject(message.sources[j], options);
29560
+ }
29561
+ return object;
29562
+ };
29563
+
29564
+ /**
29565
+ * Converts this TransportStatus to JSON.
29566
+ * @function toJSON
29567
+ * @memberof sesame.v1.status.TransportStatus
29568
+ * @instance
29569
+ * @returns {Object.<string,*>} JSON object
29570
+ */
29571
+ TransportStatus.prototype.toJSON = function toJSON() {
29572
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
29573
+ };
29574
+
29575
+ /**
29576
+ * Gets the default type url for TransportStatus
29577
+ * @function getTypeUrl
29578
+ * @memberof sesame.v1.status.TransportStatus
29579
+ * @static
29580
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
29581
+ * @returns {string} The default type url
29582
+ */
29583
+ TransportStatus.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
29584
+ if (typeUrlPrefix === undefined) {
29585
+ typeUrlPrefix = "type.googleapis.com";
29586
+ }
29587
+ return typeUrlPrefix + "/sesame.v1.status.TransportStatus";
29588
+ };
29589
+
29590
+ return TransportStatus;
29591
+ })();
29592
+
29344
29593
  status.MetadataEvent = (function() {
29345
29594
 
29346
29595
  /**
@@ -30,7 +30,7 @@ export type ParsedDataFrame = {
30
30
  } | {
31
31
  dataType: 'transport-status';
32
32
  trackName: string;
33
- event: sesame.v1.status.TransportEvent;
33
+ status: sesame.v1.status.TransportStatus;
34
34
  } | {
35
35
  dataType: 'audio-state';
36
36
  trackName: string;
@@ -43,6 +43,26 @@ export type ParsedDataFrame = {
43
43
  dataType: 'audio-control';
44
44
  trackName: string;
45
45
  request: sesame.v1.audio.AudioControlRequest;
46
+ } | {
47
+ dataType: 'output-control';
48
+ trackName: string;
49
+ request: sesame.v1.outputs.OutputControlRequest;
50
+ } | {
51
+ dataType: 'source-control';
52
+ trackName: string;
53
+ request: sesame.v1.sources.SourceControlRequest;
54
+ } | {
55
+ dataType: 'output-status';
56
+ trackName: string;
57
+ status: sesame.v1.outputs.OutputStatus;
58
+ } | {
59
+ dataType: 'source-status';
60
+ trackName: string;
61
+ status: sesame.v1.sources.SourceStatus;
62
+ } | {
63
+ dataType: 'engine-status';
64
+ trackName: string;
65
+ status: sesame.v1.status.Status;
46
66
  } | {
47
67
  dataType: 'binary';
48
68
  trackName: string;
@@ -113,17 +133,21 @@ export declare function buildAudioControlFrame(trackName: string, request: sesam
113
133
  * Build a ready-to-send wire frame carrying a `TransportControlRequest`.
114
134
  *
115
135
  * Send this over a WebSocket source connection to queue a playback command
116
- * on the server. The target source is resolved from the server's routing table.
136
+ * on the server. The track must be bound to the reserved target `sources`
137
+ * and the request names the source in `sourceId`.
117
138
  *
118
139
  * @example
119
140
  * ```ts
120
141
  * const bytes = buildTransportControlFrame('my-control-track', {
142
+ * sourceId: 'file-1',
121
143
  * cmdType: sesame.v1.sources.SourceTransportCommandType.SOURCE_TRANSPORT_CMD_PLAY,
122
144
  * });
123
145
  * ws.send(bytes);
124
146
  * ```
125
147
  */
126
- export declare function buildTransportControlFrame(trackName: string, request: sesame.v1.sources.ITransportControlRequest): Uint8Array;
148
+ export declare function buildTransportControlFrame(trackName: string, request: sesame.v1.sources.ITransportControlRequest & {
149
+ sourceId: string;
150
+ }): Uint8Array;
127
151
  /**
128
152
  * Build a ready-to-send wire frame carrying a `SourceControlRequest`.
129
153
  *
@@ -144,6 +168,10 @@ export declare function buildTransportControlFrame(trackName: string, request: s
144
168
  * ```
145
169
  */
146
170
  export declare function buildSourceControlFrame(trackName: string, request: sesame.v1.sources.ISourceControlRequest): Uint8Array;
171
+ /**
172
+ * Build a DATA_TYPE_OUTPUT_CONTROL frame: start or stop the output named by `request.id`.
173
+ */
174
+ export declare function buildOutputControlFrame(trackName: string, request: sesame.v1.outputs.IOutputControlRequest): Uint8Array;
147
175
  /**
148
176
  * Build a ready-to-send wire frame carrying raw binary data.
149
177
  *
@@ -1 +1 @@
1
- {"version":3,"file":"sesame-wire-protocol.d.ts","sourceRoot":"","sources":["../src/sesame-wire-protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sesame-wire-protocol.d.ts","sourceRoot":"","sources":["../src/sesame-wire-protocol.ts"],"names":[],"mappings":"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"}
@@ -1288,13 +1288,14 @@ Request to add a new output.
1288
1288
  Runtime start/stop of an output stream. Only valid for SRT outputs configured
1289
1289
  with SRT_STREAM_CONTROL_MANUAL; rejected otherwise.
1290
1290
  When received over the wire protocol (DATA_TYPE_OUTPUT_CONTROL) the target
1291
- output is resolved from the track's metadata binding and `id` is ignored, so
1292
- a remote client can only control the output its track is bound to.
1291
+ output is resolved from the track's metadata binding: a track bound to one
1292
+ output can only control that output and `id` is ignored; a track bound to
1293
+ the reserved target `outputs` controls the output named in `id`.
1293
1294
 
1294
1295
 
1295
1296
  | Field | Type | Description |
1296
1297
  |-------|------|-------------|
1297
- | `id` | string | Output ID (command API only; ignored on bound wire tracks) |
1298
+ | `id` | string | Output ID (command API, and wire tracks bound to the reserved target `outputs`) |
1298
1299
  | `action` | OutputControlAction | Action to perform |
1299
1300
 
1300
1301
 
@@ -1815,6 +1816,7 @@ Video preprocessing step type.
1815
1816
  | 0 | `PREPROCESS_STEP_UNSPECIFIED` | Unspecified (invalid) |
1816
1817
  | 2 | `PREPROCESS_STEP_CHROMA_KEY` | Chroma key |
1817
1818
  | 3 | `PREPROCESS_STEP_BLUR` | Blur effect |
1819
+ | 4 | `PREPROCESS_STEP_COLOR_CORRECT` | Color correction (exposure, contrast, saturation, hue, lift/gamma/gain) |
1818
1820
 
1819
1821
 
1820
1822
  ### ScopeMode
@@ -2111,6 +2113,28 @@ Defines how a source is created and configured.
2111
2113
  | `scope` | ScopeSourceConfig | SOURCE_TYPE_SCOPE |
2112
2114
 
2113
2115
 
2116
+ ### SourceControlRequest
2117
+
2118
+ Payload for DATA_TYPE_SOURCE_CONTROL frames (transport → source).
2119
+
2120
+ The target source is resolved server-side from the MetadataRouter binding
2121
+ configured for this source track. A track bound to one source can only
2122
+ control that source and `source_id` is ignored. A track bound to the
2123
+ reserved target `sources` controls any source and must name it in
2124
+ `source_id`. Mirrors SourceStatus.video_processors: take the status, copy
2125
+ the processor id and the parameter ids you want to change, and set the new
2126
+ values. Updates are queued as property sets and applied together on the
2127
+ next engine tick.
2128
+
2129
+
2130
+ | Field | Type | Description |
2131
+ |-------|------|-------------|
2132
+ | `video_processors` | repeated VideoProcessorControlRequest | Video processor parameter updates |
2133
+ | `audio_level` | optional float | New source audio level (0.0-1.0) |
2134
+ | `reset_processors` | repeated string | Video processor instance IDs to reset to their defaults (applied before video_processors) |
2135
+ | `source_id` | string | Target source; used only when the track is bound to the reserved target `sources` |
2136
+
2137
+
2114
2138
  ### SourceMetadataEvent
2115
2139
 
2116
2140
  Source metadata transport event notification.
@@ -2171,6 +2195,7 @@ Source status information.
2171
2195
  | `decode_timing` | sesame.v1.status.FrameTiming | Decode timing stats |
2172
2196
  | `video_buf_avg` | double | Average video buffer level |
2173
2197
  | `srt_stats` | optional sesame.v1.status.SRTReceiveStatistics | SRT stats (if SRT source) |
2198
+ | `video_processors` | repeated VideoProcessor | Video processors with their current parameter values |
2174
2199
 
2175
2200
 
2176
2201
  ### SourceTransportCommand
@@ -2242,17 +2267,17 @@ between items inside the playlist.
2242
2267
 
2243
2268
  Payload for DATA_TYPE_TRANSPORT_CONTROL frames (transport → server).
2244
2269
 
2245
- The target source ID is NOT included here it is resolved server-side from
2246
- the MetadataRouter binding configured for this source track. This mirrors
2247
- TransportEvent: to build a control message, copy cmd_type and value from
2248
- the desired SourceTransportCommandType. The server will only apply commands
2249
- to the source the track is bound to; it cannot control arbitrary sources.
2270
+ Transport control tracks are bound to the reserved target `sources`, so one
2271
+ track reaches every transportable source, including sources created at
2272
+ runtime. The request names the source in `source_id`; commands for a source
2273
+ that does not exist or is not transportable are dropped.
2250
2274
 
2251
2275
 
2252
2276
  | Field | Type | Description |
2253
2277
  |-------|------|-------------|
2254
2278
  | `cmd_type` | SourceTransportCommandType | |
2255
2279
  | `value` | sesame.v1.common.PropValue | Optional; semantics depend on cmd_type |
2280
+ | `source_id` | string | Target source |
2256
2281
 
2257
2282
 
2258
2283
  ### VideoProcessor
@@ -2267,6 +2292,17 @@ Video processor instance configuration.
2267
2292
  | `params` | repeated VideoProcessorParam | Processor parameters |
2268
2293
 
2269
2294
 
2295
+ ### VideoProcessorControlRequest
2296
+
2297
+ Parameter updates for one video processor instance on a source.
2298
+
2299
+
2300
+ | Field | Type | Description |
2301
+ |-------|------|-------------|
2302
+ | `processor_id` | string | Video processor instance ID (VideoProcessor.id) |
2303
+ | `params` | repeated VideoProcessorParam | Parameters to set; omitted parameters are left unchanged |
2304
+
2305
+
2270
2306
  ### VideoProcessorParam
2271
2307
 
2272
2308
  Video processor parameter (mirrors AudioPluginParam).
@@ -2552,6 +2588,17 @@ Transport event (source playback state change).
2552
2588
  | `near_end` | bool | True in the single event fired when end_notification threshold is crossed |
2553
2589
 
2554
2590
 
2591
+ ### TransportStatus
2592
+
2593
+ Payload for DATA_TYPE_TRANSPORT_STATUS frames on the reserved `sources`
2594
+ track: the current transport state of every transportable source.
2595
+
2596
+
2597
+ | Field | Type | Description |
2598
+ |-------|------|-------------|
2599
+ | `sources` | repeated TransportEvent | One entry per transportable source, keyed by source_id |
2600
+
2601
+
2555
2602
  ---
2556
2603
 
2557
2604
 
@@ -2572,7 +2619,7 @@ type, or raw UTF-8 JSON for DATA_TYPE_JSON.
2572
2619
  |-------|------|-------------|
2573
2620
  | 0 | `DATA_TYPE_UNSPECIFIED` | |
2574
2621
  | 1 | `DATA_TYPE_JSON` | |
2575
- | 2 | `DATA_TYPE_TRANSPORT_STATUS` | payload: sesame.v1.status.TransportEvent (source → transport) |
2622
+ | 2 | `DATA_TYPE_TRANSPORT_STATUS` | payload: sesame.v1.status.TransportStatus (all transportable sources → transport) |
2576
2623
  | 3 | `DATA_TYPE_AUDIO_STATE` | payload: sesame.v1.audio.AudioMixerStatus (mixer → transport) |
2577
2624
  | 4 | `DATA_TYPE_TRANSPORT_CONTROL` | payload: sesame.v1.sources.TransportControlRequest (transport → source) |
2578
2625
  | 5 | `DATA_TYPE_AUDIO_CONTROL` | payload: sesame.v1.audio.AudioControlRequest (transport → mixer) |
@@ -2580,6 +2627,8 @@ type, or raw UTF-8 JSON for DATA_TYPE_JSON.
2580
2627
  | 7 | `DATA_TYPE_OUTPUT_STATUS` | payload: sesame.v1.outputs.OutputStatus (output → transport) |
2581
2628
  | 8 | `DATA_TYPE_OUTPUT_CONTROL` | payload: sesame.v1.outputs.OutputControlRequest (transport → output) |
2582
2629
  | 9 | `DATA_TYPE_ENGINE_STATUS` | payload: sesame.v1.status.Status (engine → transport; full monitor status) |
2630
+ | 10 | `DATA_TYPE_SOURCE_CONTROL` | payload: sesame.v1.sources.SourceControlRequest (transport → source) |
2631
+ | 11 | `DATA_TYPE_SOURCE_STATUS` | payload: sesame.v1.sources.SourceStatus (source → transport) |
2583
2632
 
2584
2633
 
2585
2634
  ### FrameType
@@ -2796,6 +2845,7 @@ Address format: `processor_id` for preprocessor parameters.
2796
2845
  |----------|------|-------------|
2797
2846
  | `audio_level` | float | Source audio level |
2798
2847
  | `<param_id>` | float | Preprocessor parameter (numeric ID as string) |
2848
+ | `reset` | bool | Restore every parameter of the addressed preprocessor to its default |
2799
2849
 
2800
2850
 
2801
2851
  <!-- Hand-maintained sections - appended to generated protocol-reference.md -->