Attempting to make it easier to work with a single device. Still not bound to the new controlService.

This commit is contained in:
Simo Kinnunen
2014-02-05 11:08:37 +09:00
parent 37303c5d92
commit 36d0af71b5
11 changed files with 141 additions and 75 deletions

View File

@@ -1,75 +1,45 @@
define(['./module', 'lodash'], function(mod, _) {
function GroupServiceFactory($rootScope, socket) {
function GroupServiceFactory($rootScope, socket, userService) {
var groupService = {
members: []
}
socket.on('group.join', function(data) {
groupService.members.push(data.serial)
console.log('group.join', data)
$rootScope.$digest()
})
socket.on('group.leave', function(data) {
_.pull(groupService.members, data.serial)
console.log('group.leave', data)
$rootScope.$digest()
})
socket.on('device.absent', function(data) {
_.pull(groupService.members, data.serial)
$rootScope.$digest()
})
function touchSender(type) {
return function(x, y) {
socket.emit(type, {
x: x
, y: y
})
userService.user().then(function(user) {
function ownerFilter(listener) {
return function(data) {
if (data.owner.email === user.email) {
listener()
}
}
}
}
function keySender(type) {
return function(key) {
socket.emit(type, {
key: key
})
}
}
socket.on('group.join', ownerFilter(function(data) {
groupService.members.push(data.serial)
console.log('group.join', data)
$rootScope.$digest()
}))
socket.on('group.leave', ownerFilter(function(data) {
_.pull(groupService.members, data.serial)
console.log('group.leave', data)
$rootScope.$digest()
}))
socket.on('device.absent', /* unfiltered */ function(data) {
_.pull(groupService.members, data.serial)
$rootScope.$digest()
})
})
groupService.invite = function(requirements) {
socket.emit('group.invite', requirements)
userService.user().then(function(user) {
socket.emit('group.invite', requirements)
})
}
groupService.kick = function(requirements) {
socket.emit('group.kick', requirements)
}
groupService.touchDown = touchSender('input.touchDown')
groupService.touchMove = touchSender('input.touchMove')
groupService.touchUp = touchSender('input.touchUp')
groupService.tap = touchSender('input.tap')
groupService.keyDown = keySender('input.keyDown')
groupService.keyUp = keySender('input.keyUp')
groupService.keyPress = keySender('input.keyPress')
groupService.home = function() {
socket.emit('input.home')
}
groupService.menu = function() {
socket.emit('input.menu')
}
groupService.back = function() {
socket.emit('input.back')
}
groupService.type = function(text) {
socket.emit('input.type', {
text: text
userService.user().then(function(user) {
socket.emit('group.kick', requirements)
})
}
@@ -79,6 +49,7 @@ define(['./module', 'lodash'], function(mod, _) {
mod.factory('groupService'
, [ '$rootScope'
, 'socketService'
, 'userService'
, GroupServiceFactory
])
})