@opendaw/studio-adapters 0.0.31 → 0.0.32

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.d.ts CHANGED
@@ -14,7 +14,6 @@ export * from "./FieldAdapter";
14
14
  export * from "./IconSymbol";
15
15
  export * from "./IndexComparator";
16
16
  export * from "./IndexedBoxAdapterCollection";
17
- export * from "./ManadatoryBoxes";
18
17
  export * from "./NoteBroadcaster";
19
18
  export * from "./NoteLifeCycle";
20
19
  export * from "./NoteSignal";
@@ -23,7 +22,6 @@ export * from "./ParameterAdapterSet";
23
22
  export * from "./ParameterFieldAdapters";
24
23
  export * from "./PeakMeterProcessorOptions";
25
24
  export * from "./PianoModeAdapter";
26
- export * from "./ProjectDecoder";
27
25
  export * from "./RecordingProcessorOptions";
28
26
  export * from "./RingBuffer";
29
27
  export * from "./RootBoxAdapter";
@@ -69,6 +67,9 @@ export * from "./modular/modules/delay";
69
67
  export * from "./modular/modules/gain";
70
68
  export * from "./modular/modules/multiplier";
71
69
  export * from "./modular/user-interface";
70
+ export * from "./project/ProjectDecoder";
71
+ export * from "./project/ProjectMandatoryBoxes";
72
+ export * from "./project/ProjectSkeleton";
72
73
  export * from "./protocols";
73
74
  export * from "./sample/Sample";
74
75
  export * from "./sample/SampleLoader";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,oCAAoC,CAAA;AAClD,cAAc,cAAc,CAAA;AAC5B,cAAc,wBAAwB,CAAA;AACtC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oCAAoC,CAAA;AAClD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+CAA+C,CAAA;AAC7D,cAAc,iDAAiD,CAAA;AAC/D,cAAc,gDAAgD,CAAA;AAC9D,cAAc,gDAAgD,CAAA;AAC9D,cAAc,oDAAoD,CAAA;AAClE,cAAc,4DAA4D,CAAA;AAC1E,cAAc,4CAA4C,CAAA;AAC1D,cAAc,sCAAsC,CAAA;AACpD,cAAc,2DAA2D,CAAA;AACzE,cAAc,iDAAiD,CAAA;AAC/D,cAAc,4CAA4C,CAAA;AAC1D,cAAc,oDAAoD,CAAA;AAClE,cAAc,iDAAiD,CAAA;AAC/D,cAAc,8CAA8C,CAAA;AAC5D,cAAc,0DAA0D,CAAA;AACxE,cAAc,kDAAkD,CAAA;AAChE,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mCAAmC,CAAA;AACjD,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qCAAqC,CAAA;AACnD,cAAc,oCAAoC,CAAA;AAClD,cAAc,qCAAqC,CAAA;AACnD,cAAc,qDAAqD,CAAA;AACnE,cAAc,sDAAsD,CAAA;AACpE,cAAc,4CAA4C,CAAA;AAC1D,cAAc,sCAAsC,CAAA;AACpD,cAAc,uCAAuC,CAAA;AACrD,cAAc,yCAAyC,CAAA;AACvD,cAAc,wCAAwC,CAAA;AACtD,cAAc,yCAAyC,CAAA;AACvD,cAAc,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -16,7 +16,6 @@ export * from "./FieldAdapter";
16
16
  export * from "./IconSymbol";
17
17
  export * from "./IndexComparator";
18
18
  export * from "./IndexedBoxAdapterCollection";
19
- export * from "./ManadatoryBoxes";
20
19
  export * from "./NoteBroadcaster";
21
20
  export * from "./NoteLifeCycle";
22
21
  export * from "./NoteSignal";
@@ -25,7 +24,6 @@ export * from "./ParameterAdapterSet";
25
24
  export * from "./ParameterFieldAdapters";
26
25
  export * from "./PeakMeterProcessorOptions";
27
26
  export * from "./PianoModeAdapter";
28
- export * from "./ProjectDecoder";
29
27
  export * from "./RecordingProcessorOptions";
30
28
  export * from "./RingBuffer";
31
29
  export * from "./RootBoxAdapter";
@@ -71,6 +69,9 @@ export * from "./modular/modules/delay";
71
69
  export * from "./modular/modules/gain";
