Long-running socket watcher, needs proper cleanup
This commit is contained in:
@ -1,14 +1,15 @@
|
||||
|
||||
import ReactGA from 'react-ga'
|
||||
import ReactGA from 'react-ga';
|
||||
|
||||
var helpers = require('../../helpers')
|
||||
var coreActions = require('../core/actions')
|
||||
var uiActions = require('../ui/actions')
|
||||
var mopidyActions = require('../mopidy/actions')
|
||||
var pusherActions = require('./actions')
|
||||
var lastfmActions = require('../lastfm/actions')
|
||||
var geniusActions = require('../genius/actions')
|
||||
var spotifyActions = require('../spotify/actions')
|
||||
var helpers = require('../../helpers');
|
||||
var coreActions = require('../core/actions');
|
||||
var uiActions = require('../ui/actions');
|
||||
var mopidyActions = require('../mopidy/actions');
|
||||
var pusherActions = require('./actions');
|
||||
var lastfmActions = require('../lastfm/actions');
|
||||
var geniusActions = require('../genius/actions');
|
||||
var spotifyActions = require('../spotify/actions');
|
||||
var snapcastActions = require('../snapcast/actions');
|
||||
|
||||
const PusherMiddleware = (function(){
|
||||
|
||||
@ -159,6 +160,11 @@ const PusherMiddleware = (function(){
|
||||
store.dispatch(uiActions.createNotification({type: 'bad', content: 'Test failed'}));
|
||||
break;
|
||||
}
|
||||
|
||||
// Pass snapcast events to the Snapcast service
|
||||
if (message.method.startsWith('snapcast_')){
|
||||
store.dispatch(snapcastActions.eventReceived(message));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
Reference in New Issue
Block a user