From 52fc2d88c9154f8cf7ebbf2b591b305bbf6ea7e6 Mon Sep 17 00:00:00 2001 From: Nate Goldman Date: Fri, 11 Mar 2016 16:43:34 -0800 Subject: [PATCH] Block "Power Saver" mode while video is playing fix #106 --- main/ipc.js | 14 ++++++++++++++ renderer/index.js | 3 +++ renderer/views/player.js | 1 + 3 files changed, 18 insertions(+) diff --git a/main/ipc.js b/main/ipc.js index c7ef71ea..7c34c7b3 100644 --- a/main/ipc.js +++ b/main/ipc.js @@ -9,6 +9,10 @@ var windows = require('./windows') var app = electron.app var ipcMain = electron.ipcMain +var powerSaveBlocker = electron.powerSaveBlocker + +// has to be a number, not a boolean, and undefined throws an error +var powerSaveBlocked = 0 function init () { ipcMain.on('showOpenTorrentFile', function (e) { @@ -42,6 +46,16 @@ function init () { ipcMain.on('log', function (e, message) { console.log(message) }) + + ipcMain.on('playing-video', function (e) { + powerSaveBlocked = powerSaveBlocker.start('prevent-display-sleep') + }) + + ipcMain.on('paused-video', function (e) { + if (powerSaveBlocker.isStarted(powerSaveBlocked)) { + powerSaveBlocker.stop(powerSaveBlocked) + } + }) } function setBounds (bounds) { diff --git a/renderer/index.js b/renderer/index.js index 64412c09..69d01ca9 100644 --- a/renderer/index.js +++ b/renderer/index.js @@ -206,6 +206,9 @@ function dispatch (action, ...args) { state.video.isPaused = true update() } + if (action === 'videoPlaying') { + ipcRenderer.send('playing-video') + } if (action === 'videoPaused') { ipcRenderer.send('paused-video') } diff --git a/renderer/views/player.js b/renderer/views/player.js index 6f0e5ad2..33f307b3 100644 --- a/renderer/views/player.js +++ b/renderer/views/player.js @@ -36,6 +36,7 @@ function Player (state, dispatch) { ondblclick=${() => dispatch('toggleFullScreen')} onloadedmetadata=${onLoadedMetadata} onended=${onEnded} + onplay=${() => dispatch('videoPlaying')} onpause=${() => dispatch('videoPaused')} autoplay>