@Override public void packetReady(final AudioUser user) { synchronized (userPackets) { if (!userPackets.containsKey(user.getUser())) { host.setTalkState(user.getUser(), AudioOutputHost.STATE_TALKING); userPackets.put(user.getUser(), user); userPackets.notify(); } } }
private void fillMixFrames(final List<AudioUser> mix) { synchronized (userPackets) { final Iterator<AudioUser> i = userPackets.values().iterator(); while (i.hasNext()) { final AudioUser user = i.next(); if (user.hasFrame()) { if (!user.getUser().localMuted) { mix.add(user); } } else { i.remove(); host.setTalkState(user.getUser(), AudioOutputHost.STATE_PASSIVE); } } } }