reaper-osc 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +31 -35
- package/dist/Fx.d.ts +72 -72
- package/dist/Fx.js +136 -136
- package/dist/Handlers.d.ts +62 -62
- package/dist/Handlers.js +156 -156
- package/dist/Messages.d.ts +70 -70
- package/dist/Messages.js +115 -115
- package/dist/Notify.d.ts +29 -28
- package/dist/Notify.js +63 -63
- package/dist/Notify.js.map +1 -1
- package/dist/Reaper.d.ts +95 -93
- package/dist/Reaper.js +246 -216
- package/dist/Reaper.js.map +1 -1
- package/dist/Tracks.d.ts +136 -136
- package/dist/Tracks.js +293 -293
- package/dist/Transport.d.ts +57 -57
- package/dist/Transport.js +137 -137
- package/dist/index.d.ts +15 -14
- package/dist/index.js +26 -26
- package/package.json +54 -53
package/dist/Handlers.js
CHANGED
|
@@ -1,157 +1,157 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FloatMessageHandler = exports.StringMessageHandler = exports.IntegerMessageHandler = exports.BooleanMessageHandler = exports.TrackFxMessageHandler = exports.TransportMessageHandler = exports.TrackMessageHandler = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Routes messages to the appropriate track
|
|
6
|
-
* @param trackSelector A function that can be used to get a track
|
|
7
|
-
* */
|
|
8
|
-
class TrackMessageHandler {
|
|
9
|
-
constructor(trackSelector) {
|
|
10
|
-
this.trackSelector = trackSelector;
|
|
11
|
-
}
|
|
12
|
-
handle(message) {
|
|
13
|
-
if (message.addressParts[1] === 'track') {
|
|
14
|
-
const trackNumber = parseInt(message.addressParts[2]);
|
|
15
|
-
// If NaN, probably means that it's a message for the selected track - ignore
|
|
16
|
-
if (isNaN(trackNumber)) {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
const track = this.trackSelector(trackNumber);
|
|
20
|
-
if (track !== null) {
|
|
21
|
-
return track.receive(message);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
exports.TrackMessageHandler = TrackMessageHandler;
|
|
28
|
-
/** Routes messages to the transport */
|
|
29
|
-
class TransportMessageHandler {
|
|
30
|
-
constructor(transport) {
|
|
31
|
-
this.transport = transport;
|
|
32
|
-
}
|
|
33
|
-
handle(message) {
|
|
34
|
-
return this.transport.receive(message);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
exports.TransportMessageHandler = TransportMessageHandler;
|
|
38
|
-
/** Routes messages to the appropriate track fx */
|
|
39
|
-
class TrackFxMessageHandler {
|
|
40
|
-
constructor(fxSelector) {
|
|
41
|
-
this.fxSelector = fxSelector;
|
|
42
|
-
}
|
|
43
|
-
handle(message) {
|
|
44
|
-
if (message.addressParts[1] === 'track' && message.addressParts[3] === 'fx') {
|
|
45
|
-
const fxNumber = parseInt(message.addressParts[4]);
|
|
46
|
-
if (isNaN(fxNumber)) {
|
|
47
|
-
throw new Error('Expected an integer');
|
|
48
|
-
}
|
|
49
|
-
const fx = this.fxSelector(fxNumber);
|
|
50
|
-
if (fx !== null) {
|
|
51
|
-
return fx.receive(message);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
exports.TrackFxMessageHandler = TrackFxMessageHandler;
|
|
58
|
-
/**
|
|
59
|
-
* Handles an OSC message containing a single boolean value (0 or 1)
|
|
60
|
-
* @param address The address of the message to handle
|
|
61
|
-
* @param callback The callback to be called when a message with the specified OSC address is received
|
|
62
|
-
*/
|
|
63
|
-
class BooleanMessageHandler {
|
|
64
|
-
constructor(address, callback) {
|
|
65
|
-
this.address = address;
|
|
66
|
-
this._callback = callback;
|
|
67
|
-
}
|
|
68
|
-
handle(message) {
|
|
69
|
-
var _a;
|
|
70
|
-
if (message.address === this.address) {
|
|
71
|
-
const booleanValue = ((_a = message.args[0]) === null || _a === void 0 ? void 0 : _a.value) === 1 ? true : false;
|
|
72
|
-
this._callback(booleanValue);
|
|
73
|
-
return true;
|
|
74
|
-
}
|
|
75
|
-
return false;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
exports.BooleanMessageHandler = BooleanMessageHandler;
|
|
79
|
-
class IntegerMessageHandler {
|
|
80
|
-
constructor(address, callback) {
|
|
81
|
-
this.address = address;
|
|
82
|
-
this._callback = callback;
|
|
83
|
-
}
|
|
84
|
-
handle(message) {
|
|
85
|
-
if (message.address === this.address) {
|
|
86
|
-
const messageValue = message.args[0].value;
|
|
87
|
-
let intValue;
|
|
88
|
-
switch (typeof messageValue) {
|
|
89
|
-
case 'number':
|
|
90
|
-
intValue = messageValue;
|
|
91
|
-
break;
|
|
92
|
-
case 'string':
|
|
93
|
-
intValue = parseInt(messageValue);
|
|
94
|
-
if (isNaN(intValue)) {
|
|
95
|
-
throw new Error('Expected an integer');
|
|
96
|
-
}
|
|
97
|
-
break;
|
|
98
|
-
default:
|
|
99
|
-
throw new Error('Expected an integer');
|
|
100
|
-
}
|
|
101
|
-
this._callback(intValue);
|
|
102
|
-
return true;
|
|
103
|
-
}
|
|
104
|
-
return false;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
exports.IntegerMessageHandler = IntegerMessageHandler;
|
|
108
|
-
class StringMessageHandler {
|
|
109
|
-
constructor(address, callback) {
|
|
110
|
-
this.address = address;
|
|
111
|
-
this.address = address;
|
|
112
|
-
this._callback = callback;
|
|
113
|
-
}
|
|
114
|
-
handle(message) {
|
|
115
|
-
if (message.address === this.address) {
|
|
116
|
-
const messageValue = message.args[0].value;
|
|
117
|
-
if (typeof messageValue !== 'string') {
|
|
118
|
-
throw new Error('Expected a string');
|
|
119
|
-
}
|
|
120
|
-
this._callback(messageValue);
|
|
121
|
-
return true;
|
|
122
|
-
}
|
|
123
|
-
return false;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
exports.StringMessageHandler = StringMessageHandler;
|
|
127
|
-
class FloatMessageHandler {
|
|
128
|
-
constructor(address, callback) {
|
|
129
|
-
this.address = address;
|
|
130
|
-
this.address = address;
|
|
131
|
-
this._callback = callback;
|
|
132
|
-
}
|
|
133
|
-
handle(message) {
|
|
134
|
-
if (message.address === this.address) {
|
|
135
|
-
const messageValue = message.args[0].value;
|
|
136
|
-
let floatValue;
|
|
137
|
-
switch (typeof messageValue) {
|
|
138
|
-
case 'number':
|
|
139
|
-
floatValue = messageValue;
|
|
140
|
-
break;
|
|
141
|
-
case 'string':
|
|
142
|
-
floatValue = parseFloat(messageValue);
|
|
143
|
-
if (isNaN(floatValue)) {
|
|
144
|
-
throw new Error('Expected an integer');
|
|
145
|
-
}
|
|
146
|
-
break;
|
|
147
|
-
default:
|
|
148
|
-
throw new Error('Expected an integer');
|
|
149
|
-
}
|
|
150
|
-
this._callback(floatValue);
|
|
151
|
-
return true;
|
|
152
|
-
}
|
|
153
|
-
return false;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
exports.FloatMessageHandler = FloatMessageHandler;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FloatMessageHandler = exports.StringMessageHandler = exports.IntegerMessageHandler = exports.BooleanMessageHandler = exports.TrackFxMessageHandler = exports.TransportMessageHandler = exports.TrackMessageHandler = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Routes messages to the appropriate track
|
|
6
|
+
* @param trackSelector A function that can be used to get a track
|
|
7
|
+
* */
|
|
8
|
+
class TrackMessageHandler {
|
|
9
|
+
constructor(trackSelector) {
|
|
10
|
+
this.trackSelector = trackSelector;
|
|
11
|
+
}
|
|
12
|
+
handle(message) {
|
|
13
|
+
if (message.addressParts[1] === 'track') {
|
|
14
|
+
const trackNumber = parseInt(message.addressParts[2]);
|
|
15
|
+
// If NaN, probably means that it's a message for the selected track - ignore
|
|
16
|
+
if (isNaN(trackNumber)) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
const track = this.trackSelector(trackNumber);
|
|
20
|
+
if (track !== null) {
|
|
21
|
+
return track.receive(message);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.TrackMessageHandler = TrackMessageHandler;
|
|
28
|
+
/** Routes messages to the transport */
|
|
29
|
+
class TransportMessageHandler {
|
|
30
|
+
constructor(transport) {
|
|
31
|
+
this.transport = transport;
|
|
32
|
+
}
|
|
33
|
+
handle(message) {
|
|
34
|
+
return this.transport.receive(message);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.TransportMessageHandler = TransportMessageHandler;
|
|
38
|
+
/** Routes messages to the appropriate track fx */
|
|
39
|
+
class TrackFxMessageHandler {
|
|
40
|
+
constructor(fxSelector) {
|
|
41
|
+
this.fxSelector = fxSelector;
|
|
42
|
+
}
|
|
43
|
+
handle(message) {
|
|
44
|
+
if (message.addressParts[1] === 'track' && message.addressParts[3] === 'fx') {
|
|
45
|
+
const fxNumber = parseInt(message.addressParts[4]);
|
|
46
|
+
if (isNaN(fxNumber)) {
|
|
47
|
+
throw new Error('Expected an integer');
|
|
48
|
+
}
|
|
49
|
+
const fx = this.fxSelector(fxNumber);
|
|
50
|
+
if (fx !== null) {
|
|
51
|
+
return fx.receive(message);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.TrackFxMessageHandler = TrackFxMessageHandler;
|
|
58
|
+
/**
|
|
59
|
+
* Handles an OSC message containing a single boolean value (0 or 1)
|
|
60
|
+
* @param address The address of the message to handle
|
|
61
|
+
* @param callback The callback to be called when a message with the specified OSC address is received
|
|
62
|
+
*/
|
|
63
|
+
class BooleanMessageHandler {
|
|
64
|
+
constructor(address, callback) {
|
|
65
|
+
this.address = address;
|
|
66
|
+
this._callback = callback;
|
|
67
|
+
}
|
|
68
|
+
handle(message) {
|
|
69
|
+
var _a;
|
|
70
|
+
if (message.address === this.address) {
|
|
71
|
+
const booleanValue = ((_a = message.args[0]) === null || _a === void 0 ? void 0 : _a.value) === 1 ? true : false;
|
|
72
|
+
this._callback(booleanValue);
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.BooleanMessageHandler = BooleanMessageHandler;
|
|
79
|
+
class IntegerMessageHandler {
|
|
80
|
+
constructor(address, callback) {
|
|
81
|
+
this.address = address;
|
|
82
|
+
this._callback = callback;
|
|
83
|
+
}
|
|
84
|
+
handle(message) {
|
|
85
|
+
if (message.address === this.address) {
|
|
86
|
+
const messageValue = message.args[0].value;
|
|
87
|
+
let intValue;
|
|
88
|
+
switch (typeof messageValue) {
|
|
89
|
+
case 'number':
|
|
90
|
+
intValue = messageValue;
|
|
91
|
+
break;
|
|
92
|
+
case 'string':
|
|
93
|
+
intValue = parseInt(messageValue);
|
|
94
|
+
if (isNaN(intValue)) {
|
|
95
|
+
throw new Error('Expected an integer');
|
|
96
|
+
}
|
|
97
|
+
break;
|
|
98
|
+
default:
|
|
99
|
+
throw new Error('Expected an integer');
|
|
100
|
+
}
|
|
101
|
+
this._callback(intValue);
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.IntegerMessageHandler = IntegerMessageHandler;
|
|
108
|
+
class StringMessageHandler {
|
|
109
|
+
constructor(address, callback) {
|
|
110
|
+
this.address = address;
|
|
111
|
+
this.address = address;
|
|
112
|
+
this._callback = callback;
|
|
113
|
+
}
|
|
114
|
+
handle(message) {
|
|
115
|
+
if (message.address === this.address) {
|
|
116
|
+
const messageValue = message.args[0].value;
|
|
117
|
+
if (typeof messageValue !== 'string') {
|
|
118
|
+
throw new Error('Expected a string');
|
|
119
|
+
}
|
|
120
|
+
this._callback(messageValue);
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
exports.StringMessageHandler = StringMessageHandler;
|
|
127
|
+
class FloatMessageHandler {
|
|
128
|
+
constructor(address, callback) {
|
|
129
|
+
this.address = address;
|
|
130
|
+
this.address = address;
|
|
131
|
+
this._callback = callback;
|
|
132
|
+
}
|
|
133
|
+
handle(message) {
|
|
134
|
+
if (message.address === this.address) {
|
|
135
|
+
const messageValue = message.args[0].value;
|
|
136
|
+
let floatValue;
|
|
137
|
+
switch (typeof messageValue) {
|
|
138
|
+
case 'number':
|
|
139
|
+
floatValue = messageValue;
|
|
140
|
+
break;
|
|
141
|
+
case 'string':
|
|
142
|
+
floatValue = parseFloat(messageValue);
|
|
143
|
+
if (isNaN(floatValue)) {
|
|
144
|
+
throw new Error('Expected an integer');
|
|
145
|
+
}
|
|
146
|
+
break;
|
|
147
|
+
default:
|
|
148
|
+
throw new Error('Expected an integer');
|
|
149
|
+
}
|
|
150
|
+
this._callback(floatValue);
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
exports.FloatMessageHandler = FloatMessageHandler;
|
|
157
157
|
//# sourceMappingURL=Handlers.js.map
|
package/dist/Messages.d.ts
CHANGED
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
export interface ISendOscMessage {
|
|
2
|
-
(message: OscMessage): void;
|
|
3
|
-
}
|
|
4
|
-
export declare enum OscArgumentType {
|
|
5
|
-
/** 32-bit Integer */
|
|
6
|
-
INT = "i",
|
|
7
|
-
/** 64-bit Integer */
|
|
8
|
-
LONG = "h",
|
|
9
|
-
/** 32-bit Floating Point */
|
|
10
|
-
FLOAT = "f",
|
|
11
|
-
/** 64-bit Floating Point */
|
|
12
|
-
DOUBLE = "d",
|
|
13
|
-
/** String */
|
|
14
|
-
STRING = "s",
|
|
15
|
-
/** Single Character */
|
|
16
|
-
CHAR = "c",
|
|
17
|
-
/** Binary blob */
|
|
18
|
-
BLOB = "b",
|
|
19
|
-
/** True. No bytes are allocated in the argument data */
|
|
20
|
-
TRUE = "T",
|
|
21
|
-
/** False. No bytes are allocated in the argument data */
|
|
22
|
-
FALSE = "F",
|
|
23
|
-
/** Null. No bytes are allocated in the argument data */
|
|
24
|
-
NULL = "N",
|
|
25
|
-
/** Impulse aka bang. Used for event triggers. No bytes are allocated in the argument data */
|
|
26
|
-
IMPULSE = "I",
|
|
27
|
-
COLOR = "r",
|
|
28
|
-
MIDI = "m"
|
|
29
|
-
}
|
|
30
|
-
export declare class OscArgument<T> {
|
|
31
|
-
readonly type: OscArgumentType;
|
|
32
|
-
readonly value: T;
|
|
33
|
-
constructor(type: OscArgumentType, value: T);
|
|
34
|
-
}
|
|
35
|
-
export declare class StringArgument extends OscArgument<string> {
|
|
36
|
-
constructor(value: string);
|
|
37
|
-
}
|
|
38
|
-
export declare class IntArgument extends OscArgument<number> {
|
|
39
|
-
constructor(value: number);
|
|
40
|
-
}
|
|
41
|
-
export declare class BoolArgument extends IntArgument {
|
|
42
|
-
constructor(value: boolean);
|
|
43
|
-
}
|
|
44
|
-
export declare class FloatArgument extends OscArgument<number> {
|
|
45
|
-
constructor(value: number);
|
|
46
|
-
}
|
|
47
|
-
export declare class OscMessage {
|
|
48
|
-
readonly address: string;
|
|
49
|
-
readonly addressParts: string[];
|
|
50
|
-
readonly args: OscArgument<unknown>[];
|
|
51
|
-
constructor(address: string, args?: OscArgument<unknown>[]);
|
|
52
|
-
}
|
|
53
|
-
export declare class StringMessage extends OscMessage {
|
|
54
|
-
constructor(address: string, value: string);
|
|
55
|
-
}
|
|
56
|
-
export declare class BooleanMessage extends OscMessage {
|
|
57
|
-
constructor(address: string, value: boolean);
|
|
58
|
-
}
|
|
59
|
-
export declare class ActionMessage extends OscMessage {
|
|
60
|
-
constructor(commandId: string | number, value?: number | null);
|
|
61
|
-
}
|
|
62
|
-
export declare class ToggleMessage extends OscMessage {
|
|
63
|
-
constructor(address: string);
|
|
64
|
-
}
|
|
65
|
-
export declare class IntegerMessage extends OscMessage {
|
|
66
|
-
constructor(address: string, value: number);
|
|
67
|
-
}
|
|
68
|
-
export declare class FloatMessage extends OscMessage {
|
|
69
|
-
constructor(address: string, value: number);
|
|
70
|
-
}
|
|
1
|
+
export interface ISendOscMessage {
|
|
2
|
+
(message: OscMessage): void;
|
|
3
|
+
}
|
|
4
|
+
export declare enum OscArgumentType {
|
|
5
|
+
/** 32-bit Integer */
|
|
6
|
+
INT = "i",
|
|
7
|
+
/** 64-bit Integer */
|
|
8
|
+
LONG = "h",
|
|
9
|
+
/** 32-bit Floating Point */
|
|
10
|
+
FLOAT = "f",
|
|
11
|
+
/** 64-bit Floating Point */
|
|
12
|
+
DOUBLE = "d",
|
|
13
|
+
/** String */
|
|
14
|
+
STRING = "s",
|
|
15
|
+
/** Single Character */
|
|
16
|
+
CHAR = "c",
|
|
17
|
+
/** Binary blob */
|
|
18
|
+
BLOB = "b",
|
|
19
|
+
/** True. No bytes are allocated in the argument data */
|
|
20
|
+
TRUE = "T",
|
|
21
|
+
/** False. No bytes are allocated in the argument data */
|
|
22
|
+
FALSE = "F",
|
|
23
|
+
/** Null. No bytes are allocated in the argument data */
|
|
24
|
+
NULL = "N",
|
|
25
|
+
/** Impulse aka bang. Used for event triggers. No bytes are allocated in the argument data */
|
|
26
|
+
IMPULSE = "I",
|
|
27
|
+
COLOR = "r",
|
|
28
|
+
MIDI = "m"
|
|
29
|
+
}
|
|
30
|
+
export declare class OscArgument<T> {
|
|
31
|
+
readonly type: OscArgumentType;
|
|
32
|
+
readonly value: T;
|
|
33
|
+
constructor(type: OscArgumentType, value: T);
|
|
34
|
+
}
|
|
35
|
+
export declare class StringArgument extends OscArgument<string> {
|
|
36
|
+
constructor(value: string);
|
|
37
|
+
}
|
|
38
|
+
export declare class IntArgument extends OscArgument<number> {
|
|
39
|
+
constructor(value: number);
|
|
40
|
+
}
|
|
41
|
+
export declare class BoolArgument extends IntArgument {
|
|
42
|
+
constructor(value: boolean);
|
|
43
|
+
}
|
|
44
|
+
export declare class FloatArgument extends OscArgument<number> {
|
|
45
|
+
constructor(value: number);
|
|
46
|
+
}
|
|
47
|
+
export declare class OscMessage {
|
|
48
|
+
readonly address: string;
|
|
49
|
+
readonly addressParts: string[];
|
|
50
|
+
readonly args: OscArgument<unknown>[];
|
|
51
|
+
constructor(address: string, args?: OscArgument<unknown>[]);
|
|
52
|
+
}
|
|
53
|
+
export declare class StringMessage extends OscMessage {
|
|
54
|
+
constructor(address: string, value: string);
|
|
55
|
+
}
|
|
56
|
+
export declare class BooleanMessage extends OscMessage {
|
|
57
|
+
constructor(address: string, value: boolean);
|
|
58
|
+
}
|
|
59
|
+
export declare class ActionMessage extends OscMessage {
|
|
60
|
+
constructor(commandId: string | number, value?: number | null);
|
|
61
|
+
}
|
|
62
|
+
export declare class ToggleMessage extends OscMessage {
|
|
63
|
+
constructor(address: string);
|
|
64
|
+
}
|
|
65
|
+
export declare class IntegerMessage extends OscMessage {
|
|
66
|
+
constructor(address: string, value: number);
|
|
67
|
+
}
|
|
68
|
+
export declare class FloatMessage extends OscMessage {
|
|
69
|
+
constructor(address: string, value: number);
|
|
70
|
+
}
|