forked from alexbain/lirc_web
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathirsend.js
More file actions
93 lines (69 loc) · 2.32 KB
/
irsend.js
File metadata and controls
93 lines (69 loc) · 2.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
var exec = require('child_process').exec;
exports = module.exports = IRSend;
function IRSend () {};
IRSend.prototype.list = function(remote, code, callback) {
var command = this._list(remote, code);
return exec(command, callback);
};
IRSend.prototype.send_once = function(remote, code, callback) {
var command = this._send_once(remote, code);
return exec(command, callback);
};
IRSend.prototype.send_start = function(remote, code, callback) {
var command = this._send_start(remote, code);
return exec(command, callback);
};
IRSend.prototype.send_stop = function(remote, code, callback) {
var command = this._send_stop(remote, code);
return exec(command, callback);
};
IRSend.prototype.set_transmitters = function(transmitters, callback) {
var command = this._set_transmitters(transmitters);
return exec(command, callback);
};
IRSend.prototype.simulate = function(code, callback) {
var command = this._simulate(code);
return exec(command, callback);
};
// Internal methods
IRSend.prototype._list = function(remote, code) {
if (!remote) remote = '';
if (!code) code = '';
return 'irsend LIST "' + remote + '" "' + code + '"';
};
IRSend.prototype._send_once = function(remote, code) {
if (!remote) remote = '';
if (!code) code = '';
if (code instanceof Array) {
var newCode = '';
code.forEach(function(element, index, array) {
newCode = newCode + '"' + element + '" ';
});
code = newCode.trim();
code = code.substr(1, code.length-2);
}
return 'irsend SEND_ONCE "' + remote + '" "' + code + '"';
};
IRSend.prototype._send_start = function(remote, code) {
if (!remote) remote = '';
if (!code) code = '';
return 'irsend SEND_START "' + remote + '" "' + code + '"';
};
IRSend.prototype._send_stop = function(remote, code) {
if (!remote) remote = '';
if (!code) code = '';
return 'irsend SEND_STOP "' + remote + '" "' + code + '"';
};
IRSend.prototype._set_transmitters = function(transmitters) {
if (transmitters instanceof Array) {
var newTransmitters = '';
transmitters.forEach(function(element, index, array) {
newTransmitters = newTransmitters + element + " ";
});
transmitters = newTransmitters.trim();
}
return 'irsend SET_TRANSMITTERS ' + transmitters;
};
IRSend.prototype._simulate = function(code) {
return 'irsend SIMULATE "' + code + '"';
};