forked from Shinonome/dots-hyprland
@@ -29,12 +29,18 @@ Singleton {
|
|||||||
property real lastVolume: 0
|
property real lastVolume: 0
|
||||||
function onVolumeChanged() {
|
function onVolumeChanged() {
|
||||||
if (!Config.options.audio.protection.enable) return;
|
if (!Config.options.audio.protection.enable) return;
|
||||||
|
const newVolume = sink.audio.volume;
|
||||||
|
// when resuming from suspend, we should not write volume to avoid pipewire volume reset issues
|
||||||
|
if (isNaN(newVolume) || newVolume === undefined || newVolume === null) {
|
||||||
|
lastReady = false;
|
||||||
|
lastVolume = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (!lastReady) {
|
if (!lastReady) {
|
||||||
lastVolume = sink.audio.volume;
|
lastVolume = newVolume;
|
||||||
lastReady = true;
|
lastReady = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const newVolume = sink.audio.volume;
|
|
||||||
const maxAllowedIncrease = Config.options.audio.protection.maxAllowedIncrease / 100;
|
const maxAllowedIncrease = Config.options.audio.protection.maxAllowedIncrease / 100;
|
||||||
const maxAllowed = Config.options.audio.protection.maxAllowed / 100;
|
const maxAllowed = Config.options.audio.protection.maxAllowed / 100;
|
||||||
|
|
||||||
@@ -45,9 +51,6 @@ Singleton {
|
|||||||
root.sinkProtectionTriggered(Translation.tr("Exceeded max allowed"));
|
root.sinkProtectionTriggered(Translation.tr("Exceeded max allowed"));
|
||||||
sink.audio.volume = Math.min(lastVolume, maxAllowed);
|
sink.audio.volume = Math.min(lastVolume, maxAllowed);
|
||||||
}
|
}
|
||||||
if (sink.ready && (isNaN(sink.audio.volume) || sink.audio.volume === undefined || sink.audio.volume === null)) {
|
|
||||||
sink.audio.volume = 0;
|
|
||||||
}
|
|
||||||
lastVolume = sink.audio.volume;
|
lastVolume = sink.audio.volume;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user