MCPcopy
hub / github.com/andrewrk/groovebasin / addPermSubscription

Function addPermSubscription

lib/player_server.js:659–683  ·  view source on GitHub ↗
(name, perm, serializeFn)

Source from the content-addressed store, hash-verified

657 }
658
659 function addPermSubscription(name, perm, serializeFn) {
660 var subscription = self.subscriptions[name] = {
661 version: uuid(),
662 value: serializeFn(),
663 perm: perm,
664 };
665 return function() {
666 var newValue = serializeFn();
667 var delta = curlydiff.diff(subscription.value, newValue);
668 if (delta === undefined) return; // no delta, nothing to send!
669 subscription.value = newValue;
670 subscription.version = uuid();
671 self.forEachClient(function(client) {
672 var clientSubscription = client.subscriptions[name];
673 if (clientSubscription === 'simple') {
674 client.transport.sendMessage(name, newValue);
675 } else if (clientSubscription === 'delta') {
676 client.transport.sendMessage(name, {
677 version: subscription.version,
678 delta: delta,
679 });
680 }
681 });
682 };
683 }
684
685 function getVolume(client) {
686 return self.player.volume;

Callers 1

addSubscriptionFunction · 0.85

Calls 1

uuidFunction · 0.70

Tested by

no test coverage detected