private static ServiceRegistration registerAnimationPlayer( BundleContext context, Robot.Id robotId){ AnimationPlayer player = new RampedAnimationPlayer( context, robotId, DEFAULT_MAX_RAMP_TIME_MILLISEC); Properties props = new Properties(); String playerId = player.getAnimationPlayerId(); props.put(Robot.PROP_ID, robotId.toString()); ServiceRegistration reg = OSGiUtils.registerUniqueService(context, AnimationPlayer.class.getName(), AnimationPlayer.PROP_PLAYER_ID, playerId, player, props); theLogger.log(Level.INFO, "OSGiAnimationPlayer Service Registered Successfully."); return reg; }
@Override protected boolean onResume(long time) { for(ServiceAddOn<Playable> addon : myAnimation.getAddOns()){ Playable p = addon.getAddOn(); p.resume(time); } if(mySource != null && mySource instanceof RampedAnimationPlayer && mySignalFactory != null) { List<String> props = new ArrayList<String>(); props.add(AnimationSignal.PROP_RAMPING); if(myLoopFlag) { props.add(AnimationSignal.PROP_LOOP); } AnimationSignal signal = mySignalFactory.createAnimationSignal( mySource.getAnimationPlayerId(), AnimationSignal.EVENT_RESUME, myAnimation.getVersion().getName(), myAnimation.getVersion().getNumber(), myAnimation.hashCode(), myAnimation.getLength(), props); ((RampedAnimationPlayer)mySource).notifyListeners(signal); } return true; } @Override
@Override protected boolean onComplete(long time) { for(ServiceAddOn<Playable> addon : myAnimation.getAddOns()){ Playable p = addon.getAddOn(); p.complete(time); } if(mySource != null && mySource instanceof RampedAnimationPlayer && mySignalFactory != null) { List<String> props = new ArrayList<String>(); props.add(AnimationSignal.PROP_RAMPING); if(myLoopFlag) { props.add(AnimationSignal.PROP_LOOP); } AnimationSignal signal = mySignalFactory.createAnimationSignal( mySource.getAnimationPlayerId(), AnimationSignal.EVENT_COMPLETE, myAnimation.getVersion().getName(), myAnimation.getVersion().getNumber(), myAnimation.hashCode(), myAnimation.getLength(), props); ((RampedAnimationPlayer)mySource).notifyListeners(signal); } return true; }
@Override protected boolean onStop(long time) { for(ServiceAddOn<Playable> addon : myAnimation.getAddOns()){ Playable p = addon.getAddOn(); p.stop(time); } if(mySource != null && mySource instanceof RampedAnimationPlayer && mySignalFactory != null) { List<String> props = new ArrayList<String>(); props.add(AnimationSignal.PROP_RAMPING); if(myLoopFlag) { props.add(AnimationSignal.PROP_LOOP); } AnimationSignal signal = mySignalFactory.createAnimationSignal( mySource.getAnimationPlayerId(), AnimationSignal.EVENT_CANCEL, myAnimation.getVersion().getName(), myAnimation.getVersion().getNumber(), myAnimation.hashCode(), myAnimation.getLength(), props); ((RampedAnimationPlayer)mySource).notifyListeners(signal); } return true; } @Override
@Override protected boolean onPause(long time) { for(ServiceAddOn<Playable> addon : myAnimation.getAddOns()){ Playable p = addon.getAddOn(); p.pause(time); } if(mySource != null && mySource instanceof RampedAnimationPlayer && mySignalFactory != null) { List<String> props = new ArrayList<String>(); props.add(AnimationSignal.PROP_RAMPING); if(myLoopFlag) { props.add(AnimationSignal.PROP_LOOP); } AnimationSignal signal = mySignalFactory.createAnimationSignal( mySource.getAnimationPlayerId(), AnimationSignal.EVENT_PAUSE, myAnimation.getVersion().getName(), myAnimation.getVersion().getNumber(), myAnimation.hashCode(), myAnimation.getLength(), props); ((RampedAnimationPlayer)mySource).notifyListeners(signal); } return true; } @Override
@Override protected boolean onResume(long time) { for(ServiceAddOn<Playable> addon : myAnimation.getAddOns()){ Playable p = addon.getAddOn(); p.resume(time); } if(mySource != null && mySource instanceof DefaultAnimationPlayer) { List<String> props = new ArrayList<String>(); if(myLoopFlag) { props.add(AnimationSignal.PROP_LOOP); } AnimationSignal signal = mySignalFactory.createAnimationSignal( mySource.getAnimationPlayerId(), AnimationSignal.EVENT_RESUME, myAnimation.getVersion().getName(), myAnimation.getVersion().getNumber(), myAnimation.hashCode(), myAnimation.getLength(), props); ((DefaultAnimationPlayer)mySource).notifyListeners(signal); } return true; } @Override
@Override protected boolean onComplete(long time) { for(ServiceAddOn<Playable> addon : myAnimation.getAddOns()){ Playable p = addon.getAddOn(); p.complete(time); } if(mySource != null && mySource instanceof DefaultAnimationPlayer && mySignalFactory != null) { List<String> props = new ArrayList<String>(); if(myLoopFlag) { props.add(AnimationSignal.PROP_LOOP); } AnimationSignal signal = mySignalFactory.createAnimationSignal( mySource.getAnimationPlayerId(), AnimationSignal.EVENT_COMPLETE, myAnimation.getVersion().getName(), myAnimation.getVersion().getNumber(), myAnimation.hashCode(), myAnimation.getLength(), props); ((DefaultAnimationPlayer)mySource).notifyListeners(signal); } return true; }
@Override protected boolean onPause(long time) { for(ServiceAddOn<Playable> addon : myAnimation.getAddOns()){ Playable p = addon.getAddOn(); p.pause(time); } if(mySource != null && mySource instanceof DefaultAnimationPlayer && mySignalFactory != null) { List<String> props = new ArrayList<String>(); if(myLoopFlag) { props.add(AnimationSignal.PROP_LOOP); } AnimationSignal signal = mySignalFactory.createAnimationSignal( mySource.getAnimationPlayerId(), AnimationSignal.EVENT_PAUSE, myAnimation.getVersion().getName(), myAnimation.getVersion().getNumber(), myAnimation.hashCode(), myAnimation.getLength(), props); ((DefaultAnimationPlayer)mySource).notifyListeners(signal); } return true; } @Override
@Override protected boolean onStop(long time) { for(ServiceAddOn<Playable> addon : myAnimation.getAddOns()){ Playable p = addon.getAddOn(); p.stop(time); } if(mySource != null && mySource instanceof DefaultAnimationPlayer && mySignalFactory != null) { List<String> props = new ArrayList<String>(); if(myLoopFlag) { props.add(AnimationSignal.PROP_LOOP); } AnimationSignal signal = mySignalFactory.createAnimationSignal( mySource.getAnimationPlayerId(), AnimationSignal.EVENT_CANCEL, myAnimation.getVersion().getName(), myAnimation.getVersion().getNumber(), myAnimation.hashCode(), myAnimation.getLength(), props); ((DefaultAnimationPlayer)mySource).notifyListeners(signal); } return true; } @Override
mySource.getAnimationPlayerId(), AnimationSignal.EVENT_START, myAnimation.getVersion().getName(),
mySource.getAnimationPlayerId(), AnimationSignal.EVENT_START, myAnimation.getVersion().getName(),