@opendaw/studio-adapters 0.0.88 → 0.0.89

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.
@@ -1 +1 @@
1
- {"version":3,"file":"TransferAudioUnits.d.ts","sourceRoot":"","sources":["../../src/transfer/TransferAudioUnits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAG1D,yBAAiB,kBAAkB,CAAC;IAChC;;;;OAIG;IACI,MAAM,QAAQ,GAAI,gBAAgB,aAAa,CAAC,YAAY,CAAC,EAC3C,+EAA2E,eAAe,EAC1F,UAAS;QAEL,WAAW,CAAC,EAAE,GAAG,CAAC;QAClB,YAAY,CAAC,EAAE,OAAO,CAAC;QAEvB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,eAAe,CAAC,EAAE,OAAO,CAAC;KACxB,KAAG,aAAa,CAAC,YAAY,CAgB3D,CAAA;CACJ"}
1
+ {"version":3,"file":"TransferAudioUnits.d.ts","sourceRoot":"","sources":["../../src/transfer/TransferAudioUnits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAC,YAAY,EAAU,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAG1D,yBAAiB,kBAAkB,CAAC;IAChC;;;;OAIG;IACI,MAAM,QAAQ,GAAI,gBAAgB,aAAa,CAAC,YAAY,CAAC,EAC3C,+EAA2E,eAAe,EAC1F,UAAS;QACL,WAAW,CAAC,EAAE,GAAG,CAAC;QAClB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,eAAe,CAAC,EAAE,OAAO,CAAC;KACxB,KAAG,aAAa,CAAC,YAAY,CAwB3D,CAAA;CACJ"}
@@ -1,5 +1,6 @@
1
1
  import { asInstanceOf } from "@opendaw/lib-std";
2
- import { AudioUnitBox } from "@opendaw/studio-boxes";
2
+ import { IndexedBox } from "@opendaw/lib-box";
3
+ import { AudioUnitBox, RootBox } from "@opendaw/studio-boxes";
3
4
  import { TransferUtils } from "./TransferUtils";
4
5
  export var TransferAudioUnits;
5
6
  (function (TransferAudioUnits) {
@@ -18,9 +19,16 @@ export var TransferAudioUnits;
18
19
  }).boxes);
19
20
  const uuidMap = TransferUtils.generateMap(audioUnitBoxes, dependencies, rootBox.audioUnits.address.uuid, primaryAudioBusBox.address.uuid);
20
21
  TransferUtils.copyBoxes(uuidMap, targetBoxGraph, audioUnitBoxes, dependencies);
21
- TransferUtils.reorderAudioUnits(uuidMap, audioUnitBoxes, rootBox);
22
- return audioUnitBoxes.map(source => asInstanceOf(rootBox.graph
22
+ TransferUtils.reorderAudioUnits(uuidMap, audioUnitBoxes, rootBox, options.insertIndex);
23
+ const result = audioUnitBoxes.map(source => asInstanceOf(rootBox.graph
23
24
  .findBox(uuidMap.get(source.address.uuid).target)
24
25
  .unwrap("Target AudioUnit has not been copied"), AudioUnitBox));
26
+ if (options.deleteSource === true) {
27
+ const sourceRootBox = asInstanceOf(audioUnitBoxes[0].collection.targetVertex.unwrap().box, RootBox);
28
+ audioUnitBoxes.forEach(box => box.delete());
29
+ IndexedBox.collectIndexedBoxes(sourceRootBox.audioUnits, AudioUnitBox)
30
+ .forEach((box, index) => box.index.setValue(index));
31
+ }
32
+ return result;
25
33
  };
26
34
  })(TransferAudioUnits || (TransferAudioUnits = {}));
@@ -1,5 +1,5 @@
1
1
  import { ppqn } from "@opendaw/lib-dsp";
2
- import { SortedSet, UUID } from "@opendaw/lib-std";
2
+ import { int, SortedSet, UUID } from "@opendaw/lib-std";
3
3
  import { AudioUnitBox, RootBox } from "@opendaw/studio-boxes";
4
4
  import { Box, BoxGraph } from "@opendaw/lib-box";
5
5
  import { ProjectSkeleton } from "../project/ProjectSkeleton";