72
70
  export * from "./modular/modules/multiplier";
73
71
  export * from "./modular/user-interface";
72
+ export * from "./project/ProjectDecoder";
73
+ export * from "./project/ProjectMandatoryBoxes";
74
+ export * from "./project/ProjectSkeleton";
74
75
  export * from "./protocols";
75
76
  export * from "./sample/Sample";
76
77
  export * from "./sample/SampleLoader";
@@ -0,0 +1,10 @@
1
+ import { BoxGraph } from "@opendaw/lib-box";
2
+ import { ProjectSkeleton } from "./ProjectSkeleton";
3
+ import { ProjectMandatoryBoxes } from "./ProjectMandatoryBoxes";
4
+ export declare namespace ProjectDecoder {
5
+ const MAGIC_HEADER_OPEN = 1330660686;
6
+ const FORMAT_VERSION = 2;
7
+ const decode: (arrayBuffer: ArrayBufferLike) => ProjectSkeleton;
8
+ const findMandatoryBoxes: (boxGraph: BoxGraph) => ProjectMandatoryBoxes;
9
+ }
10
+ //# sourceMappingURL=ProjectDecoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectDecoder.d.ts","sourceRoot":"","sources":["../../src/project/ProjectDecoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAYzC,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAA;AAE7D,yBAAiB,cAAc,CAAC;IACrB,MAAM,iBAAiB,aAAa,CAAA;IACpC,MAAM,cAAc,IAAI,CAAA;IAExB,MAAM,MAAM,GAAI,aAAa,eAAe,KAAG,eAUrD,CAAA;IAEM,MAAM,kBAAkB,GAAI,UAAU,QAAQ,KAAG,qBA+BvD,CAAA;CAUJ"}
@@ -1,5 +1,5 @@
1
- import { AudioUnitBox, BoxIO } from "@opendaw/studio-boxes";
2
1
  import { BoxGraph } from "@opendaw/lib-box";
2
+ import { AudioUnitBox, BoxIO, RootBox } from "@opendaw/studio-boxes";
3
3
  import { assert, ByteArrayInput, isInstanceOf, Option, UUID } from "@opendaw/lib-std";
4
4
  import { AudioUnitType } from "@opendaw/studio-enums";
5
5
  export var ProjectDecoder;
