content/hifi-content/milad/ROLC/Organize/Projects/Hifi-Scripts/Midi/midiKey.js
2022-02-14 02:04:11 +01:00

76 lines
No EOL
4 KiB
JavaScript

// midiButton.js
//
// Created by Bruce Brown on 8/8/17.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
(function() {
function MidiButton() {
this.clicked = false
return;
}
var white = {red:255, green:255, blue:255};
var black = {red:0, green:0, blue:0};
var blue = {red:0, green:0, blue:255};
MidiButton.prototype = {
preload: function(entityID) {
this.entityID = entityID;
var properties = Entities.getEntityProperties(entityID, ['userData']),
userData = properties.userData && JSON.parse(properties.userData);
},
unload: function(entityID) {
},
receivedMidiEvent: function(entityID){
var properties = Entities.getEntityProperties(entityID, ['userData']);
userData = properties.userData && JSON.parse(properties.userData);
if(userData.midiEvent.type == 9 && userData.midiEvent.velocity != 0){
Entities.editEntity(entityID, { color: blue});
} else {
Entities.editEntity(entityID, { color: {red: userData.color.red, green: userData.color.green, blue: userData.color.blue}});
}
},
enterEntity: function(entityID){
var properties = Entities.getEntityProperties(entityID, ['userData']),
userData = properties.userData && JSON.parse(properties.userData);
Entities.editEntity(entityID, { color: blue});
Midi.sendMidiMessage(userData.midiEvent.device, userData.midiEvent.channel, 9, userData.midiEvent.note, 50);
},
leaveEntity: function(entityID){
var properties = Entities.getEntityProperties(entityID, ['userData']),
userData = properties.userData && JSON.parse(properties.userData);
Entities.editEntity(entityID, { color: {red: userData.color.red, green: userData.color.green, blue: userData.color.blue}});
Midi.sendMidiMessage(userData.midiEvent.device, userData.midiEvent.channel, 8, userData.midiEvent.note, 50);
},
hoverEnterEntity: function(entityID){
var properties = Entities.getEntityProperties(entityID, ['userData']),
userData = properties.userData && JSON.parse(properties.userData);
Entities.editEntity(entityID, { color: blue});
Midi.sendMidiMessage(userData.midiEvent.device, userData.midiEvent.channel, 9, userData.midiEvent.note, 50);
},
hoverLeaveEntity: function(entityID){
var properties = Entities.getEntityProperties(entityID, ['userData']),
userData = properties.userData && JSON.parse(properties.userData);
Entities.editEntity(entityID, { color: {red: userData.color.red, green: userData.color.green, blue: userData.color.blue}});
Midi.sendMidiMessage(userData.midiEvent.device, userData.midiEvent.channel, 8, userData.midiEvent.note, 50);
},
clickDownOnEntity: function(entityID, mouseEvent) {
var properties = Entities.getEntityProperties(entityID, ['userData']),
userData = properties.userData && JSON.parse(properties.userData);
Entities.editEntity(entityID, { color: blue});
this.clicked = false;
Midi.sendMidiMessage(userData.midiEvent.device, userData.midiEvent.channel, 9, userData.midiEvent.note, 50);
},
clickReleaseOnEntity: function(entityID, mouseEvent) {
var properties = Entities.getEntityProperties(entityID, ['userData']),
userData = properties.userData && JSON.parse(properties.userData);
Entities.editEntity(entityID, { color: {red: userData.color.red, green: userData.color.green, blue: userData.color.blue}});
this.clicked = false;
Midi.sendMidiMessage(userData.midiEvent.device, userData.midiEvent.channel, 8, userData.midiEvent.note, 50);
}
};
return new MidiButton();
});