31 lines
665 B
JavaScript
31 lines
665 B
JavaScript
|
'use strict';
|
||
|
|
||
|
const electron = require('electron');
|
||
|
const powerSaveBlocker = electron.remote.powerSaveBlocker;
|
||
|
|
||
|
const powerSaveBlockerIds = new Set();
|
||
|
|
||
|
function blockDisplaySleep() {
|
||
|
const newId = powerSaveBlocker.start('prevent-display-sleep');
|
||
|
powerSaveBlockerIds.add(newId);
|
||
|
return newId;
|
||
|
}
|
||
|
|
||
|
function unblockDisplaySleep(id) {
|
||
|
powerSaveBlocker.stop(id);
|
||
|
powerSaveBlockerIds.delete(id);
|
||
|
}
|
||
|
|
||
|
function cleanupDisplaySleep() {
|
||
|
// cleanup all previous sleeps
|
||
|
for (const id of powerSaveBlockerIds) {
|
||
|
unblockDisplaySleep(id);
|
||
|
}
|
||
|
powerSaveBlockerIds.clear();
|
||
|
}
|
||
|
|
||
|
module.exports = {
|
||
|
blockDisplaySleep,
|
||
|
unblockDisplaySleep,
|
||
|
cleanupDisplaySleep
|
||
|
};
|