Skip to content

Commit

Permalink
Avoid Explosions if attempt to use Fx settings on Mini
Browse files Browse the repository at this point in the history
  • Loading branch information
FrostyCoolSlug committed Jan 22, 2024
1 parent 1facd8f commit 8e3cfcb
Show file tree
Hide file tree
Showing 7 changed files with 69 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,11 @@
<option>Please Wait..</option>
</select>
</div>
<div class="hidden sdpi-item" style="max-width: none" id="no-mini">
<details class="message caution">
<summary>FX are not supported on this device</summary>
</details>
</div>
<div class="hidden sdpi-item" id="settings">
<div class="sdpi-item-label">Bank</div>
<select class="sdpi-item-value" id="bank" name="bank">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ function runPlugin() {
document.querySelector("#mixer").classList.remove("hidden");
}

document.querySelector("#settings").classList.remove("hidden");

let banks = document.querySelector("#bank");
while (banks.hasChildNodes()) {
Expand All @@ -62,15 +61,8 @@ function runPlugin() {
// Set any 'Known' form values, default others.
Utils.setFormValue(pluginSettings, document.querySelector("#load-bank-form"))

// Now our settings are loaded, we can populate the preset names..
let selected = document.querySelector("#mixers").value;
let presets = device.mixers[selected].effects.preset_names;

for (let i = 0; i <= 5; i++) {
let key = `Preset${i + 1}`;
document.querySelector("#bank").childNodes[i].text = `${i + 1}: ${presets[key]}`;
}
banks.disabled = false;
// Load the Effect Banks and update the page..
loadEffectBank();

// Get all the default filled fields and store them to settings.
pluginSettings = Utils.getFormValue(document.querySelector("#load-bank-form"));
Expand All @@ -80,17 +72,35 @@ function runPlugin() {
websocket.disconnect();
}

function loadEffectBank() {
let selected = document.querySelector("#mixers").value;

if (device.mixers[selected].effects === null) {
document.querySelector("#no-mini").classList.remove("hidden");
document.querySelector("#settings").classList.add("hidden");
return;
} else {
document.querySelector("#no-mini").classList.add("hidden");
document.querySelector("#settings").classList.remove("hidden");
}

let presets = device.mixers[selected].effects.preset_names;
for (let i = 0; i <= 5; i++) {
let key = `Preset${i + 1}`;
document.querySelector("#bank").childNodes[i].text = `${i + 1}: ${presets[key]}`;
}
document.querySelector("#bank").disabled = false;
}

document.querySelector("#mixers").addEventListener('change', (e) => {
pluginSettings = Utils.getFormValue(document.querySelector("#load-bank-form"));
$PI.setSettings(pluginSettings);
});
// Update the bank list...
loadEffectBank();

document.querySelector("#bank").addEventListener('change', (e) => {
pluginSettings = Utils.getFormValue(document.querySelector("#load-bank-form"));
$PI.setSettings(pluginSettings);
});

document.querySelector("#mixers").addEventListener('change', (e) => {
document.querySelector("#bank").addEventListener('change', (e) => {
pluginSettings = Utils.getFormValue(document.querySelector("#load-bank-form"));
$PI.setSettings(pluginSettings);
});
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,11 @@
<option>Please Wait..</option>
</select>
</div>
<div class="hidden sdpi-item" style="max-width: none" id="no-mini">
<details class="message caution">
<summary>FX are not supported on this device</summary>
</details>
</div>
<div class="hidden" id="settings">
<div class="sdpi-item">
<div class="sdpi-item-label">Mode</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,11 @@ function runPlugin() {
document.querySelector("#mixer").classList.remove("hidden");
}

document.querySelector("#settings").classList.remove("hidden");

// Set any 'Known' form values, default others.
Utils.setFormValue(pluginSettings, document.querySelector("#fx-toggle-form"))

loadSettings();

// Get all the default filled fields and store them to settings.
pluginSettings = Utils.getFormValue(document.querySelector("#fx-toggle-form"));
$PI.setSettings(pluginSettings);
Expand All @@ -54,7 +54,21 @@ function runPlugin() {
websocket.disconnect();
}

function loadSettings() {
let selected = document.querySelector("#mixers").value;

if (device.mixers[selected].effects === null) {
document.querySelector("#no-mini").classList.remove("hidden");
document.querySelector("#settings").classList.add("hidden");
} else {
document.querySelector("#no-mini").classList.add("hidden");
document.querySelector("#settings").classList.remove("hidden");
}
}

document.querySelector("#mixers").addEventListener('change', (e) => {
loadSettings();

pluginSettings = Utils.getFormValue(document.querySelector("#fx-toggle-form"));
$PI.setSettings(pluginSettings);
});
Expand Down
3 changes: 2 additions & 1 deletion src/com.frostycoolslug.goxlr-utility.sdPlugin/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ $SD.onDidReceiveGlobalSettings((data => {
status = response.Status;
utilityOnline();
websocket.set_patch_method(patchStatus);
}).catch(() => {
}).catch((e) => {
console.log(e);
websocket.disconnect();
retryConnection();
})).catch(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,13 @@ loadFxBank.onKeyUp(({action, context, device, event, payload}) => {
$SD.setState(context, payload.state);
$SD.showAlert(context);
} else {
if (status.mixers[serial].effects === null) {
// NOT A FULL SIZED GOXLR, DO NOTHING.
$SD.setState(context, payload.state);
$SD.showAlert(context);
return;
}

let currentValue = status.mixers[serial].effects.active_preset;
console.log(bank);
console.log(currentValue);
Expand Down Expand Up @@ -116,6 +123,13 @@ class FxBankMonitor {
$SD.setImage(this.context, RedIcon);
return;
}

// Don't try anything if we're a mini..
if (status.mixers[this.serial].effects === null) {
$SD.setImage(this.context, RedIcon);
return;
}

let value = status.mixers[this.serial].effects.active_preset;


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ fxToggle.onKeyUp(({action, context, device, event, payload}) => {
$SD.setState(context, payload.state);
$SD.showAlert(context);
} else {
if (status.mixers[serial].hardware.device_type !== "Full") {
if (status.mixers[serial].effects === null) {
// NOT A FULL SIZED GOXLR, DO NOTHING.
$SD.setState(context, payload.state);
$SD.showAlert(context);
Expand Down Expand Up @@ -130,7 +130,7 @@ class FxMonitor {
}

// Don't do anything unless we're a full sized device.
if (status.mixers[this.serial].hardware.device_type !== "Full") {
if (status.mixers[this.serial].effects === null) {
$SD.setImage(this.context, RedIcon);
return;
}
Expand Down

0 comments on commit 8e3cfcb

Please sign in to comment.