Long-running socket watcher, needs proper cleanup

This commit is contained in:
James Barnsley
2018-11-04 14:41:08 +13:00
parent 4327771b2e
commit ffaef9d63e
8 changed files with 156 additions and 44 deletions

View File

@ -77,6 +77,14 @@ export function setGroupVolume(id, percent, old_percent = 0){
}
}
export function eventReceived(message){
return {
type: 'SNAPCAST_EVENT_RECEIVED',
method: message.method,
params: message.params
}
}

View File

@ -392,6 +392,45 @@ const SnapcastMiddleware = (function(){
}
break;
case 'SNAPCAST_EVENT_RECEIVED':
console.log(action)
// Drop the prefix
action.method = action.method.replace('snapcast_','');
switch (action.method){
case 'Client.OnVolumeChanged':
store.dispatch(snapcastActions.clientLoaded(
{
id: action.params.id,
mute: action.params.volume.muted,
volume: action.params.volume.percent
}
));
break;
case 'Client.OnLatencyChanged':
store.dispatch(snapcastActions.clientLoaded(
{
id: action.params.id,
latency: action.params.latency
}
));
break;
case 'Client.OnNameChanged':
store.dispatch(snapcastActions.clientLoaded(
{
id: action.params.id,
name: action.params.name
}
));
break;
}
break;
// This action is irrelevant to us, pass it on to the next middleware
default:
return next(action);