mirror of
https://github.com/danbee/mpd-client
synced 2025-03-04 08:39:09 +00:00
Use events for serverEvents service.
This commit is contained in:
parent
fa419d47e8
commit
6dd77fe971
@ -5,5 +5,9 @@ mpdClient.controller('queue', function ($scope, api, serverEvents) {
|
||||
$scope.queueSongs = data
|
||||
}
|
||||
|
||||
serverEvents.onUpdateQueue($scope.updateQueue)
|
||||
$scope.playTrack = function(id) {
|
||||
console.log(id)
|
||||
}
|
||||
|
||||
$scope.$on('update:queue', function (evt, data) { $scope.updateQueue(data) })
|
||||
})
|
||||
|
||||
@ -29,6 +29,6 @@ mpdClient.controller('transport', function ($scope, api, serverEvents) {
|
||||
return ($scope.elapsedTime / $scope.totalTime) * 100
|
||||
}
|
||||
|
||||
serverEvents.onUpdateStatus($scope.updateStatus)
|
||||
serverEvents.onUpdateTime($scope.updateTime)
|
||||
$scope.$on('update:status', function (evt, data) { $scope.updateStatus(data) })
|
||||
$scope.$on('update:time', function (evt, data) { $scope.updateTime(data) })
|
||||
})
|
||||
|
||||
@ -1,32 +1,11 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
var events = new EventSource('/api/stream')
|
||||
|
||||
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;
|
||||
}
|
||||
$rootScope.$apply(function() {
|
||||
$rootScope.$broadcast('update:' + response.type, response.data)
|
||||
})
|
||||
}
|
||||
|
||||
return serverEvents
|
||||
})
|
||||
|
||||
Loading…
Reference in New Issue
Block a user