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
|
$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
|
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) })
|
||||||
})
|
})
|
||||||
|
|||||||
@ -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
|
|
||||||
})
|
})
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user