* denoise recording before saved * Refactor audio processing and recording logic * Remove unused code * use echogarden to transcode * remove ffmpeg-wasm * add echogarden decode * remove deprecated code * ensure use posix path * refactor echogarden transcode * refactor recording denoise * clean code * expose align error in toast * remove unused code
40 lines
874 B
TypeScript
40 lines
874 B
TypeScript
import { ipcMain } from "electron";
|
|
import settings from "@main/settings";
|
|
import path from "path";
|
|
import fs from "fs-extra";
|
|
|
|
export class Waveform {
|
|
public dir = path.join(settings.libraryPath(), "waveforms");
|
|
|
|
constructor() {
|
|
fs.ensureDirSync(this.dir);
|
|
}
|
|
|
|
find(id: string) {
|
|
const file = path.join(this.dir, id + ".waveform.json");
|
|
|
|
if (fs.existsSync(file)) {
|
|
return fs.readJsonSync(file);
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
save(id: string, data: WaveFormDataType) {
|
|
const file = path.join(this.dir, id + ".waveform.json");
|
|
|
|
fs.writeJsonSync(file, data);
|
|
}
|
|
|
|
registerIpcHandlers() {
|
|
ipcMain.handle("waveforms-find", async (_event, id) => {
|
|
return this.find(id);
|
|
});
|
|
|
|
ipcMain.handle("waveforms-save", (_event, id, data) => {
|
|
return this.save(id, data);
|
|
});
|
|
}
|
|
}
|
|
|
|
export default new Waveform(); |