@stinkycomputing/sesame-api-client 1.5.0-alpha.1 → 1.5.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -33,6 +33,7 @@ __export(index_exports, {
33
33
  CodecType: () => CodecType,
34
34
  CommandList: () => CommandList,
35
35
  ConnectionState: () => ConnectionState,
36
+ DataType: () => DataType,
36
37
  EaseKind: () => EaseKind,
37
38
  Event: () => Event,
38
39
  FrameHeader: () => FrameHeader,
@@ -47,8 +48,11 @@ __export(index_exports, {
47
48
  SesameConnection: () => SesameConnection,
48
49
  StatusApi: () => StatusApi,
49
50
  WireProtocol: () => WireProtocol,
51
+ buildAudioControlFrame: () => buildAudioControlFrame,
52
+ buildTransportControlFrame: () => buildTransportControlFrame,
50
53
  getLogger: () => getLogger,
51
54
  log: () => log,
55
+ parseDataFrame: () => parseDataFrame,
52
56
  sesame: () => sesame,
53
57
  setLogger: () => setLogger,
54
58
  waitForEvent: () => waitForEvent
@@ -23963,9 +23967,74 @@ var import_events2 = require("events");
23963
23967
 
23964
23968
  // src/sesame-wire-protocol.ts
23965
23969
  var FrameType = sesame.v1.wire.FrameType;
23970
+ var DataType = sesame.v1.wire.DataType;
23966
23971
  var FrameHeader = sesame.v1.wire.FrameHeader;
23967
23972
  var MediaCodecData = sesame.v1.wire.MediaCodecData;
23968
23973
  var CodecType = sesame.v1.common.CodecType;
23974
+ function parseDataFrame(frame) {
23975
+ if (!frame.valid || !frame.header || !frame.payload) return null;
23976
+ if (frame.header.type !== sesame.v1.wire.FrameType.FRAME_TYPE_DATA) return null;
23977
+ const d = frame.header.data;
23978
+ if (!d) return null;
23979
+ const trackName = d.trackName ?? "";
23980
+ const payload = frame.payload;
23981
+ try {
23982
+ switch (d.dataType) {
23983
+ case sesame.v1.wire.DataType.DATA_TYPE_JSON: {
23984
+ const text = new TextDecoder().decode(payload);
23985
+ return { dataType: "json", trackName, json: JSON.parse(text) };
23986
+ }
23987
+ case sesame.v1.wire.DataType.DATA_TYPE_TRANSPORT_STATUS:
23988
+ return {
23989
+ dataType: "transport-status",
23990
+ trackName,
23991
+ event: sesame.v1.status.TransportEvent.decode(payload)
23992
+ };
23993
+ case sesame.v1.wire.DataType.DATA_TYPE_AUDIO_STATE:
23994
+ return {
23995
+ dataType: "audio-state",
23996
+ trackName,
23997
+ status: sesame.v1.audio.AudioMixerStatus.decode(payload)
23998
+ };
23999
+ case sesame.v1.wire.DataType.DATA_TYPE_TRANSPORT_CONTROL:
24000
+ return {
24001
+ dataType: "transport-control",
24002
+ trackName,
24003
+ request: sesame.v1.sources.TransportControlRequest.decode(payload)
24004
+ };
24005
+ case sesame.v1.wire.DataType.DATA_TYPE_AUDIO_CONTROL:
24006
+ return {
24007
+ dataType: "audio-control",
24008
+ trackName,
24009
+ request: sesame.v1.audio.AudioControlRequest.decode(payload)
24010
+ };
24011
+ default:
24012
+ return null;
24013
+ }
24014
+ } catch {
24015
+ return null;
24016
+ }
24017
+ }
24018
+ function buildAudioControlFrame(trackName, request) {
24019
+ const payload = sesame.v1.audio.AudioControlRequest.encode(request).finish();
24020
+ return WireProtocol.serialize(
24021
+ {
24022
+ type: sesame.v1.wire.FrameType.FRAME_TYPE_DATA,
24023
+ data: { dataType: sesame.v1.wire.DataType.DATA_TYPE_AUDIO_CONTROL, trackName }
24024
+ },
24025
+ payload
24026
+ );
24027
+ }
24028
+ function buildTransportControlFrame(trackName, request) {
24029
+ const payload = sesame.v1.sources.TransportControlRequest.encode(request).finish();
24030
+ return WireProtocol.serialize(
24031
+ {
24032
+ type: sesame.v1.wire.FrameType.FRAME_TYPE_DATA,
24033
+ data: { dataType: sesame.v1.wire.DataType.DATA_TYPE_TRANSPORT_CONTROL, trackName }
24034
+ },
24035
+ payload
24036
+ );
24037
+ }
23969
24038
  var PREFIX_SIZE = 4;
23970
24039
  var WireProtocol = class {
23971
24040
  /**
@@ -24447,6 +24516,7 @@ var Event = sesame.v1.rpc.Event;
24447
24516
  CodecType,
24448
24517
  CommandList,
24449
24518
  ConnectionState,
24519
+ DataType,
24450
24520
  EaseKind,
24451
24521
  Event,
24452
24522
  FrameHeader,
@@ -24461,8 +24531,11 @@ var Event = sesame.v1.rpc.Event;
24461
24531
  SesameConnection,
24462
24532
  StatusApi,
24463
24533
  WireProtocol,
24534
+ buildAudioControlFrame,
24535
+ buildTransportControlFrame,
24464
24536
  getLogger,
24465
24537
  log,
24538
+ parseDataFrame,
24466
24539
  sesame,
24467
24540
  setLogger,
24468
24541
  waitForEvent