@@ -13,7 +13,7 @@ export declare namespace TransferUtils {
13
13
  const shouldExclude: (box: Box) => boolean;
14
14
  const generateMap: (audioUnitBoxes: ReadonlyArray<AudioUnitBox>, dependencies: ReadonlyArray<Box>, rootBoxUUID: UUID.Bytes, masterBusBoxUUID: UUID.Bytes) => SortedSet<UUID.Bytes, UUIDMapper>;
15
15
  const copyBoxes: (uuidMap: SortedSet<UUID.Bytes, UUIDMapper>, targetBoxGraph: BoxGraph, audioUnitBoxes: ReadonlyArray<AudioUnitBox>, dependencies: ReadonlyArray<Box>) => void;
16
- const reorderAudioUnits: (uuidMap: SortedSet<UUID.Bytes, UUIDMapper>, audioUnitBoxes: ReadonlyArray<AudioUnitBox>, rootBox: RootBox) => void;
16
+ const reorderAudioUnits: (uuidMap: SortedSet<UUID.Bytes, UUIDMapper>, audioUnitBoxes: ReadonlyArray<AudioUnitBox>, rootBox: RootBox, insertIndex?: int) => void;
17
17
  const extractRegions: (regionBoxes: ReadonlyArray<AnyRegionBox>, { boxGraph, mandatoryBoxes: { primaryAudioBusBox, rootBox } }: ProjectSkeleton, insertPosition?: ppqn) => void;
18
18
  }
19
19
  //# sourceMappingURL=TransferUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransferUtils.d.ts","sourceRoot":"","sources":["../../src/transfer/TransferUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EASH,SAAS,EACT,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,YAAY,EAAiC,OAAO,EAAW,MAAM,uBAAuB,CAAA;AACpG,OAAO,EAAU,GAAG,EAAE,QAAQ,EAA2B,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAC,YAAY,EAAgB,MAAM,WAAW,CAAA;AAGrD,yBAAiB,aAAa,CAAC;IAC3B,KAAY,UAAU,GAAG;QAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC;QAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAA;KAAE,CAAA;IAI5D,MAAM,wBAAwB,GAAI,KAAK,GAAG,KAAG,OACqB,CAAA;IAClE,MAAM,aAAa,GAAI,KAAK,GAAG,KAAG,OAA6D,CAAA;IAE/F,MAAM,WAAW,GAAI,gBAAgB,aAAa,CAAC,YAAY,CAAC,EAC3C,cAAc,aAAa,CAAC,GAAG,CAAC,EAChC,aAAa,IAAI,CAAC,KAAK,EACvB,kBAAkB,IAAI,CAAC,KAAK,KAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CA0B1F,CAAA;IAEM,MAAM,SAAS,GAAI,SAAS,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,EAC1C,gBAAgB,QAAQ,EACxB,gBAAgB,aAAa,CAAC,YAAY,CAAC,EAC3C,cAAc,aAAa,CAAC,GAAG,CAAC,KAAG,IAmC5D,CAAA;IAEM,MAAM,iBAAiB,GAAI,SAAS,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,EAC1C,gBAAgB,aAAa,CAAC,YAAY,CAAC,EAC3C,SAAS,OAAO,KAAG,IAWS,CAAA;IAEvD,MAAM,cAAc,GAAI,aAAa,aAAa,CAAC,YAAY,CAAC,EACxC,+DAA2D,eAAe,EAC1E,iBAAgB,IAAU,KAAG,IA8C3D,CAAA;CACJ"}
