28 lines
876 B
JavaScript
28 lines
876 B
JavaScript
|
"use strict";
|
||
|
|
||
|
const electron = require('electron');
|
||
|
|
||
|
const {
|
||
|
POWER_SAVE_BLOCKER_BLOCK_DISPLAY_SLEEP,
|
||
|
POWER_SAVE_BLOCKER_UNBLOCK_DISPLAY_SLEEP,
|
||
|
POWER_SAVE_BLOCKER_CLEANUP_DISPLAY_SLEEP
|
||
|
} = require('../common/constants').IPCEvents;
|
||
|
|
||
|
const powerSaveBlockerIds = new Set();
|
||
|
electron.ipcMain.handle(POWER_SAVE_BLOCKER_BLOCK_DISPLAY_SLEEP, async _ => {
|
||
|
const newId = electron.powerSaveBlocker.start('prevent-display-sleep');
|
||
|
powerSaveBlockerIds.add(newId);
|
||
|
return newId;
|
||
|
});
|
||
|
electron.ipcMain.handle(POWER_SAVE_BLOCKER_UNBLOCK_DISPLAY_SLEEP, async (_, id) => {
|
||
|
electron.powerSaveBlocker.stop(id);
|
||
|
powerSaveBlockerIds.delete(id);
|
||
|
});
|
||
|
electron.ipcMain.handle(POWER_SAVE_BLOCKER_CLEANUP_DISPLAY_SLEEP, async _ => {
|
||
|
// cleanup all previous sleeps
|
||
|
for (const id of powerSaveBlockerIds) {
|
||
|
electron.powerSaveBlocker.stop(id);
|
||
|
}
|
||
|
|
||
|
powerSaveBlockerIds.clear();
|
||
|
});
|