Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
/* global CpuWakeLockManager */
|
|
|
|
(function(exports) {
|
|
/**
|
|
* CpuManager is a tiny baby that does nothing except set the
|
|
* |cpuSleepAllowed| property on mozPower.
|
|
* But, it would probably grow up as all Gaia script do.
|
|
*/
|
|
var CpuManager = function CpuManager() {
|
|
this._wakeLockManager = null;
|
|
this._started = false;
|
|
};
|
|
|
|
CpuManager.prototype.start = function() {
|
|
if (this._started) {
|
|
throw new Error(
|
|
'CpuManager: should not be start()\'ed twice.');
|
|
}
|
|
|
|
if (!navigator.mozPower) {
|
|
return;
|
|
}
|
|
this._started = true;
|
|
|
|
this._wakeLockManager = new CpuWakeLockManager();
|
|
this._wakeLockManager.onwakelockchange =
|
|
this._handleWakeLockChange.bind(this);
|
|
this._wakeLockManager.start();
|
|
};
|
|
|
|
CpuManager.prototype.stop = function() {
|
|
if (!this._started) {
|
|
throw new Error('CpuManager: ' +
|
|
'Instance was never start()\'ed but stop() is called.');
|
|
}
|
|
this._started = false;
|
|
|
|
this._wakeLockManager.stop();
|
|
this._wakeLockManager = null;
|
|
};
|
|
|
|
CpuManager.prototype._handleWakeLockChange = function(isHeld) {
|
|
navigator.mozPower.cpuSleepAllowed = !isHeld;
|
|
};
|
|
|
|
exports.CpuManager = CpuManager;
|
|
}(window));
|