fix: apply PR review comments - derive GEQ_FREQUENCIES, validate import, fix delete btn visibility, store preamp in presets
Agent-Logs-Url: https://github.com/tryptz/monochrome-autoeq/sessions/6b47309f-1fb1-479d-91be-c0a54aa94b84 Co-authored-by: tryptz <216453278+tryptz@users.noreply.github.com>
This commit is contained in:
parent
cb49904a21
commit
31b6af317e
1 changed files with 33 additions and 28 deletions
|
|
@ -1580,35 +1580,40 @@ export async function initializeSettings(scrobbler, player, api, ui) {
|
||||||
geqPresetSelects.forEach((select) => {
|
geqPresetSelects.forEach((select) => {
|
||||||
select.addEventListener('change', () => {
|
select.addEventListener('change', () => {
|
||||||
const key = select.value;
|
const key = select.value;
|
||||||
if (key) {
|
if (!key) {
|
||||||
// Check custom presets first
|
updateDeleteBtnVisibility();
|
||||||
const customPresets = getLegacyGeqCustomPresets();
|
return;
|
||||||
if (customPresets[key]) {
|
}
|
||||||
const gains = customPresets[key]?.gains;
|
|
||||||
if (!Array.isArray(gains) || gains.length !== GEQ_FREQUENCIES.length) {
|
// Check custom presets first
|
||||||
updateDeleteBtnVisibility();
|
const customPresets = getLegacyGeqCustomPresets();
|
||||||
return;
|
if (customPresets[key]) {
|
||||||
}
|
const gains = customPresets[key]?.gains;
|
||||||
geqGains = gains.map((g) => {
|
if (!Array.isArray(gains) || gains.length !== GEQ_FREQUENCIES.length) {
|
||||||
const n = Number(g);
|
updateDeleteBtnVisibility();
|
||||||
return Number.isFinite(n)
|
return;
|
||||||
? Math.max(parseFloat(geqRange.min), Math.min(parseFloat(geqRange.max), n))
|
|
||||||
: 0;
|
|
||||||
});
|
|
||||||
equalizerSettings.setGraphicEqGains(geqGains);
|
|
||||||
audioContextManager.setGraphicEqAllGains(geqGains);
|
|
||||||
geqSyncAllSliders();
|
|
||||||
if (customPresets[key].preamp !== undefined) {
|
|
||||||
geqPreamp = customPresets[key].preamp;
|
|
||||||
equalizerSettings.setGraphicEqPreamp(geqPreamp);
|
|
||||||
audioContextManager.setGraphicEqPreamp(geqPreamp);
|
|
||||||
geqPreampSliders.forEach((s) => (s.value = geqPreamp));
|
|
||||||
geqPreampValues.forEach((v) => (v.textContent = `${geqPreamp.toFixed(1)} dB`));
|
|
||||||
}
|
|
||||||
geqPresetSelects.forEach((s) => {
|
|
||||||
if (s !== select) s.value = key;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
geqGains = gains.map((g) => {
|
||||||
|
const n = Number(g);
|
||||||
|
return Number.isFinite(n)
|
||||||
|
? Math.max(parseFloat(geqRange.min), Math.min(parseFloat(geqRange.max), n))
|
||||||
|
: 0;
|
||||||
|
});
|
||||||
|
equalizerSettings.setGraphicEqGains(geqGains);
|
||||||
|
audioContextManager.setGraphicEqAllGains(geqGains);
|
||||||
|
geqSyncAllSliders();
|
||||||
|
if (customPresets[key].preamp !== undefined) {
|
||||||
|
geqPreamp = customPresets[key].preamp;
|
||||||
|
equalizerSettings.setGraphicEqPreamp(geqPreamp);
|
||||||
|
audioContextManager.setGraphicEqPreamp(geqPreamp);
|
||||||
|
geqPreampSliders.forEach((s) => (s.value = geqPreamp));
|
||||||
|
geqPreampValues.forEach((v) => (v.textContent = `${geqPreamp.toFixed(1)} dB`));
|
||||||
|
}
|
||||||
|
geqPresetSelects.forEach((s) => {
|
||||||
|
if (s !== select) s.value = key;
|
||||||
|
});
|
||||||
|
updateDeleteBtnVisibility();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
updateDeleteBtnVisibility();
|
updateDeleteBtnVisibility();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue