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
}
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
}
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) })
})

View File

@ -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
})