1'use strict';
2
3const EventEmitter = require('events');
4
5module.exports = new class UTILS_PM extends EventEmitter {
6    constructor(){
7        super();
8        this._onPwrkey();
9    }
10
11    _onPwrkey() {
12        __native.PM.onPwrkey(function(state) {
13            this.emit('powerKey', state);
14        }.bind(this));
15    };
16
17    setAutosleepMode(mode) {
18        var ret = __native.PM.setAutosleepMode(mode);
19        if (ret < 0) {
20            this.emit('error', ret);
21            return;
22        }
23    }
24
25    getAutosleepMode() {
26        var ret = __native.PM.getAutosleepMode();
27        if (ret < 0) {
28            this.emit('error', ret);
29            return;
30        }
31    }
32
33    sleep() {
34        var ret = __native.PM.sleep();
35        if (ret < 0) {
36            this.emit('error', ret);
37            return;
38        }
39    }
40
41    powerReset() {
42        var ret = __native.PM.powerReset();
43        if (ret < 0) {
44            this.emit('error', ret);
45            return;
46        }
47    }
48
49    powerDown() {
50        var ret = __native.PM.powerDown();
51        if (ret < 0) {
52            this.emit('error', ret);
53            return;
54        }
55    }
56
57    wakelockLock() {
58        var ret = __native.PM.wakelockLock();
59        if (ret < 0) {
60            this.emit('error', ret);
61            return;
62        }
63    }
64
65    wakelockUnlock() {
66        var ret = __native.PM.wakelockUnlock();
67        if (ret < 0) {
68            this.emit('error', ret);
69            return;
70        }
71    }
72
73    wakelockTimedlock(timeMs) {
74        var ret = __native.PM.wakelockTimedlock(timeMs);
75        if (ret < 0) {
76            this.emit('error', ret);
77            return;
78        }
79    }
80}