-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdefaults.js
50 lines (48 loc) · 1.63 KB
/
defaults.js
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
(function($, undefined){
var defaults = $.defaults = {};
function selectItem(name){
return {
'from': function(items){
var item = items.next();
while (!item.done) {
if (item.value.name === name) {
return item.value;
}
item = items.next();
}
return undefined;
}
};
}
defaults.paintNames = {
'red': { 'red': 3, 'green': 0 },
'green': { 'red': 0, 'green': 3 },
'orange': { 'red': 3, 'green': 3 }
};
defaults.name = 'Launchpad Mini MIDI 1';
defaults.sysex = false;
defaults.midiAdapterFactory = function(accept, reject){
if (!navigator.requestMIDIAccess){
reject();
} else {
var padName = this.name;
navigator.requestMIDIAccess({ sysex: this.sysex })
.then(function(midiAccess){
return {
'input': selectItem(padName).from(midiAccess.inputs.values()),
'output': selectItem(padName).from(midiAccess.outputs.values())
};
})
.then(function(io){
return new $.MidiAdapter(io.input, io.output);
})
.then(function(midiAdapter){
return new $.Launchpad(midiAdapter);
})
.then(function(pad){
accept(pad);
})
.catch(reject);
}
};
})(window.launchpad = window.launchpad || {});