@opendaw/studio-core 0.0.102 → 0.0.103
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/OfflineEngineRenderer.d.ts +3 -1
- package/dist/OfflineEngineRenderer.d.ts.map +1 -1
- package/dist/OfflineEngineRenderer.js +10 -2
- package/dist/capture/CaptureMidi.js +1 -1
- package/dist/capture/RecordAutomation.d.ts +6 -0
- package/dist/capture/RecordAutomation.d.ts.map +1 -0
- package/dist/capture/RecordAutomation.js +139 -0
- package/dist/capture/Recording.d.ts +3 -0
- package/dist/capture/Recording.d.ts.map +1 -1
- package/dist/capture/Recording.js +16 -36
- package/dist/capture/index.d.ts +1 -0
- package/dist/capture/index.d.ts.map +1 -1
- package/dist/capture/index.js +1 -0
- package/dist/offline-engine.js +1 -1
- package/dist/offline-engine.js.map +4 -4
- package/dist/processors.js +8 -8
- package/dist/processors.js.map +3 -3
- package/dist/project/Project.d.ts +1 -0
- package/dist/project/Project.d.ts.map +1 -1
- package/dist/project/Project.js +7 -5
- package/dist/project/ProjectApi.d.ts +3 -1
- package/dist/project/ProjectApi.d.ts.map +1 -1
- package/dist/project/ProjectApi.js +26 -16
- package/dist/ui/clipboard/ClipboardManager.d.ts.map +1 -1
- package/dist/ui/clipboard/ClipboardManager.js +34 -2
- package/dist/ui/clipboard/types/AudioUnitsClipboardHandler.d.ts.map +1 -1
- package/dist/ui/clipboard/types/AudioUnitsClipboardHandler.js +6 -0
- package/dist/ui/clipboard/types/RegionsClipboardHandler.d.ts.map +1 -1
- package/dist/ui/clipboard/types/RegionsClipboardHandler.js +4 -0
- package/dist/ui/menu/MenuItems.d.ts +2 -2
- package/dist/ui/menu/MenuItems.d.ts.map +1 -1
- package/dist/ui/timeline/RegionClipResolver.d.ts +2 -2
- package/dist/ui/timeline/RegionClipResolver.d.ts.map +1 -1
- package/dist/ui/timeline/RegionClipResolver.js +40 -37
- package/dist/ui/timeline/RegionClipResolver.test.js +400 -0
- package/dist/ysync/YService.d.ts.map +1 -1
- package/dist/ysync/YService.js +1 -2
- package/package.json +15 -15
|
@@ -50,6 +50,7 @@ export declare class Project implements BoxAdaptersContext, Terminable, Terminab
|
|
|
50
50
|
startAudioWorklet(restart?: RestartWorklet, options?: ProcessorOptions): EngineWorklet;
|
|
51
51
|
handleCpuOverload(): void;
|
|
52
52
|
startRecording(countIn?: boolean): void;
|
|
53
|
+
stopRecording(): void;
|
|
53
54
|
follow(box: UserInterfaceBox): void;
|
|
54
55
|
own<T extends Terminable>(terminable: T): T;
|
|
55
56
|
ownAll<T extends Terminable>(...terminables: Array<T>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Project.d.ts","sourceRoot":"","sources":["../../src/project/Project.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Project.d.ts","sourceRoot":"","sources":["../../src/project/Project.ts"],"names":[],"mappings":"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"}
|
package/dist/project/Project.js
CHANGED
|
@@ -156,6 +156,7 @@ export class Project {
|
|
|
156
156
|
}
|
|
157
157
|
Recording.start(this, countIn).finally();
|
|
158
158
|
}
|
|
159
|
+
stopRecording() { this.engine.stopRecording(); }
|
|
159
160
|
follow(box) {
|
|
160
161
|
this.userEditingManager.follow(box);
|
|
161
162
|
this.midiLearning.followUser(box.midiControllers);
|
|
@@ -215,6 +216,7 @@ export class Project {
|
|
|
215
216
|
capture.clearRecordedRegions();
|
|
216
217
|
}), false);
|
|
217
218
|
this.engine.stop(true);
|
|
219
|
+
this.engine.setPosition(Recording.wasStartingAt());
|
|
218
220
|
const subscription = this.engine.isRecording.catchupAndSubscribe(owner => {
|
|
219
221
|
if (!owner.getValue()) {
|
|
220
222
|
queueMicrotask(() => subscription.terminate());
|
|
@@ -279,11 +281,11 @@ export class Project {
|
|
|
279
281
|
}
|
|
280
282
|
this.#userCreatedSamples.removeByKey(uuid);
|
|
281
283
|
const autoDelete = StudioPreferences.settings.storage["auto-delete-orphaned-samples"];
|
|
282
|
-
if (!autoDelete &&
|
|
283
|
-
headline: "
|
|
284
|
-
message: "The sample is no longer used.
|
|
285
|
-
approveText: "
|
|
286
|
-
cancelText: "
|
|
284
|
+
if (!autoDelete && await RuntimeNotifier.approve({
|
|
285
|
+
headline: "Keep Sample?",
|
|
286
|
+
message: "The sample is no longer used. Do you want to keep it in storage? Deletion of samples cannot be undone!",
|
|
287
|
+
approveText: "Keep",
|
|
288
|
+
cancelText: "Delete"
|
|
287
289
|
})) {
|
|
288
290
|
return;
|
|
289
291
|
}
|
|
@@ -59,7 +59,9 @@ export declare class ProjectApi {
|
|
|
59
59
|
createNotStretchedClip(props: AudioContentFactory.NotStretchedProps & AudioContentFactory.Clip): AudioClipBox;
|
|
60
60
|
createNotStretchedRegion(props: AudioContentFactory.NotStretchedProps & AudioContentFactory.Region): AudioRegionBox;
|
|
61
61
|
createNoteClip(trackBox: TrackBox, clipIndex: int, { name, hue }?: ClipRegionOptions): NoteClipBox;
|
|
62
|
-
duplicateRegion<R extends AnyRegionBoxAdapter>(region: R
|
|
62
|
+
duplicateRegion<R extends AnyRegionBoxAdapter>(region: R, options?: {
|
|
63
|
+
findFreeSpace?: boolean;
|
|
64
|
+
}): Option<R>;
|
|
63
65
|
quantiseNotes(collection: NoteEventCollectionBox, { positionQuantisation, durationQuantisation }: QuantiseNotesOptions): void;
|
|
64
66
|
createValueClip(trackBox: TrackBox, clipIndex: int, { name, hue }?: ClipRegionOptions): ValueClipBox;
|
|
65
67
|
createNoteRegion({ trackBox, position, duration, loopOffset, loopDuration, eventOffset, eventCollection, mute, name, hue }: NoteRegionParams): NoteRegionBox;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectApi.d.ts","sourceRoot":"","sources":["../../src/project/ProjectApi.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ProjectApi.d.ts","sourceRoot":"","sources":["../../src/project/ProjectApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,OAAO,EAGP,KAAK,EACL,GAAG,EAIH,QAAQ,EACR,MAAM,EAIN,YAAY,EAEf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,IAAI,EAAO,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAW,KAAK,EAAc,YAAY,EAAC,MAAM,kBAAkB,CAAA;AAC1E,OAAO,EAAgB,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EACH,YAAY,EACZ,cAAc,EACd,YAAY,EAGZ,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,QAAQ,EACR,YAAY,EAEZ,cAAc,EACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACH,mBAAmB,EACnB,mBAAmB,EAInB,iBAAiB,EACjB,gCAAgC,EAChC,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EAGpB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAA;AACtC,OAAO,EAAC,mBAAmB,EAAC,MAAM,SAAS,CAAA;AAE3C,MAAM,MAAM,iBAAiB,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,KAAK,EAAE;QAAE,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAA;KAAE,CAAA;IAC7D,QAAQ,EAAE,IAAI,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;IACd,KAAK,EAAE,GAAG,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,MAAM,CAAC,EAAE,GAAG,CAAA;CACf,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE,IAAI,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;IACd,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,YAAY,CAAC,EAAE,IAAI,CAAA;IACnB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,eAAe,CAAC,EAAE,sBAAsB,CAAA;IACxC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IAC/B,oBAAoB,CAAC,EAAE,IAAI,CAAA;IAC3B,oBAAoB,CAAC,EAAE,IAAI,CAAA;CAC9B,CAAA;AAGD,qBAAa,UAAU;;gBAGP,OAAO,EAAE,OAAO;IAE5B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK3B,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,YAAY;IAIhE,6BAA6B,CAAC,QAAQ,EAAE,gCAAgC,CAAC,mBAAmB,CAAC,GAAG,YAAY;IAI5G,gBAAgB,CAAC,CAAC,EAAE,IAAI,SAAS,aAAa,EAC1C,EAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAC,EAAE,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,EACzE,OAAO,GAAE,iBAAiB,CAAC,CAAC,CAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC;IAoBvE,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,iBAAiB,CAAC,aAAa,CAAC;IAI3F,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,EACjC,UAAU,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC;IAqBxE,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,GAAE,GAA6B,GAAG,SAAS;IAI5H,eAAe,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,GAAE,GAA6B,GAAG,QAAQ;IAIjG,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,GAAE,GAA6B,GAAG,QAAQ;IAIlG,qBAAqB,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,GAAE,GAA6B,GAAG,QAAQ;IAI3I,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,CAAC,kBAAkB,GAAG,mBAAmB,CAAC,IAAI,GAAG,YAAY;IAI/G,yBAAyB,CAAC,KAAK,EAAE,mBAAmB,CAAC,kBAAkB,GAAG,mBAAmB,CAAC,MAAM,GAAG,cAAc;IAIrH,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,IAAI,GAAG,YAAY;IAIjH,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,MAAM,GAAG,cAAc;IAIvH,sBAAsB,CAAC,KAAK,EAAE,mBAAmB,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,IAAI,GAAG,YAAY;IAI7G,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,MAAM,GAAG,cAAc;IAInH,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,EAAC,IAAI,EAAE,GAAG,EAAC,GAAE,iBAAsB,GAAG,WAAW;IAgBpG,eAAe,CAAC,CAAC,SAAS,mBAAmB,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IA2B3G,aAAa,CAAC,UAAU,EAAE,sBAAsB,EAClC,EAAC,oBAAoB,EAAE,oBAAoB,EAAC,EAAE,oBAAoB,GAAG,IAAI;IAoBvF,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,EAAC,IAAI,EAAE,GAAG,EAAC,GAAE,iBAAsB,GAAG,YAAY;IAgBtG,gBAAgB,CAAC,EACI,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EACtD,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAChD,EAAE,gBAAgB,GAAG,aAAa;IAoBpD,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAC,IAAI,EAAE,GAAG,EAAC,GAAE,iBAAsB;IAkCzG,eAAe,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAC,EAAE,eAAe,GAAG,YAAY;IAe1G,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;CA+BpD"}
|
|
@@ -109,26 +109,36 @@ export class ProjectApi {
|
|
|
109
109
|
box.events.refer(events.owners);
|
|
110
110
|
});
|
|
111
111
|
}
|
|
112
|
-
duplicateRegion(region) {
|
|
112
|
+
duplicateRegion(region, options) {
|
|
113
113
|
if (region.trackBoxAdapter.isEmpty()) {
|
|
114
114
|
return Option.None;
|
|
115
115
|
}
|
|
116
116
|
const track = region.trackBoxAdapter.unwrap();
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
117
|
+
if (options?.findFreeSpace === true) {
|
|
118
|
+
let insert = region.complete;
|
|
119
|
+
for (const { position, complete } of track.regions.collection.iterateFrom(region.complete)) {
|
|
120
|
+
if (insert + region.duration <= position) {
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
insert = complete;
|
|
124
|
+
}
|
|
125
|
+
return Option.wrap(region.copyTo({
|
|
126
|
+
position: insert,
|
|
127
|
+
consolidate: true
|
|
128
|
+
}));
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
const clearFrom = region.complete;
|
|
132
|
+
const clearTo = region.complete + region.duration;
|
|
133
|
+
const targetTrack = this.#project.overlapResolver.resolveTargetTrack(track, clearFrom, clearTo);
|
|
134
|
+
const solver = this.#project.overlapResolver.fromRange(targetTrack, clearFrom, clearTo);
|
|
135
|
+
const duplicate = region.copyTo({
|
|
136
|
+
position: region.complete,
|
|
137
|
+
consolidate: true
|
|
138
|
+
});
|
|
139
|
+
solver();
|
|
140
|
+
return Option.wrap(duplicate);
|
|
141
|
+
}
|
|
132
142
|
}
|
|
133
143
|
quantiseNotes(collection, { positionQuantisation, durationQuantisation }) {
|
|
134
144
|
if (isAbsent(positionQuantisation) && isAbsent(durationQuantisation)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClipboardManager.d.ts","sourceRoot":"","sources":["../../../src/ui/clipboard/ClipboardManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAa,MAAM,kBAAkB,CAAA;AASzE,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACpD,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAChB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CACjC,CAAA;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,cAAc;IACtD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;IAChC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;IACxD,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;IACjB,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;IAChB,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAA;CACrC;AAED,yBAAiB,gBAAgB,CAAC;IAC9B,KAAK,QAAQ,GAAG,cAAc,CAAA;IA0B9B,MAAM,CAAC,MAAM,OAAO,GAAI,CAAC,SAAS,QAAQ,EAAE,SAAS,WAAW,EAAE,SAAS,gBAAgB,CAAC,CAAC,CAAC,KAAG,
|
|
1
|
+
{"version":3,"file":"ClipboardManager.d.ts","sourceRoot":"","sources":["../../../src/ui/clipboard/ClipboardManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAa,MAAM,kBAAkB,CAAA;AASzE,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACpD,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAChB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CACjC,CAAA;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,cAAc;IACtD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;IAChC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;IACxD,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;IACjB,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;IAChB,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAA;CACrC;AAED,yBAAiB,gBAAgB,CAAC;IAC9B,KAAK,QAAQ,GAAG,cAAc,CAAA;IA0B9B,MAAM,CAAC,MAAM,OAAO,GAAI,CAAC,SAAS,QAAQ,EAAE,SAAS,WAAW,EAAE,SAAS,gBAAgB,CAAC,CAAC,CAAC,KAAG,YAsHhG,CAAA;;CACJ"}
|
|
@@ -37,16 +37,23 @@ export var ClipboardManager;
|
|
|
37
37
|
});
|
|
38
38
|
};
|
|
39
39
|
ClipboardManager.install = (element, handler) => {
|
|
40
|
+
const noClient = { clientX: 0, clientY: 0 };
|
|
40
41
|
const writeEntry = (entry) => {
|
|
41
42
|
fallbackEntry = Option.wrap(entry);
|
|
42
43
|
navigator.clipboard?.writeText(encode(entry)).catch(() => { });
|
|
43
44
|
};
|
|
44
45
|
const performCopy = () => {
|
|
46
|
+
if (!handler.canCopy(noClient)) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
45
49
|
const entry = handler.copy();
|
|
46
50
|
entry.ifSome(writeEntry);
|
|
47
51
|
return entry.nonEmpty();
|
|
48
52
|
};
|
|
49
53
|
const performCut = () => {
|
|
54
|
+
if (!handler.canCut(noClient)) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
50
57
|
const entry = handler.cut();
|
|
51
58
|
entry.ifSome(writeEntry);
|
|
52
59
|
return entry.nonEmpty();
|
|
@@ -57,17 +64,33 @@ export var ClipboardManager;
|
|
|
57
64
|
const text = Option.wrap(rawText);
|
|
58
65
|
const entry = text.flatMap(decode);
|
|
59
66
|
if (entry.nonEmpty()) {
|
|
67
|
+
if (!handler.canPaste(entry.unwrap(), noClient)) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
60
70
|
handler.paste(entry.unwrap());
|
|
61
71
|
}
|
|
62
72
|
else {
|
|
63
|
-
fallbackEntry.ifSome(entry =>
|
|
73
|
+
fallbackEntry.ifSome(entry => {
|
|
74
|
+
if (!handler.canPaste(entry, noClient)) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
handler.paste(entry);
|
|
78
|
+
});
|
|
64
79
|
}
|
|
65
80
|
}
|
|
66
81
|
catch (_error) {
|
|
67
|
-
fallbackEntry.ifSome(entry =>
|
|
82
|
+
fallbackEntry.ifSome(entry => {
|
|
83
|
+
if (!handler.canPaste(entry, noClient)) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
handler.paste(entry);
|
|
87
|
+
});
|
|
68
88
|
}
|
|
69
89
|
};
|
|
70
90
|
return Terminable.many(Events.subscribe(element, "copy", (event) => {
|
|
91
|
+
if (!handler.canCopy(noClient)) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
71
94
|
handler.copy().ifSome(entry => {
|
|
72
95
|
event.preventDefault();
|
|
73
96
|
event.stopPropagation();
|
|
@@ -76,6 +99,9 @@ export var ClipboardManager;
|
|
|
76
99
|
event.clipboardData?.setData("text/plain", encoded);
|
|
77
100
|
});
|
|
78
101
|
}), Events.subscribe(element, "cut", (event) => {
|
|
102
|
+
if (!handler.canCut(noClient)) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
79
105
|
handler.cut().ifSome(entry => {
|
|
80
106
|
event.preventDefault();
|
|
81
107
|
event.stopPropagation();
|
|
@@ -90,11 +116,17 @@ export var ClipboardManager;
|
|
|
90
116
|
const text = event.clipboardData?.getData("text/plain") ?? "";
|
|
91
117
|
const entry = decode(text);
|
|
92
118
|
if (entry.nonEmpty()) {
|
|
119
|
+
if (!handler.canPaste(entry.unwrap(), noClient)) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
93
122
|
event.preventDefault();
|
|
94
123
|
handler.paste(entry.unwrap());
|
|
95
124
|
}
|
|
96
125
|
else {
|
|
97
126
|
fallbackEntry.ifSome(entry => {
|
|
127
|
+
if (!handler.canPaste(entry, noClient)) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
98
130
|
event.preventDefault();
|
|
99
131
|
handler.paste(entry);
|
|
100
132
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioUnitsClipboardHandler.d.ts","sourceRoot":"","sources":["../../../../src/ui/clipboard/types/AudioUnitsClipboardHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,MAAM,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAClF,OAAO,EAAM,UAAU,EAAE,QAAQ,EAAa,MAAM,kBAAkB,CAAA;AAWtE,OAAO,EAAC,mBAAmB,EAAqB,cAAc,EAAE,WAAW,EAAC,MAAM,0BAA0B,CAAA;AAC5G,OAAO,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,qBAAqB,CAAA;AAGpE,KAAK,mBAAmB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAA;AAMxD,yBAAiB,mBAAmB,CAAC;IACjC,KAAY,OAAO,GAAG;QAClB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QACtC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;QAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;QAC3B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;QACvC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAA;QACtC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAA;KACrE,CAAA;IAaM,MAAM,aAAa,GAAI,yFAOG,OAAO,KAAG,gBAAgB,CAAC,mBAAmB,CAsE9E,CAAA;
|
|
1
|
+
{"version":3,"file":"AudioUnitsClipboardHandler.d.ts","sourceRoot":"","sources":["../../../../src/ui/clipboard/types/AudioUnitsClipboardHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,MAAM,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAClF,OAAO,EAAM,UAAU,EAAE,QAAQ,EAAa,MAAM,kBAAkB,CAAA;AAWtE,OAAO,EAAC,mBAAmB,EAAqB,cAAc,EAAE,WAAW,EAAC,MAAM,0BAA0B,CAAA;AAC5G,OAAO,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,qBAAqB,CAAA;AAGpE,KAAK,mBAAmB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAA;AAMxD,yBAAiB,mBAAmB,CAAC;IACjC,KAAY,OAAO,GAAG;QAClB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QACtC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;QAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;QAC3B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;QACvC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAA;QACtC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAA;KACrE,CAAA;IAaM,MAAM,aAAa,GAAI,yFAOG,OAAO,KAAG,gBAAgB,CAAC,mBAAmB,CAsE9E,CAAA;CAmHJ"}
|
|
@@ -153,6 +153,9 @@ export var AudioUnitsClipboard;
|
|
|
153
153
|
if (pointer.pointerType === Pointers.AudioOutput) {
|
|
154
154
|
return address.map(addr => addr.moveTo(primaryBusAddress.uuid));
|
|
155
155
|
}
|
|
156
|
+
if (pointer.pointerType === Pointers.MIDIDevice) {
|
|
157
|
+
return Option.wrap(rootBoxAdapter.box.outputMidiDevices.address);
|
|
158
|
+
}
|
|
156
159
|
return Option.None;
|
|
157
160
|
},
|
|
158
161
|
excludeBox: box => box.name === AudioUnitBox.ClassName || box.name === AudioBusBox.ClassName || box.name === RootBox.ClassName
|
|
@@ -172,6 +175,9 @@ export var AudioUnitsClipboard;
|
|
|
172
175
|
if (pointer.pointerType === Pointers.AudioOutput) {
|
|
173
176
|
return address.map(addr => addr.moveTo(primaryBusAddress.uuid));
|
|
174
177
|
}
|
|
178
|
+
if (pointer.pointerType === Pointers.MIDIDevice) {
|
|
179
|
+
return Option.wrap(rootBox.outputMidiDevices.address);
|
|
180
|
+
}
|
|
175
181
|
return Option.None;
|
|
176
182
|
}
|
|
177
183
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegionsClipboardHandler.d.ts","sourceRoot":"","sources":["../../../../src/ui/clipboard/types/RegionsClipboardHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAO,MAAM,kBAAkB,CAAA;AAC9G,OAAO,EAAM,UAAU,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAErC,OAAO,EACH,mBAAmB,EACnB,WAAW,EAEX,eAAe,EAGlB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,qBAAqB,CAAA;AAEpE,OAAO,EAAC,qBAAqB,EAAC,MAAM,sCAAsC,CAAA;AAE1E,KAAK,gBAAgB,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;AAcjD,yBAAiB,gBAAgB,CAAC;IAC9B,KAAY,OAAO,GAAG;QAClB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QACtC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;QACpC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QACrC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;QAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAA;QAClD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;QAC3B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;QACjC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAA;QAC5D,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAA;QAC3D,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAA;KAClD,CAAA;IA+BM,MAAM,aAAa,GAAI,kIAWG,OAAO,KAAG,gBAAgB,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"RegionsClipboardHandler.d.ts","sourceRoot":"","sources":["../../../../src/ui/clipboard/types/RegionsClipboardHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAO,MAAM,kBAAkB,CAAA;AAC9G,OAAO,EAAM,UAAU,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAErC,OAAO,EACH,mBAAmB,EACnB,WAAW,EAEX,eAAe,EAGlB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,qBAAqB,CAAA;AAEpE,OAAO,EAAC,qBAAqB,EAAC,MAAM,sCAAsC,CAAA;AAE1E,KAAK,gBAAgB,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;AAcjD,yBAAiB,gBAAgB,CAAC;IAC9B,KAAY,OAAO,GAAG;QAClB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QACtC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;QACpC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QACrC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;QAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAA;QAClD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;QAC3B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;QACjC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAA;QAC5D,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAA;QAC3D,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAA;KAClD,CAAA;IA+BM,MAAM,aAAa,GAAI,kIAWG,OAAO,KAAG,gBAAgB,CAAC,gBAAgB,CAoG3E,CAAA;CACJ"}
|
|
@@ -116,6 +116,10 @@ export var RegionsClipboard;
|
|
|
116
116
|
return address.flatMap(addr => sourceTrackToTarget.opt(addr.uuid)
|
|
117
117
|
.map(({ target }) => target.box.regions.address));
|
|
118
118
|
}
|
|
119
|
+
if (pointer.pointerType === Pointers.ClipCollection) {
|
|
120
|
+
return address.flatMap(addr => sourceTrackToTarget.opt(addr.uuid)
|
|
121
|
+
.map(({ target }) => target.box.clips.address));
|
|
122
|
+
}
|
|
119
123
|
return Option.None;
|
|
120
124
|
},
|
|
121
125
|
modifyBox: (box) => {
|
|
@@ -40,9 +40,9 @@ export declare class MenuItem<DATA extends MenuData = MenuData> {
|
|
|
40
40
|
#private;
|
|
41
41
|
static root(): MenuItem<MenuRootData>;
|
|
42
42
|
static header(properties: Omit<HeaderMenuData, "type"> & MenuItemOptions): MenuItem<{
|
|
43
|
-
color?: Color | undefined;
|
|
44
43
|
label: string;
|
|
45
44
|
icon: IconSymbol;
|
|
45
|
+
color?: Color | undefined;
|
|
46
46
|
hidden?: boolean;
|
|
47
47
|
selectable?: boolean;
|
|
48
48
|
separatorBefore?: boolean;
|
|
@@ -60,8 +60,8 @@ export declare class MenuItem<DATA extends MenuData = MenuData> {
|
|
|
60
60
|
}>;
|
|
61
61
|
static inputValue(properties: Omit<InputValueMenuData, "type"> & MenuItemOptions): MenuItem<{
|
|
62
62
|
name: string;
|
|
63
|
-
color?: Color | undefined;
|
|
64
63
|
icon: IconSymbol;
|
|
64
|
+
color?: Color | undefined;
|
|
65
65
|
valueMapping: ValueMapping<number>;
|
|
66
66
|
stringMapping: StringMapping<number>;
|
|
67
67
|
model: MutableObservableValue<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItems.d.ts","sourceRoot":"","sources":["../../../src/ui/menu/MenuItems.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,EACL,sBAAsB,EAEtB,SAAS,EACT,aAAa,EACb,UAAU,EACV,YAAY,EACf,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAEhD,MAAM,MAAM,eAAe,GAAG;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC5B,CAAA;AAED,QAAA,MAAM,IAAI;;CAA0B,CAAA;AAEpC,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,CAAC,EAAE,KAAK,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACzC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,UAAU,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC7B,IAAI,EAAE,aAAa,CAAA;IACnB,IAAI,EAAE,UAAU,CAAA;IAChB,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;IAClC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACpC,KAAK,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,aAAa,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,OAAO,IAAI,CAAA;AAEtC,MAAM,MAAM,QAAQ,GAAG,CAAC,eAAe,GAAG,eAAe,CAAC,GAAG,YAAY,GAAG,cAAc,GAAG,kBAAkB,CAAA;AAE/G,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,GAAG,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;CACvC;AAED,qBAAa,QAAQ,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ;;IAClD,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC,YAAY,CAAC;IAErC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,eAAe;
|
|
1
|
+
{"version":3,"file":"MenuItems.d.ts","sourceRoot":"","sources":["../../../src/ui/menu/MenuItems.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ export type ClipTask = {
|
|
|
20
20
|
region: AnyRegionBoxAdapter;
|
|
21
21
|
position: ppqn;
|
|
22
22
|
};
|
|
23
|
-
interface Mask extends Event {
|
|
23
|
+
export interface Mask extends Event {
|
|
24
24
|
complete: ppqn;
|
|
25
25
|
}
|
|
26
26
|
export declare class RegionClipResolver {
|
|
@@ -32,10 +32,10 @@ export declare class RegionClipResolver {
|
|
|
32
32
|
static fromRange(track: TrackBoxAdapter, position: ppqn, complete: ppqn): Exec;
|
|
33
33
|
static validateTracks(tracks: ReadonlyArray<TrackBoxAdapter>): void;
|
|
34
34
|
static validateTrack(track: TrackBoxAdapter): void;
|
|
35
|
+
static createTasksFromMasks(regionIterator: Iterable<AnyRegionBoxAdapter>, maxComplete: ppqn, masks: ReadonlyArray<Mask>, showOrigin: boolean): ReadonlyArray<ClipTask>;
|
|
35
36
|
static sortAndJoinMasks(masks: ReadonlyArray<Mask>): ReadonlyArray<Mask>;
|
|
36
37
|
constructor(strategy: RegionModifyStrategies, ground: TrackBoxAdapter);
|
|
37
38
|
addMask(region: AnyRegionBoxAdapter): void;
|
|
38
39
|
addMaskRange(position: ppqn, complete: ppqn): void;
|
|
39
40
|
}
|
|
40
|
-
export {};
|
|
41
41
|
//# sourceMappingURL=RegionClipResolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegionClipResolver.d.ts","sourceRoot":"","sources":["../../../src/ui/timeline/RegionClipResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,IAAI,EAAE,GAAG,EAAa,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAC,KAAK,EAAmB,IAAI,EAAW,MAAM,kBAAkB,CAAA;AACvE,OAAO,EACH,mBAAmB,EAGnB,eAAe,EAGlB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAE7C,MAAM,MAAM,QAAQ,GAAG;IACnB,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,EAAE,mBAAmB,CAAA;CAC9B,GAAG;IACA,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE,mBAAmB,CAAA;IAC3B,KAAK,EAAE,IAAI,CAAA;IACX,GAAG,EAAE,IAAI,CAAA;CACZ,GAAG;IACA,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,mBAAmB,CAAA;IAC3B,QAAQ,EAAE,IAAI,CAAA;CACjB,GAAG;IACA,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE,mBAAmB,CAAA;IAC3B,QAAQ,EAAE,IAAI,CAAA;CACjB,CAAA;AAED,
|
|
1
|
+
{"version":3,"file":"RegionClipResolver.d.ts","sourceRoot":"","sources":["../../../src/ui/timeline/RegionClipResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,IAAI,EAAE,GAAG,EAAa,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAC,KAAK,EAAmB,IAAI,EAAW,MAAM,kBAAkB,CAAA;AACvE,OAAO,EACH,mBAAmB,EAGnB,eAAe,EAGlB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAE7C,MAAM,MAAM,QAAQ,GAAG;IACnB,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,EAAE,mBAAmB,CAAA;CAC9B,GAAG;IACA,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE,mBAAmB,CAAA;IAC3B,KAAK,EAAE,IAAI,CAAA;IACX,GAAG,EAAE,IAAI,CAAA;CACZ,GAAG;IACA,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,mBAAmB,CAAA;IAC3B,QAAQ,EAAE,IAAI,CAAA;CACjB,GAAG;IACA,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE,mBAAmB,CAAA;IAC3B,QAAQ,EAAE,IAAI,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,IAAK,SAAQ,KAAK;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAC;AAOpD,qBAAa,kBAAkB;;IAC3B,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,EACtC,QAAQ,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAC5C,QAAQ,EAAE,sBAAsB,EAChC,UAAU,GAAE,GAAO,GAAG;QAAE,WAAW,EAAE,IAAI,CAAC;QAAC,aAAa,EAAE,aAAa,CAAA;KAAE;IAe9F,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,IAAI;IAO9E,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI;IAInE,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAuBlD,MAAM,CAAC,oBAAoB,CAAC,cAAc,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAC7C,WAAW,EAAE,IAAI,EACjB,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAC1B,UAAU,EAAE,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC;IA2BzE,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC;gBA+B5D,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,eAAe;IAMrE,OAAO,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAK1C,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,IAAI;CAsDrD"}
|
|
@@ -56,6 +56,43 @@ export class RegionClipResolver {
|
|
|
56
56
|
throw error;
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
+
static createTasksFromMasks(regionIterator, maxComplete, masks, showOrigin) {
|
|
60
|
+
const tasks = [];
|
|
61
|
+
for (const region of regionIterator) {
|
|
62
|
+
if (region.position >= maxComplete) {
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
if (region.isSelected && !showOrigin) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
if (region.duration <= 0) {
|
|
69
|
+
return panic(`Invalid duration(${region.duration})`);
|
|
70
|
+
}
|
|
71
|
+
const overlapping = masks.filter(mask => region.position < mask.complete && region.complete > mask.position);
|
|
72
|
+
if (overlapping.length === 0) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
for (let i = overlapping.length - 1; i >= 0; i--) {
|
|
76
|
+
const { position, complete } = overlapping[i];
|
|
77
|
+
const positionIn = region.position >= position;
|
|
78
|
+
const completeIn = region.complete <= complete;
|
|
79
|
+
if (positionIn && completeIn) {
|
|
80
|
+
tasks.push({ type: "delete", region });
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
else if (!positionIn && !completeIn) {
|
|
84
|
+
tasks.push({ type: "separate", region, begin: position, end: complete });
|
|
85
|
+
}
|
|
86
|
+
else if (completeIn) {
|
|
87
|
+
tasks.push({ type: "complete", region, position });
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
tasks.push({ type: "start", region, position: complete });
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return tasks;
|
|
95
|
+
}
|
|
59
96
|
static sortAndJoinMasks(masks) {
|
|
60
97
|
if (masks.length === 0) {
|
|
61
98
|
return panic("No clip-masks to solve");
|
|
@@ -103,46 +140,12 @@ export class RegionClipResolver {
|
|
|
103
140
|
this.#masks.push({ type: "range", position, complete });
|
|
104
141
|
}
|
|
105
142
|
#createSolver() {
|
|
106
|
-
const
|
|
143
|
+
const masks = RegionClipResolver.sortAndJoinMasks(this.#masks);
|
|
144
|
+
const maxComplete = masks.reduce((max, mask) => Math.max(max, mask.complete), 0);
|
|
145
|
+
const tasks = RegionClipResolver.createTasksFromMasks(this.#ground.regions.collection.iterateRange(0, maxComplete), maxComplete, masks, this.#strategy.showOrigin());
|
|
107
146
|
this.#masks.length = 0;
|
|
108
147
|
return () => this.#executeTasks(tasks);
|
|
109
148
|
}
|
|
110
|
-
#createTasksFromMasks(masks) {
|
|
111
|
-
const tasks = [];
|
|
112
|
-
masks.forEach(({ position, complete }) => {
|
|
113
|
-
// Iterate from 0 to find all regions that OVERLAP with [position, complete],
|
|
114
|
-
// not just regions that START within that range
|
|
115
|
-
for (const region of this.#ground.regions.collection.iterateRange(0, complete)) {
|
|
116
|
-
if (region.position >= complete) {
|
|
117
|
-
break;
|
|
118
|
-
} // past the mask, done
|
|
119
|
-
if (region.complete <= position) {
|
|
120
|
-
continue;
|
|
121
|
-
} // ends before mask, skip
|
|
122
|
-
if (region.isSelected && !this.#strategy.showOrigin()) {
|
|
123
|
-
continue;
|
|
124
|
-
}
|
|
125
|
-
else if (region.duration <= 0) {
|
|
126
|
-
return panic(`Invalid duration(${region.duration})`);
|
|
127
|
-
}
|
|
128
|
-
const positionIn = region.position >= position;
|
|
129
|
-
const completeIn = region.complete <= complete;
|
|
130
|
-
if (positionIn && completeIn) {
|
|
131
|
-
tasks.push({ type: "delete", region });
|
|
132
|
-
}
|
|
133
|
-
else if (!positionIn && !completeIn) {
|
|
134
|
-
tasks.push({ type: "separate", region, begin: position, end: complete });
|
|
135
|
-
}
|
|
136
|
-
else if (completeIn) {
|
|
137
|
-
tasks.push({ type: "complete", region, position });
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
tasks.push({ type: "start", region, position: complete });
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
|
-
return tasks;
|
|
145
|
-
}
|
|
146
149
|
#executeTasks(tasks) {
|
|
147
150
|
tasks
|
|
148
151
|
.toSorted(({ type: a }, { type: b }) => {
|