package com.voxeo.moho.remote.impl;
import java.net.URI;
import java.util.Map;
import java.util.Properties;
import com.voxeo.moho.MediaException;
import com.voxeo.moho.Mixer;
import com.voxeo.moho.MixerEndpoint;
public class MixerEndpointImpl implements MixerEndpoint {
private MohoRemoteImpl _mohoRemoteImpl;
private Properties _props = new Properties();
public MixerEndpointImpl(MohoRemoteImpl mohoRemoteImpl) {
_mohoRemoteImpl = mohoRemoteImpl;
}
@Override
public String getName() {
return null;
}
@Override
public URI getURI() {
return null;
}
@Override
public Mixer create(String name, Map<Object, Object> params) throws MediaException {
_mohoRemoteImpl.getParticipantsLock().lock();
try {
if (name != null) {
Mixer mixer = _mohoRemoteImpl.getMixerByName(name);
if (mixer != null) {
return mixer;
}
}
return new MixerImpl(this, name, params);
}
finally {
_mohoRemoteImpl.getParticipantsLock().unlock();
}
}
@Override
public Mixer create(Map<Object, Object> params) throws MediaException {
return this.create(null, params);
}
@Override
public String getProperty(String key) {
return _props.getProperty(key);
}
@Override
public String remove(String key) {
return (String) _props.remove(key);
}
@Override
public void setProperty(String key, String value) {
_props.setProperty(key, value);
}
public MohoRemoteImpl getMohoRemote() {
return _mohoRemoteImpl;
}
}