1
+ {"version":3,"file":"TransferUtils.d.ts","sourceRoot":"","sources":["../../src/transfer/TransferUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAMH,GAAG,EAMH,SAAS,EACT,IAAI,EACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,YAAY,EAAiC,OAAO,EAAW,MAAM,uBAAuB,CAAA;AACpG,OAAO,EAAU,GAAG,EAAE,QAAQ,EAA2B,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAC,YAAY,EAAgB,MAAM,WAAW,CAAA;AAErD,yBAAiB,aAAa,CAAC;IAC3B,KAAY,UAAU,GAAG;QAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC;QAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAA;KAAE,CAAA;IAI5D,MAAM,wBAAwB,GAAI,KAAK,GAAG,KAAG,OACqB,CAAA;IAClE,MAAM,aAAa,GAAI,KAAK,GAAG,KAAG,OAA6D,CAAA;IAE/F,MAAM,WAAW,GAAI,gBAAgB,aAAa,CAAC,YAAY,CAAC,EAC3C,cAAc,aAAa,CAAC,GAAG,CAAC,EAChC,aAAa,IAAI,CAAC,KAAK,EACvB,kBAAkB,IAAI,CAAC,KAAK,KAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CA0B1F,CAAA;IAEM,MAAM,SAAS,GAAI,SAAS,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,EAC1C,gBAAgB,QAAQ,EACxB,gBAAgB,aAAa,CAAC,YAAY,CAAC,EAC3C,cAAc,aAAa,CAAC,GAAG,CAAC,KAAG,IAmC5D,CAAA;IAEM,MAAM,iBAAiB,GAAI,SAAS,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,EAC1C,gBAAgB,aAAa,CAAC,YAAY,CAAC,EAC3C,SAAS,OAAO,EAChB,cAAc,GAAG,KAAG,IAYrD,CAAA;IAEM,MAAM,cAAc,GAAI,aAAa,aAAa,CAAC,YAAY,CAAC,EACxC,+DAA2D,eAAe,EAC1E,iBAAgB,IAAU,KAAG,IA8C3D,CAAA;CACJ"}
@@ -1,8 +1,7 @@
1
- import { Arrays, asInstanceOf, assert, ByteArrayInput, isInstanceOf, SetMultimap, UUID } from "@opendaw/lib-std";
1
+ import { Arrays, asInstanceOf, assert, ByteArrayInput, clamp, isDefined, isInstanceOf, SetMultimap, UUID } from "@opendaw/lib-std";
2
2
  import { AudioUnitBox, AuxSendBox, TrackBox } from "@opendaw/studio-boxes";
3
3
  import { IndexedBox, PointerField } from "@opendaw/lib-box";
4
4
  import { UnionBoxTypes } from "../unions";
5
- import { AudioUnitOrdering } from "../factories/AudioUnitOrdering";
6
5
  export var TransferUtils;
7
6
  (function (TransferUtils) {
8
7
  const isSameGraph = ({ graph: a }, { graph: b }) => a === b;
@@ -77,17 +76,19 @@ export var TransferUtils;
77
76
  });
78
77
  });
79
78
  };
80
- TransferUtils.reorderAudioUnits = (uuidMap, audioUnitBoxes, rootBox) => audioUnitBoxes
81
- .toSorted(compareIndex)
82
- .map(source => asInstanceOf(rootBox.graph
83
- .findBox(uuidMap.get(source.address.uuid).target)
84
- .unwrap("Target AudioUnit has not been copied"), AudioUnitBox))
85
- .forEach((target) => IndexedBox.collectIndexedBoxes(rootBox.audioUnits, AudioUnitBox).toSorted((a, b) => {
86
- const orderA = AudioUnitOrdering[a.type.getValue()];
87
- const orderB = AudioUnitOrdering[b.type.getValue()];
88
- const orderDifference = orderA - orderB;
89
- return orderDifference === 0 ? b === target ? -1 : 1 : orderDifference;
90
- }).forEach((box, index) => box.index.setValue(index)));
79
+ TransferUtils.reorderAudioUnits = (uuidMap, audioUnitBoxes, rootBox, insertIndex) => {
80
+ const targets = audioUnitBoxes
81
+ .toSorted(compareIndex)
82
+ .map(source => asInstanceOf(rootBox.graph
83
+ .findBox(uuidMap.get(source.address.uuid).target)
84
+ .unwrap("Target AudioUnit has not been copied"), AudioUnitBox));
85
+ const targetSet = new Set(targets);
86
+ const allAudioUnits = IndexedBox.collectIndexedBoxes(rootBox.audioUnits, AudioUnitBox);
87
+ const existing = allAudioUnits.filter(box => !targetSet.has(box));
88
+ const position = isDefined(insertIndex) ? clamp(insertIndex, 0, existing.length) : existing.length;
89
+ const ordered = [...existing.slice(0, position), ...targets, ...existing.slice(position)];
90
+ ordered.forEach((box, index) => box.index.setValue(index));
91
+ };
91
92
  TransferUtils.extractRegions = (regionBoxes, { boxGraph, mandatoryBoxes: { primaryAudioBusBox, rootBox } }, insertPosition = 0.0) => {
92
93
  assert(Arrays.satisfy(regionBoxes, isSameGraph), "Region smust be from the same BoxGraph");
93
94
  const regionBoxSet = new Set(regionBoxes);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendaw/studio-adapters",
3
- "version": "0.0.88",
3
+ "version": "0.0.89",
4
4
  "license": "LGPL-3.0-or-later",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -36,5 +36,5 @@
36
36
  "@opendaw/eslint-config": "^0.0.27",
37
37
  "@opendaw/typescript-config": "^0.0.29"
38
38
  },
39
- "gitHead": "d57cb3527c3cc9f4b17867cd214454a7349496a7"
39
+ "gitHead": "c569396a4055626274467ca2d51c8951504f1fb1"
40
40
  }