mirror of
https://github.com/danbee/mpd-client
synced 2025-03-04 08:39:09 +00:00
33 lines
950 B
JavaScript
33 lines
950 B
JavaScript
mpdClient.factory('serverEvents', function ($rootScope) {
|
|
|
|
var events = new EventSource('/api/stream'),
|
|
serverEvents = {
|
|
onUpdateQueue: function (callback) {
|
|
this.updateQueueCallback = callback
|
|
},
|
|
onUpdateStatus: function (callback) {
|
|
this.updateStatusCallback = callback
|
|
},
|
|
onUpdateTime: function (callback) {
|
|
this.updateTimeCallback = callback
|
|
}
|
|
}
|
|
|
|
events.onmessage = function(e) {
|
|
response = JSON.parse(e.data);
|
|
switch (response.type) {
|
|
case 'status':
|
|
$rootScope.$apply(function () { serverEvents.updateStatusCallback(response.data) })
|
|
break;
|
|
case 'queue':
|
|
$rootScope.$apply(function () { serverEvents.updateQueueCallback(response.data) })
|
|
break;
|
|
case 'time':
|
|
$rootScope.$apply(function () { serverEvents.updateTimeCallback(response.data) })
|
|
break;
|
|
}
|
|
}
|
|
|
|
return serverEvents
|
|
})
|