Examples of AudioGroupPlayerInfo


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

        AudioGroupSetup audioGroupSetup = new AudioGroupSetup();
        audioGroupSetup.spatializer = new FullVolumeSpatializer();

        audioGroup = vm.createAudioGroup(audioGroupId, audioGroupSetup);
        audioGroup.addPlayer(externalPlayer,
            new AudioGroupPlayerInfo(true,
            AudioGroupPlayerInfo.ChatType.EXCLUSIVE));
        audioGroup.addPlayer(softphonePlayer,
            new AudioGroupPlayerInfo(true,
            AudioGroupPlayerInfo.ChatType.EXCLUSIVE));
    } else {
        AudioGroup defaultLivePlayerAudioGroup =
            parameters.livePlayerAudioGroup;

        defaultLivePlayerAudioGroup.addPlayer(externalPlayer,
            new AudioGroupPlayerInfo(true,
            AudioGroupPlayerInfo.ChatType.PUBLIC));

        AudioGroup defaultStationaryPlayerAudioGroup =
            parameters.stationaryPlayerAudioGroup;

        defaultStationaryPlayerAudioGroup.addPlayer(externalPlayer,
            new AudioGroupPlayerInfo(false,
            AudioGroupPlayerInfo.ChatType.PUBLIC));
    }

    logger.fine("done with audio groups");
            }
           
      if (externalCall != null) {
          externalCallID = externalCall.getId();
      }

      logger.fine("Setting actual call id to " + externalCallID);

      listing.setExternalCallID(externalCallID)// set actual call Id

            //Check implicit privacy settings
            if (listing.isPrivate()) {
                /** HARRISNOTE: We need our client name later in order to
                 * setup private spatializers. But because we didn't know
                 * our proper client name in the PhoneCell, we update the
                 * callListing now that we do.
                 **/
    listing.setPrivateClientName(externalCallID);

                /*
     * Set the call audio to whisper mode until the caller
     * chooses to join the call.
     */
                if (listing.simulateCalls() == false) {
                    //Mute the two participants to the outside world
                    logger.fine("attenuate other groups");
        softphonePlayer.attenuateOtherGroups(audioGroup, 0, 0);
                    logger.fine("back from attenuate other groups");
                }
            } else {
    Vector3f center = new Vector3f();

    phoneCellMO.getWorldBounds().getCenter(center);

          center.setY((float).5);

                new Orb(listing.getContactName(), listing.getContactName(),
        externalCallID, center, .1, listing.simulateCalls());
      }

            if (listing.simulateCalls() == false) {
                //Place the calls audio at the phones position
             Vector3f location = new Vector3f();

                location = phoneCellMO.getWorldTransform(null).getTranslation(location);

                externalPlayer.moved(location.x, location.y, location.z, 0);
            }
         
            /*
       * Send PLACE_CALL_RESPONSE message back to all the clients
       * to signal success.
       */
            sender.send(clientID, new PlaceCallResponseMessage(
    phoneCellMO.getCellID(), listing, true));

      logger.fine("back from notifying user");
      return;
  }

  if (msg instanceof JoinCallMessage) {
            //Our phone cell wants us to join the call into the world.
           
            if (listing.simulateCalls() == false) {
                //Stop any current ringing.
          try {
                    softphoneCall.stopTreatment("ring_tone.au");
          } catch (IOException e) {
        logger.fine("Unable to stop treatment to " + softphoneCall + ":  "
            + e.getMessage());
          }

    AudioGroup defaultLivePlayerAudioGroup = parameters.livePlayerAudioGroup;

    defaultLivePlayerAudioGroup.addPlayer(externalPlayer,
        new AudioGroupPlayerInfo(true,
        AudioGroupPlayerInfo.ChatType.PUBLIC));

    AudioGroup defaultStationaryPlayerAudioGroup = parameters.stationaryPlayerAudioGroup;

    defaultStationaryPlayerAudioGroup.addPlayer(externalPlayer,
        new AudioGroupPlayerInfo(false,
        AudioGroupPlayerInfo.ChatType.PUBLIC));

          softphonePlayer.attenuateOtherGroups(audioGroup,
        AudioGroup.DEFAULT_SPEAKING_ATTENUATION,
        AudioGroup.DEFAULT_LISTEN_ATTENUATION);
View Full Code Here

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

        private boolean isInSecretAudioGroup(Player player) {
            AudioGroup[] audioGroups = player.getAudioGroups();

            for (int i = 0; i < audioGroups.length; i++) {
                AudioGroupPlayerInfo info = audioGroups[i].getPlayerInfo(player);

                if (info.chatType == AudioGroupPlayerInfo.ChatType.SECRET) {
                    return true;
                }
            }
View Full Code Here

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

    private AudioGroup getSecretAudioGroup(Player player) {
  AudioGroup[] audioGroups = player.getAudioGroups();

  for (int i = 0; i < audioGroups.length; i++) {
            AudioGroupPlayerInfo info = audioGroups[i].getPlayerInfo(player);

            if (info.chatType == AudioGroupPlayerInfo.ChatType.SECRET) {
    return audioGroups[i];
      }
  }
View Full Code Here

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

    VoiceManagerParameters parameters = vm.getVoiceManagerParameters();

                AudioGroup defaultLivePlayerAudioGroup = parameters.livePlayerAudioGroup;

                AudioGroupPlayerInfo groupInfo = new AudioGroupPlayerInfo(true,
                    AudioGroupPlayerInfo.ChatType.PUBLIC);

    groupInfo.defaultListenAttenuation = 1.0;

                defaultLivePlayerAudioGroup.addPlayer(externalPlayer, groupInfo);

    AudioGroup defaultStationaryPlayerAudioGroup = parameters.stationaryPlayerAudioGroup;

                defaultStationaryPlayerAudioGroup.addPlayer(externalPlayer,
                    new AudioGroupPlayerInfo(false,
                    AudioGroupPlayerInfo.ChatType.PUBLIC));

                call.mute(false);

    call.transferToConference(parameters.conferenceId);
View Full Code Here

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

        call.setPlayer(player);
        player.setCall(call);

        vm.getVoiceManagerParameters().livePlayerAudioGroup.addPlayer(player,
                new AudioGroupPlayerInfo(true, AudioGroupPlayerInfo.ChatType.PUBLIC));

        AudioGroupPlayerInfo info =
                new AudioGroupPlayerInfo(false, AudioGroupPlayerInfo.ChatType.PUBLIC);

        info.defaultSpeakingAttenuation = 0;

        vm.getVoiceManagerParameters().stationaryPlayerAudioGroup.addPlayer(player, info);
    }
View Full Code Here

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

  //System.out.println("CONE PROX Player:  " + player);

  boolean isSpeaking = (inPrivateChat(audioGroup, player) == false);

        audioGroup.addPlayer(player, new AudioGroupPlayerInfo(isSpeaking,
                AudioGroupPlayerInfo.ChatType.PRIVATE));
       
  WonderlandClientSender sender =
            WonderlandContext.getCommsManager().getSender(AudioManagerConnectionType.CONNECTION_TYPE);
View Full Code Here

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

    private boolean inPrivateChat(AudioGroup audioGroup, Player player) {
  AudioGroup[] audioGroups = player.getAudioGroups();

  for (int i = 0; i < audioGroups.length; i++) {
      AudioGroupPlayerInfo info = audioGroups[i].getPlayerInfo(player);

      if (info == null || info.chatType.equals(AudioGroupPlayerInfo.ChatType.PUBLIC) == false) {
    return true;
      }
  }
View Full Code Here

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

    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);

View Full Code Here

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

    private boolean isInRangeOfPublicChat(AudioGroup audioGroup, Player player) {
  Player[] players = audioGroup.getPlayers();

  for (int i = 0; i < players.length; i++) {
      AudioGroupPlayerInfo info = audioGroup.getPlayerInfo(players[i]);

      if (info == null || info.chatType.equals(AudioGroupPlayerInfo.ChatType.PUBLIC) == false) {
    continue;
      }
View Full Code Here

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

  AudioGroup[] audioGroups = player.getAudioGroups();

  AudioGroup nonPublicAudioGroup = null;

  AudioGroupPlayerInfo playerInfo;

  for (int i = 0; i < audioGroups.length; i++) {
      AudioGroup audioGroup = audioGroups[i];

      playerInfo = audioGroup.getPlayerInfo(player);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.