package net.sourceforge.gjtapi.raw.javasound.desktopAgent;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioFormat.Encoding;
import java.util.Map;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2008</p>
*
* <p>Company: INESC-ID </p>
*
* @D�rio Marcelino
* @version 1.0
*/
public class DesktopAgentProps {
private String address;
private AudioFormat format;
private String playbackDevice;
private String captureDevice;
public DesktopAgentProps() {
}
public DesktopAgentProps(String address) {
setAddress(address);
}
public DesktopAgentProps(AudioFormat format) {
setFormat(format);
}
public DesktopAgentProps(String address, AudioFormat format) {
setFormat(format);
setAddress(address);
}
public DesktopAgentProps(String address, AudioFormat format,
String playbackDevice, String captureDevice) {
setFormat(format);
setAddress(address);
setPlaybackDevice(playbackDevice);
setCaptureDevice(captureDevice);
}
public DesktopAgentProps(String address, Map props){
this.address = address;
playbackDevice = (String)getProperty(address, props, "playbackDevice");
captureDevice = (String)getProperty(address, props, "captureDevice");
Encoding encoding = new Encoding((String)getProperty(address, props, "encoding"));
float sampleRate = Float.valueOf((String)getProperty(address, props, "sampleRate"));
int sampleSizeInBits = Integer.valueOf((String)getProperty(address, props, "sampleSizeInBits"));
int channels = Integer.valueOf((String)getProperty(address, props, "channels"));
int frameSize = Integer.valueOf((String)getProperty(address, props, "frameSize"));
float frameRate = Float.valueOf((String)getProperty(address, props, "frameRate"));
boolean bigEndian = Boolean.valueOf((String)getProperty(address, props, "bigEndian"));
format = new AudioFormat (encoding, sampleRate, sampleSizeInBits, channels, frameSize, frameRate, bigEndian);
}
public void setAddress(String address) {
this.address = address;
}
public String getAddress() {
return address;
}
public void setFormat(AudioFormat format) {
this.format = format;
}
public AudioFormat getFormat() {
return format;
}
public void setPlaybackDevice(String playbackDevice) {
this.playbackDevice = playbackDevice;
}
public String getPlaybackDevice() {
return playbackDevice;
}
public void setCaptureDevice(String captureDevice) {
this.captureDevice = captureDevice;
}
public String getCaptureDevice() {
return captureDevice;
}
public static Object getProperty(String agent, Map props, String property){
Object ret = props.get("gjtapi.javasound.desktopAgent." + agent + "." + property);
if (ret == null)
ret = props.get("gjtapi.javasound.desktopAgent." + "default" + "." + property);
return ret;
}
}