mirror of https://github.com/sipwise/jitsi.git
Changes DTMFInfo to say that it has processed only INFO messages of its content type and sub-type, not just any INFO message.
parent
0da026fc80
commit
0dffc985ec
@ -0,0 +1,107 @@
|
||||
/*
|
||||
* Jitsi, the OpenSource Java VoIP and Instant Messaging client.
|
||||
*
|
||||
* Distributable under LGPL license.
|
||||
* See terms of license at gnu.org.
|
||||
*/
|
||||
package net.java.sip.communicator.service.neomedia.control;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* Provides a default implementation of {@link KeyFrameControl}.
|
||||
*
|
||||
* @author Lyubomir Marinov
|
||||
*/
|
||||
public class KeyFrameControlAdapter
|
||||
implements KeyFrameControl
|
||||
{
|
||||
/**
|
||||
* The <tt>KeyFrameRequester</tt>s made available by this
|
||||
* <tt>KeyFrameControl</tt>.
|
||||
*/
|
||||
private List<KeyFrameRequester> keyFrameRequesters
|
||||
= new ArrayList<KeyFrameRequester>(0);
|
||||
|
||||
/**
|
||||
* An unmodifiable view of {@link #keyFrameRequesters} appropriate to be
|
||||
* returned by {@link #getKeyFrameRequesters()}.
|
||||
*/
|
||||
private List<KeyFrameRequester> unmodifiableKeyFrameRequesters;
|
||||
|
||||
/**
|
||||
* Implements
|
||||
* {@link KeyFrameControl#addKeyFrameRequester(int, KeyFrameRequester)}.
|
||||
*
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void addKeyFrameRequester(
|
||||
int index,
|
||||
KeyFrameRequester keyFrameRequester)
|
||||
{
|
||||
if (keyFrameRequester == null)
|
||||
throw new NullPointerException("keyFrameRequester");
|
||||
synchronized (this)
|
||||
{
|
||||
if (!keyFrameRequesters.contains(keyFrameRequester))
|
||||
{
|
||||
List<KeyFrameRequester> newKeyFrameRequesters
|
||||
= new ArrayList<KeyFrameRequester>(
|
||||
keyFrameRequesters.size() + 1);
|
||||
|
||||
newKeyFrameRequesters.addAll(keyFrameRequesters);
|
||||
newKeyFrameRequesters.add(index, keyFrameRequester);
|
||||
|
||||
keyFrameRequesters = newKeyFrameRequesters;
|
||||
unmodifiableKeyFrameRequesters = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements {@link KeyFrameControl#getKeyFrameRequesters()}.
|
||||
*
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public List<KeyFrameRequester> getKeyFrameRequesters()
|
||||
{
|
||||
synchronized (this)
|
||||
{
|
||||
if (unmodifiableKeyFrameRequesters == null)
|
||||
{
|
||||
unmodifiableKeyFrameRequesters
|
||||
= Collections.unmodifiableList(keyFrameRequesters);
|
||||
}
|
||||
return unmodifiableKeyFrameRequesters;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements
|
||||
* {@link KeyFrameControl#removeKeyFrameRequester(KeyFrameRequester)}.
|
||||
*
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public boolean removeKeyFrameRequester(KeyFrameRequester keyFrameRequester)
|
||||
{
|
||||
synchronized (this)
|
||||
{
|
||||
int index = keyFrameRequesters.indexOf(keyFrameRequester);
|
||||
|
||||
if (-1 != index)
|
||||
{
|
||||
List<KeyFrameRequester> newKeyFrameRequesters
|
||||
= new ArrayList<KeyFrameRequester>(keyFrameRequesters);
|
||||
|
||||
newKeyFrameRequesters.remove(index);
|
||||
|
||||
keyFrameRequesters = newKeyFrameRequesters;
|
||||
unmodifiableKeyFrameRequesters = null;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue