Finally a more stable api and playback use case

This commit is contained in:
Sam Cake 2015-12-01 00:15:12 -08:00
parent 196f7e71c4
commit 921cd94c07
3 changed files with 23 additions and 47 deletions

View file

@ -192,27 +192,22 @@ function printDebug(message) {
this.timeSinceLastAlive = 0;
Messages.sendMessage(SERVICE_CHANNEL, packServiceMessage(BROADCAST_AGENTS, MASTER_ALIVE, MASTER_ID));
printDebug("checking the agents status");
{
// Check for alive connected agents
var lostAgents = new Array();
for (var i = 0; i < this.hiredActors.length; i++) {
var actor = this.hiredActors[i];
printDebug("checking :" + JSON.stringify(actor));
var lastAlive = actor.incrementAliveCycle()
if (lastAlive > NUM_CYCLES_BEFORE_RESET) {
printDebug("Agent Lost, firing Agent");
lostAgents.push(actor);
printDebug("Agent Lost, firing Agent #" + i + JSON.stringify(actor));
lostAgents.push(i);
}
}
// now fire gathered lost agents
if (lostAgents.length > 0) {
// now fire gathered lost agents from end to begin
while (lostAgents.length > 0) {
printDebug("Firing " + lostAgents.length + " agents" + JSON.stringify(lostAgents));
for (var i = 0; i < lostAgents.length; i++) {
this.fireAgent(lostAgents[l]);
}
this.fireAgent(this.hiredActors[lostAgents.pop()]);
}
}
}
@ -251,7 +246,7 @@ function printDebug(message) {
MasterController.prototype._removeAgent = function(actorIndex) {
// check to see if we know about this agent
if (actorIndex >= 0) {
printDebug("before _removeAgent #" + actorIndex + " " + JSON.stringify(this))
printDebug("MasterController.prototype._removeAgent #" + actorIndex + " " + JSON.stringify(this))
this.knownAgents.splice(actorIndex, 1);
var lostActor = this.hiredActors[actorIndex];
@ -259,9 +254,6 @@ function printDebug(message) {
var lostAgentID = lostActor.agentID;
lostActor.agentID = INVALID_AGENT;
printDebug("Clearing agent " + actorIndex + " Forgeting about it");
printDebug("after _removeAgent #" + actorIndex + " " + JSON.stringify(this))
if (lostAgentID != INVALID_AGENT) {
printDebug("fired actor is still connected, send fire command");

View file

@ -9,9 +9,6 @@
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
// Agent is an avatar
Agent.isAvatar = true;
Script.include("./AgentPoolControler.js");
var agentController = new AgentController();
@ -34,8 +31,6 @@ var WAIT_FOR_AUDIO_MIXER = 1;
var PLAY = 1;
var PLAY_LOOP = 2;
var STOP = 3;
var SHOW = 4;
var HIDE = 5;
var LOAD = 6;
Recording.setPlayFromCurrentLocation(playFromCurrentLocation);
@ -71,28 +66,13 @@ function agentCommand(command) {
Recording.stopPlaying();
}
break;
case SHOW:
print("Show");
break;
case HIDE:
print("Hide");
if (Recording.isPlaying()) {
Recording.stopPlaying();
}
break;
case LOAD:
{
print("Load" + command.argument_key);
print("Agent #" + command.dest_key + " loading clip URL: " + command.argument_key);
Recording.loadRecording(command.argument_key);
print("After Load" + command.argument_key);
/*if(command.argument_key == null) {
print("Agent #" + id + " loading clip URL is NULL, nothing happened");
} else *{
print("Agent #" + id + " loading clip URL: " + command.argument_key);
Recording.loadRecording(command.argument_key);
}*/
Recording.setPlayerTime(0);
}
break;
default:
@ -105,17 +85,18 @@ function agentCommand(command) {
function agentHired() {
print("Agent Hired from playbackAgents.js");
if (Recording.isPlaying()) {
Recording.stopPlaying();
}
Agent.isAvatar = true;
Recording.stopPlaying();
Recording.setPlayerLoop(false);
Recording.setPlayerTime(0);
}
function agentFired() {
print("Agent Fired from playbackAgents.js");
if (Recording.isPlaying()) {
Recording.stopPlaying();
}
Recording.stopPlaying();
Recording.setPlayerTime(0);
Recording.setPlayerLoop(false);
Agent.isAvatar = false;
}

View file

@ -26,8 +26,6 @@ Tool.IMAGE_WIDTH /= 2;
var PLAY = 1;
var PLAY_LOOP = 2;
var STOP = 3;
var SHOW = 4;
var HIDE = 5;
var LOAD = 6;
var windowDimensions = Controller.getViewportDimensions();
@ -42,10 +40,6 @@ var TEXT_MARGIN = 3;
// Add new features to Actor class:
Actor.prototype.destroy = function() {
print("Actor.prototype.destroy");
this.toolbar.cleanup();
Overlays.deleteOverlay(this.nameOverlay);
print("Need to fire myself" + this.agentID);
masterController.fireAgent(this);
}
@ -123,6 +117,11 @@ Actor.prototype._buildUI = function() {
});
}
Actor.prototype._destroyUI = function() {
this.toolbar.cleanup();
Overlays.deleteOverlay(this.nameOverlay);
}
Actor.prototype.moveUI = function(pos) {
var textSize = TEXT_HEIGHT + 2 * TEXT_MARGIN;
this.toolbar.move(pos.x, pos.y);
@ -329,6 +328,9 @@ Director.prototype.hireActor = function(clipURL) {
if (index >= 0) {
localThis.actors.splice(index, 1);
}
actor._destroyUI();
actor.destroy();
moveUI();
}
@ -338,6 +340,7 @@ Director.prototype.hireActor = function(clipURL) {
masterController.sendCommand(actor.agentID, LOAD, actor.clipURL);
});
masterController.hireAgent(newActor);
newActor._buildUI();