1
0
mirror of https://github.com/danbee/mpd-client synced 2025-03-04 08:39:09 +00:00

WIP: Server events.

This commit is contained in:
Dan Barber 2014-03-19 17:54:04 +00:00
parent ed2a127d0c
commit 3daa289a78
4 changed files with 34 additions and 22 deletions

View File

@ -1,12 +1,18 @@
mpdClient.controller('transport', function ($rootScope, $scope, $http) {
mpdClient.controller('transport', function ($rootScope, $scope, $http, serverEvents) {
var Status = $http({ method: 'GET', url: '/api/status' })
$rootScope.status = { time: [] }
serverEvents.onUpdateStatus($scope.updateStatus)
Status.success(function (data, status, headers, config) {
$rootScope.status = data
$scope.updateStatus(data)
})
$scope.updateStatus = function(data) {
$rootScope.status = data
}
$scope.sendCommand = function (command) {
$http({ method: 'PUT', url: '/api/control/' + command })
}

View File

@ -3,5 +3,6 @@
//= require ./libs/angular-resource
//= require ./mpd-client.app
//= require_tree ./services/
//= require_tree ./filters/
//= require_tree ./controllers/

View File

@ -1,20 +0,0 @@
angular.module('mpdClient.services')
.factory('eventSource', function ($scope) {
$scope.events = new EventSource('/api/stream')
$scope.events.onmessage = function(e) {
response = JSON.parse(e.data);
switch (response.type) {
case 'status':
$scope.$emit('update:status', response.data)
break;
case 'queue':
$scope.$emit('update:queue', response.data)
break;
case 'time':
$scope.$emit('update:time', response.data);
break;
}
}
})

View File

@ -0,0 +1,25 @@
mpdClient.factory('serverEvents', function () {
var events = new EventSource('/api/stream'),
serverEvents = {
onUpdateStatus: function (callback) {
this.onUpdateStatusCallback = callback
}
}
events.onmessage = function(e) {
response = JSON.parse(e.data);
switch (response.type) {
case 'status':
serverEvents.onUpdateStatusCallback(response.data)
break;
case 'queue':
$scope.$emit('update:queue', response.data)
break;
case 'time':
$scope.$emit('update:time', response.data);
break;
}
}
return serverEvents
})