refactor pattern context to use offset.

This commit is contained in:
Vixalie 2025-03-06 14:56:03 +08:00
parent b92dad0346
commit f8a0724e67

View File

@ -52,7 +52,7 @@ export interface ControlPoint {
export class Pulse { export class Pulse {
order: number; order: number;
id: number; id: number;
duration: number; offset: number;
width: number; width: number;
maniac: boolean; maniac: boolean;
frequency: number; frequency: number;
@ -63,7 +63,7 @@ export class Pulse {
constructor(order: number, width: number, frequency: number) { constructor(order: number, width: number, frequency: number) {
this.id = v4(); this.id = v4();
this.order = order; this.order = order;
this.duration = 25; this.offset = 0;
this.width = width; this.width = width;
this.maniac = false; this.maniac = false;
this.frequency = frequency; this.frequency = frequency;
@ -114,9 +114,9 @@ export function createNewPulse(pattern: Pattern): Pulse {
export function totalDuration(pattern: Pattern): number { export function totalDuration(pattern: Pattern): number {
return reduce( return reduce(
pattern.smoothRepeat ? pattern.pulses : pattern.pulses.slice(0, -1), pattern.pulses,
(former, pulse) => former + pulse.duration, (former, pulse) => former + pulse.offset,
0, pattern.smoothRepeat ? 100 : 0,
); );
} }
@ -126,7 +126,7 @@ export const PatternsAtom = atomFamily((keyword: string) =>
const patterns = await invoke<Pattern[]>('list_patterns', { keyword }); const patterns = await invoke<Pattern[]>('list_patterns', { keyword });
return patterns; return patterns;
} catch (e) { } catch (e) {
console.error('[retreiving pattern list]', e); console.error('[retrieving pattern list]', e);
} }
return []; return [];
}), }),