1
0
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:
Dan Barber 2014-03-25 12:10:14 +00:00
parent fa419d47e8
commit 6dd77fe971
3 changed files with 11 additions and 28 deletions

View File

@ -5,5 +5,9 @@ mpdClient.controller('queue', function ($scope, api, serverEvents) {
$scope.queueSongs = data $scope.queueSongs = data
} }
serverEvents.onUpdateQueue($scope.updateQueue) $scope.playTrack = function(id) {
console.log(id)
}
$scope.$on('update:queue', function (evt, data) { $scope.updateQueue(data) })
}) })

View File

@ -29,6 +29,6 @@ mpdClient.controller('transport', function ($scope, api, serverEvents) {
return ($scope.elapsedTime / $scope.totalTime) * 100 return ($scope.elapsedTime / $scope.totalTime) * 100
} }
serverEvents.onUpdateStatus($scope.updateStatus) $scope.$on('update:status', function (evt, data) { $scope.updateStatus(data) })
serverEvents.onUpdateTime($scope.updateTime) $scope.$on('update:time', function (evt, data) { $scope.updateTime(data) })
}) })

View File

@ -1,32 +1,11 @@
mpdClient.factory('serverEvents', function ($rootScope) { mpdClient.factory('serverEvents', function ($rootScope) {
var events = new EventSource('/api/stream'), 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) { events.onmessage = function(e) {
response = JSON.parse(e.data); response = JSON.parse(e.data);
switch (response.type) { $rootScope.$apply(function() {
case 'status': $rootScope.$broadcast('update:' + response.type, response.data)
$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
}) })