Package com.sun.mpk20.voicelib.app

Examples of com.sun.mpk20.voicelib.app.Player


        Call call = vm.getCall(callID);

        if (call == null) {
            logger.fine("Can't find call for " + callID);

            Player player = vm.getPlayer(callID);

            if (player != null) {
                vm.removePlayer(player);
            }
            return;
View Full Code Here


      double angle = Math.toDegrees(angles[1]) % 360 + 90;

      Vector3f location = localToWorldTransform.getTranslation(null);
 
      Player player =
    AppContext.getManager(VoiceManager.class).getPlayer(callID);

      //AudioTreatmentComponentMO component =
      //  cellRef.get().getComponent(AudioTreatmentComponentMO.class);

      //if (component != null) {
      //    component.transformChanged(location, angle);   // let subclasses know
      //}

      if (player == null) {
          logger.info("can't find player for " + callID);
    return;
      }

      player.moved(location.getX(), location.getY(), location.getZ(), angle);

      logger.finest("PLAYER MOVED " + player + " x " + location.getX()
        + " y " + location.getY() + " z " + location.getZ()
        + " angle " + angle);
        }
View Full Code Here

    return;
      }

      VoiceChatLeaveMessage msg = (VoiceChatLeaveMessage) message;

      Player player = vm.getPlayer(msg.getCallee().getCallID());

      if (player == null) {
    logger.warning("No player for " + msg.getCallee());

          if (audioGroup.getNumberOfPlayers() == 0) {
        endVoiceChat(vm, audioGroup)// cleanup
          }
    return;
      }
     
      setCOSSpeaking(player, msg.getCOSName(), true);

      AudioGroupPlayerInfo info = audioGroup.getPlayerInfo(player);

      if (info == null) {
    return;   // not in group
      }

      /*
       * XXX If the player to be removed from the group is
       * in range of another player which is in a public chat,
       * then rather than removing the player, re-add it
       * as a transient member.
       */
      if (isInRangeOfPublicChat(audioGroup, player)) {
        addPlayerToAudioGroup(audioGroup, player, msg.getCallee(),
        ChatType.PUBLIC, true);

    return;
      }

      removePlayerFromAudioGroup(audioGroup, player);

      if (audioGroup.getNumberOfPlayers() <= 1) {
    endVoiceChat(vm, audioGroup);
      }

      CallSetup callSetup = player.getCall().getSetup();

      if (callSetup.incomingCall || callSetup.externalOutgoingCall) {
          addPlayerToAudioGroup(
        vm.getVoiceManagerParameters().livePlayerAudioGroup,
        player, msg.getCallee(), ChatType.PUBLIC);

          addPlayerToAudioGroup(
        vm.getVoiceManagerParameters().stationaryPlayerAudioGroup,
        player, msg.getCallee(), ChatType.PUBLIC);
      }
     
      return;
  }

  if (message instanceof VoiceChatEndMessage) {
      if (audioGroup == null) {
    logger.info("audioGroup is null");
    return;
      }

      endVoiceChat(vm, audioGroup);
      return;
  }

  if (message instanceof VoiceChatJoinAcceptedMessage) {
      if (audioGroup == null) {
    logger.warning("Join accepted:  Audio group " + group + " no longer exists");
    return;
      }

      VoiceChatJoinAcceptedMessage msg = (VoiceChatJoinAcceptedMessage) message;

      Player player = vm.getPlayer(msg.getCallee().getCallID());

      if (player == null) {
    logger.warning("No player for " + msg.getCallee().getCallID());
    return;
      }

      addPlayerToAudioGroup(audioGroup, player, msg.getCallee(), msg.getChatType());

      sender.send(msg);
      return;
  }

  if (message instanceof VoiceChatHoldMessage) {
      VoiceChatHoldMessage msg = (VoiceChatHoldMessage) message;

      if (audioGroup == null) {
    logger.warning("Hold:  Audio group " + group + " no longer exists");
    return;
      }
 
      Player player = vm.getPlayer(msg.getCallee().getCallID());

      if (player == null) {
    logger.warning("No player for " + msg.getCallee().getCallID());
    return;
      }

      setCOSSpeaking(player, msg.getCOSName(), msg.isOnHold());

      AudioGroupPlayerInfo playerInfo = audioGroup.getPlayerInfo(player);

      if (playerInfo == null) {
    logger.warning("No player info for " + player);
    return;
      }
 
      if (msg.isOnHold()) {
    playerInfo.isSpeaking = false;
    playerInfo.listenAttenuation = msg.getVolume();
      } else {
    playerInfo.isSpeaking = true;
    playerInfo.speakingAttenuation = AudioGroup.DEFAULT_SPEAKING_ATTENUATION;
    playerInfo.listenAttenuation = AudioGroup.DEFAULT_LISTEN_ATTENUATION;
      }

      updateAttenuation(player);
      sender.send(clientID, msg);
      return;
  }

  if (message instanceof VoiceChatDialOutMessage) {
      VoiceChatPhoneMessageHandler.getInstance().dialOut(
    sender, clientID, (VoiceChatDialOutMessage) message);
      return;
  }

  if (message instanceof VoiceChatJoinMessage == false) {
      logger.warning("Invalid message type " + message);
      return;
  }

  VoiceChatJoinMessage msg = (VoiceChatJoinMessage) message;

  if (audioGroup == null) {
      AudioGroupSetup setup = new AudioGroupSetup();
      setup.spatializer = new FullVolumeSpatializer();
      setup.spatializer.setAttenuator(Spatializer.DEFAULT_MAXIMUM_VOLUME);
      setup.virtualPlayerListener = this;
      setup.audioGroupListener = this;
      audioGroup = vm.createAudioGroup(group, setup);
  }

  PresenceInfo[] calleeList = msg.getCalleeList();

  PresenceInfo caller = msg.getCaller();

  if (msg.getChatType() != null) {
      Player player = vm.getPlayer(caller.getCallID());

      if (player == null) {
    logger.warning("No Player for " + caller.getCallID());
    return;
      }

      boolean added = addPlayerToAudioGroup(audioGroup, player, caller, msg.getChatType());

      if (added) {
          sender.send(new VoiceChatJoinAcceptedMessage(group, caller, msg.getChatType()));
      }

      if (added == false && (calleeList == null || calleeList.length == 0)) {
          endVoiceChat(vm, audioGroup);
          return;
      }
  }

  logger.info("Request to join AudioGroup " + group + " caller " + caller);

  if (calleeList == null || calleeList.length == 0) {
      return;
  }

  for (int i = 0; i < calleeList.length; i++) {
      PresenceInfo info = calleeList[i];

      String callID = info.getCallID();

      Player player = vm.getPlayer(callID);

      if (player == null) {
    logger.warning("No player for callID " + callID);
    continue;
      }

      if (info.getClientID() == null) {
    /*
     * This is an outworlder.  We automatically join them to the group
      * The InCallDialog can be used to change the privacy setting
     * and to remove the outworlder from the chat.
     */
          addPlayerToAudioGroup(audioGroup, player, info, msg.getChatType());
          sender.send(new VoiceChatJoinAcceptedMessage(group, info, msg.getChatType()));
        continue;
      }

      AudioGroupPlayerInfo playerInfo = audioGroup.getPlayerInfo(player);

      if (playerInfo != null && sameChatType(playerInfo.chatType, msg.getChatType())) {
    logger.fine("Player " + info
        + " is already in audio group " + audioGroup);

    if (playerInfo.isTransientMember == false) {
        continue;
    }
      }

            WonderlandClientID id =
         CommsManagerFactory.getCommsManager().getWonderlandClientID(info.getClientID());

      if (id == null) {
    logger.warning("No WonderlandClientID for " + info);
    continue;
      }

      Call call = player.getCall();

      if (call != null) {
    try {
        call.playTreatment("audioGroupInvite.au");
    } catch (IOException e) {
View Full Code Here

  ArrayList<PresenceInfo> chatters = new ArrayList();

  Player[] players = audioGroup.getPlayers();

  for (int i = 0; i < players.length; i++) {
      Player player = players[i];

      PresenceInfo info = playerMap.get(player.getId());
 
      if (info == null) {
    logger.fine("Unable to find presence info for "
        + player.getId() + " group " + group);
    continue;
      }
   
      if (chatType == null || audioGroup.getPlayerInfo(player).chatType ==
        getChatType(chatType)) {
View Full Code Here

    private void endVoiceChat(VoiceManager vm, AudioGroup audioGroup) {
  Player[] players = audioGroup.getPlayers();

  for (int i = 0; i < players.length; i++) {
      Player player = players[i];
     
      removePlayerFromAudioGroup(audioGroup, player);
  }

  vm.removeAudioGroup(audioGroup);
View Full Code Here

  String softphoneCallID = message.getSoftphoneCallID();

  Call softphoneCall = vm.getCall(softphoneCallID);

  Player softphonePlayer = null;

  if (softphoneCall != null) {
      softphonePlayer = softphoneCall.getPlayer();
  }
       
   if (softphonePlayer == null) {
      logger.warning("Softphone player is not connected!");
            sender.send(clientID, new VoiceChatCallEndedMessage(
          group, callee, "Softphone is not connected!"));
      return;
  }

  logger.fine("EXTERNAL CALLID IS " + externalCallID + " "
      + " softphone callID " + softphoneCallID + " softphone call "
      + softphoneCall + " softphone player " + softphonePlayer);

  logger.fine("Got place call message " + externalCallID);

  PlayerSetup playerSetup = new PlayerSetup();
  playerSetup.x = softphonePlayer.getX();
  playerSetup.y = 1.5;
  playerSetup.z = softphonePlayer.getZ();
  playerSetup.isOutworlder = true;
  playerSetup.isLivePlayer = true;

  CallSetup setup = new CallSetup();
 
  setup.externalOutgoingCall = true;

  CallParticipant cp = new CallParticipant();

  setup.cp = cp;

  try {
      setup.bridgeInfo = vm.getVoiceBridge();
  } catch (IOException e) {
      logger.warning("Unable to get voice bridge for call " + cp + ":  "
    + e.getMessage());
            sender.send(clientID, new VoiceChatCallEndedMessage(
          group, callee, "No voice bridge available!"));
      return;
  }

  AudioGroup audioGroup = vm.getAudioGroup(group);

  if (audioGroup == null) {
      logger.warning("No audio group " + group);
            sender.send(clientID, new VoiceChatCallEndedMessage(
          group, callee, "Audio group not found!"));
      return;
  }

  cp.setPhoneNumber(message.getPhoneNumber());
  cp.setName(callee.getUsernameAlias());
  cp.setCallId(externalCallID);
  cp.setConferenceId(vm.getVoiceManagerParameters().conferenceId);
  cp.setVoiceDetection(true);
  cp.setDtmfDetection(true);
  cp.setVoiceDetectionWhileMuted(true);
  cp.setHandleSessionProgress(true);

  new VoiceChatPhoneStatusListener(group, callee, externalCallID, clientID);
 
  Call externalCall;

  try {
            externalCall = vm.createCall(externalCallID, setup);
  } catch (IOException e) {
      logger.warning("Unable to create call " + cp + ":  "
    + e.getMessage());
            sender.send(clientID, new VoiceChatCallEndedMessage(
          group, callee, "Can't create call!"));
      return;
  }

  Player externalPlayer = vm.createPlayer(externalCallID, playerSetup);

  externalCall.setPlayer(externalPlayer);

  externalPlayer.setCall(externalCall);

        callee = new PresenceInfo(null, null, callee.getUserID(), externalCallID);

  VoiceChatHandler.getInstance().addPlayerToAudioGroup(audioGroup,
      externalPlayer, callee, message.getChatType());
View Full Code Here

        public void playerInRange(Player player, Player playerInRange,
                                  boolean isInRange)
        {
            // look up the binding in the data store
            try {
                PlayerInRangeListener listener =
                        (PlayerInRangeListener) AppContext.getDataManager().getBinding(bindingName);
                listener.playerInRange(player, playerInRange, isInRange);
            } catch (ObjectNotFoundException onfe) {
                logger.log(Level.WARNING, "Object not found for binding " +
                           bindingName);
                player.removePlayerInRangeListener(this);
            } catch (NameNotBoundException nnbe) {
View Full Code Here

    relock(sender);
      }

      logger.fine("Got place call message " + externalCallID);

      PlayerSetup playerSetup = new PlayerSetup();
      //playerSetup.x =  translation.x;
      //playerSetup.y =  translation.y;
      //playerSetup.z =  translation.z;
      playerSetup.isOutworlder = true;
      playerSetup.isLivePlayer = true;
View Full Code Here

                logger.info("Transferring call " + call
        + " to phone " + phoneInfo.phoneNumber);

    Vector3f location = getLocation(phone.phoneCellRef);

    PlayerSetup setup = new PlayerSetup();
    setup.x = location.getX();
    setup.y = location.getY();
    setup.z = location.getZ();
    setup.isOutworlder = true;
    setup.isLivePlayer = true;
View Full Code Here

          }    
      }

      audioBounds = new BoundingSphere((float) extent, new Vector3f());

      Spatializer spatializer = new FullVolumeSpatializer(extent);
      spatializer.setAttenuator(volume);
      return spatializer;
  } else {
            audioBounds = new BoundingSphere((float) extent, new Vector3f());
        }
 
  double fullVolumeRadius = fullVolumeAreaPercent / 100. * extent;

  double falloff = .92 + ((50 - this.falloff) * ((1 - .92) / 50));

  if (falloff >= 1) {
      falloff = .999;
  }

  logger.warning("id " + groupId + " cellRadius " + cellRadius
      + " extent " + extent + " use cell bounds " + useCellBounds
      + " fvr " + fullVolumeRadius + " falloff "
      + falloff + " volume " + volume);

        if (distanceAttenuated == true) {
            DefaultSpatializer spatializer = new DefaultSpatializer();

            spatializer.setFullVolumeRadius(fullVolumeRadius);

            spatializer.setZeroVolumeRadius(extent);

      spatializer.setAttenuator(volume);

      FalloffFunction falloffFunction = spatializer.getFalloffFunction();

      falloffFunction.setFalloff(falloff);

      spatializer.setAttenuator(volume);

      return spatializer;
        }

  Spatializer spatializer = new FullVolumeSpatializer(extent);
  spatializer.setAttenuator(volume);
  return spatializer;
    }
View Full Code Here

TOP

Related Classes of com.sun.mpk20.voicelib.app.Player

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.