Skip to content

Commit

Permalink
Make a working preset storage system | Adding preset recalling later
Browse files Browse the repository at this point in the history
  • Loading branch information
DodoSeal committed Mar 13, 2024
1 parent 8b204e8 commit a8215ba
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 5 deletions.
22 changes: 19 additions & 3 deletions handlers/presets.js
Original file line number Diff line number Diff line change
@@ -1,24 +1,40 @@
const fs = require('fs');
const path = require('path');
const presetFolderPath = (path.join(__dirname, '../presets') + "/").replace('/sacn-console.app/Contents/Resources/app.asar', '');

function recall(number) {
checkPresetDir();
let file;

let searchQuery = `preset-${number}.json`;
file = fs.readFileSync("./presets/" + searchQuery, "utf-8");
file = fs.readFileSync(presetFolderPath + searchQuery, "utf-8");

if (!file) return { message: "No Preset Found" };

return JSON.parse(file);
};

function store(number, data) {
checkPresetDir();
let fileName = `preset-${number}.json`;
let presetFolder = fs.readdirSync('./presets');
let presetFolder = fs.readdirSync(presetFolderPath);
data = JSON.stringify(data);

if (presetFolder.includes(fileName)) {
console.log('Overwriting Preset ' + number);
};

fs.writeFileSync("./presets/" + fileName, data);
fs.writeFileSync(presetFolderPath + fileName, data);
};

function checkPresetDir() {
let presetsDir = fs.existsSync(presetFolderPath);

if (!presetsDir) {
fs.mkdirSync(presetFolderPath);
};

return;
};

module.exports = { recall, store };
8 changes: 8 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ const path = require('path');
const sacn = require('./handlers/sacn');
const network = require('./handlers/network-scan');
const oscHandler = require('./handlers/osc');
const presets = require('./handlers/presets');

let eosConsole;

Expand Down Expand Up @@ -49,4 +50,11 @@ ipcMain.on('sendOsc', (_event, message) => {
if (eosConsole == null) return console.log("No Eos Console to communicate with.");

oscHandler.send(eosConsole.ip, 8000, `/eos${message}`);
});

ipcMain.on('writePreset', (_event, message) => {
let id = message.id;
let data = message.data;

presets.store(id, data);
});
3 changes: 2 additions & 1 deletion preload.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@ const { contextBridge, ipcRenderer } = require(`electron`);

contextBridge.exposeInMainWorld(`app`, {
send: (dmx) => ipcRenderer.send(`send`, dmx),
sendOsc: (message) => ipcRenderer.send(`sendOsc`, message)
sendOsc: (message) => ipcRenderer.send(`sendOsc`, message),
writePreset: (id, data) => ipcRenderer.send(`writePreset`, {id, data})
});
15 changes: 14 additions & 1 deletion src/assets/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,11 @@ document.addEventListener('keypress', (event) => {
let key = event.key;

switch(key) {
case "p":
if (cmdBar.value !== "") return;

cmdBar.value += "Preset ";
break;
case "f":
if (lastKey !== "At") return;

Expand Down Expand Up @@ -155,6 +160,13 @@ function sendOsc(data) {
window.app.sendOsc(data);
};

function storePreset(id, data) {
if (!window.app) return;

console.log("Writing Preset: ", id);
window.app.writePreset(id, data);
};

function parse(cmd) {
cmd = cmd.replace("+", " ");
let args = cmd.split(" ");
Expand Down Expand Up @@ -183,4 +195,5 @@ function parse(cmd) {
};

window.sendDMX = sendDMX;
window.sendOsc = sendOsc;
window.sendOsc = sendOsc;
window.storePreset = storePreset;

0 comments on commit a8215ba

Please sign in to comment.