kopia lustrzana https://github.com/FacilMap/facilmap
53 wiersze
1.1 KiB
JavaScript
53 wiersze
1.1 KiB
JavaScript
![]() |
var utils = require("./utils");
|
||
|
|
||
|
var listeners = { };
|
||
|
|
||
![]() |
function notifyPadListeners(padId, eventType, getData) {
|
||
|
var isFunc = (typeof getData == "function");
|
||
![]() |
|
||
![]() |
( listeners[padId] || [ ]).forEach(function(listener) {
|
||
![]() |
var data = isFunc ? getData(listener) : getData;
|
||
![]() |
if(data == null)
|
||
|
return;
|
||
![]() |
|
||
![]() |
listener.emit(eventType, data);
|
||
![]() |
});
|
||
|
}
|
||
|
|
||
|
function addPadListener(listener) {
|
||
|
if(listeners[listener.padId] == null)
|
||
|
listeners[listener.padId] = [ ];
|
||
|
|
||
|
listeners[listener.padId].push(listener);
|
||
|
}
|
||
|
|
||
|
function removePadListener(listener) {
|
||
|
var l = listeners[listener.padId];
|
||
|
if(l == null)
|
||
|
return;
|
||
|
|
||
|
var idx = l.indexOf(listener);
|
||
|
if(idx == -1)
|
||
|
return;
|
||
|
|
||
|
listeners[listener.padId] = l.slice(0, idx).concat(l.slice(idx+1));
|
||
|
}
|
||
|
|
||
![]() |
function changePadId(oldPadId, newPadId) {
|
||
|
if(oldPadId == newPadId)
|
||
|
return;
|
||
|
|
||
|
listeners[newPadId] = listeners[oldPadId];
|
||
|
delete listeners[oldPadId];
|
||
|
|
||
|
listeners[newPadId].forEach(function(listener) {
|
||
|
listener.padId = newPadId;
|
||
|
});
|
||
|
}
|
||
|
|
||
![]() |
module.exports = {
|
||
|
notifyPadListeners : notifyPadListeners,
|
||
|
addPadListener : addPadListener,
|
||
![]() |
removePadListener: removePadListener,
|
||
|
changePadId: changePadId
|
||
![]() |
};
|