@@ -23,7 +23,12 @@ export var ProjectDecoder;
23
23
  box.accept({
24
24
  visitRootBox: (box) => boxes.rootBox = box,
25
25
  visitTimelineBox: (box) => boxes.timelineBox = box,
26
- visitUserInterfaceBox: (box) => boxes.userInterfaceBox = box,
26
+ visitUserInterfaceBox: (box) => {
27
+ const root = box.root.targetVertex.unwrapOrNull()?.box;
28
+ if (isInstanceOf(root, RootBox)) {
29
+ boxes.userInterfaceBox = box;
30
+ }
31
+ },
27
32
  visitAudioUnitBox: (box) => {
28
33
  if (box.type.getValue() === AudioUnitType.Output) {
29
34
  boxes.masterAudioUnit = box;
@@ -1,9 +1,9 @@
1
1
  import { AudioBusBox, AudioUnitBox, RootBox, TimelineBox, UserInterfaceBox } from "@opendaw/studio-boxes";
2
- export type MandatoryBoxes = {
2
+ export type ProjectMandatoryBoxes = {
3
3
  rootBox: RootBox;
4
4
  timelineBox: TimelineBox;
5
5
  masterBusBox: AudioBusBox;
6
6
  masterAudioUnit: AudioUnitBox;
7
7
  userInterfaceBox: UserInterfaceBox;
8
8
  };
9
- //# sourceMappingURL=ManadatoryBoxes.d.ts.map
9
+ //# sourceMappingURL=ProjectMandatoryBoxes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectMandatoryBoxes.d.ts","sourceRoot":"","sources":["../../src/project/ProjectMandatoryBoxes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAC,MAAM,uBAAuB,CAAA;AAEvG,MAAM,MAAM,qBAAqB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,WAAW,CAAA;IACxB,YAAY,EAAE,WAAW,CAAA;IACzB,eAAe,EAAE,YAAY,CAAA;IAC7B,gBAAgB,EAAE,gBAAgB,CAAA;CACrC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { BoxGraph } from "@opendaw/lib-box";
2
+ import { BoxIO } from "@opendaw/studio-boxes";
3
+ import { ProjectMandatoryBoxes } from "../index";
4
+ export type ProjectSkeleton = {
5
+ boxGraph: BoxGraph<BoxIO.TypeMap>;
6
+ mandatoryBoxes: ProjectMandatoryBoxes;
7
+ };
8
+ //# sourceMappingURL=ProjectSkeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectSkeleton.d.ts","sourceRoot":"","sources":["../../src/project/ProjectSkeleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAA;AAC3C,OAAO,EAAC,qBAAqB,EAAC,MAAM,UAAU,CAAA;AAE9C,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,cAAc,EAAE,qBAAqB,CAAA;CACxC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendaw/studio-adapters",
3
- "version": "0.0.31",
3
+ "version": "0.0.32",
4
4
  "license": "LGPL-3.0-or-later",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -23,16 +23,16 @@
23
23
  "test": "echo \"No tests to run\""
24
24
  },
25
25
  "dependencies": {
26
- "@opendaw/lib-box": "^0.0.30",
27
- "@opendaw/lib-dsp": "^0.0.30",
28
- "@opendaw/lib-runtime": "^0.0.30",
29
- "@opendaw/lib-std": "^0.0.30",
30
- "@opendaw/studio-boxes": "^0.0.30",
31
- "@opendaw/studio-enums": "^0.0.21"
26
+ "@opendaw/lib-box": "^0.0.31",
27
+ "@opendaw/lib-dsp": "^0.0.31",
28
+ "@opendaw/lib-runtime": "^0.0.31",
29
+ "@opendaw/lib-std": "^0.0.31",
30
+ "@opendaw/studio-boxes": "^0.0.31",
31
+ "@opendaw/studio-enums": "^0.0.22"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@opendaw/eslint-config": "^0.0.19",
35
35
  "@opendaw/typescript-config": "^0.0.20"
36
36
  },
37
- "gitHead": "2fff74bbce57bd2c3c634b1cb735cccdaff2ab15"
37
+ "gitHead": "c1718ba63c1f99d28d6a5178c39e96c89b5bb364"
38
38
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"ManadatoryBoxes.d.ts","sourceRoot":"","sources":["../src/ManadatoryBoxes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAC,MAAM,uBAAuB,CAAA;AAEvG,MAAM,MAAM,cAAc,GAAG;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,WAAW,CAAA;IACxB,YAAY,EAAE,WAAW,CAAA;IACzB,eAAe,EAAE,YAAY,CAAA;IAC7B,gBAAgB,EAAE,gBAAgB,CAAA;CACrC,CAAA"}
@@ -1,14 +0,0 @@
1
- import { BoxIO } from "@opendaw/studio-boxes";
2
- import { BoxGraph } from "@opendaw/lib-box";
3
- import { MandatoryBoxes } from "./ManadatoryBoxes";
4
- export declare namespace ProjectDecoder {
5
- const MAGIC_HEADER_OPEN = 1330660686;
6
- const FORMAT_VERSION = 2;
7
- type Skeleton = {
8
- boxGraph: BoxGraph<BoxIO.TypeMap>;
9
- mandatoryBoxes: MandatoryBoxes;
10
- };
11
- const decode: (arrayBuffer: ArrayBufferLike) => Skeleton;
12
- const findMandatoryBoxes: (boxGraph: BoxGraph) => MandatoryBoxes;
13
- }
14
- //# sourceMappingURL=ProjectDecoder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProjectDecoder.d.ts","sourceRoot":"","sources":["../src/ProjectDecoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,EAKR,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAA;AAGhD,yBAAiB,cAAc,CAAC;IACrB,MAAM,iBAAiB,aAAa,CAAA;IACpC,MAAM,cAAc,IAAI,CAAA;IAE/B,KAAY,QAAQ,GAAG;QACnB,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,cAAc,EAAE,cAAc,CAAA;KACjC,CAAA;IAEM,MAAM,MAAM,GAAI,aAAa,eAAe,KAAG,QAUrD,CAAA;IAEM,MAAM,kBAAkB,GAAI,UAAU,QAAQ,KAAG,cA0BvD,CAAA;CAUJ"}