package im.actor.runtime.webrtc.sdp.entities;
import java.util.ArrayList;
public class SDPMedia {
private String type;
private int port;
private String protocol;
private ArrayList<SDPCodec> codecs;
private ArrayList<SDPRawRecord> records;
private SDPMediaMode mode;
public SDPMedia(String type, int port, String protocol, ArrayList<SDPCodec> codecs,
SDPMediaMode mode, ArrayList<SDPRawRecord> records) {
this.type = type;
this.port = port;
this.protocol = protocol;
this.codecs = codecs;
this.records = records;
this.mode = mode;
}
public String getType() {
return type;
}
public int getPort() {
return port;
}
public String getProtocol() {
return protocol;
}
public ArrayList<SDPCodec> getCodecs() {
return codecs;
}
public ArrayList<SDPRawRecord> getRecords() {
return records;
}
public SDPMediaMode getMode() {
return mode;
}
public void setMode(SDPMediaMode mode) {
this.mode = mode;
}
public String toSDP() {
String res = "m=" + type + " " + port + " " + protocol;
for (SDPCodec codec : codecs) {
res += " " + codec.getIndex();
}
res += "\r\n";
switch (mode) {
case SEND_RECEIVE:
res += "a=sendrecv\r\n";
break;
case INACTIVE:
res += "a=inactive\r\n";
break;
case RECEIVE_ONLY:
res += "a=recvonly\r\n";
break;
case SEND_ONLY:
res += "a=sendonly\r\n";
break;
}
for (SDPCodec codec : codecs) {
res += codec.toSDP();
}
for (SDPRawRecord r : records) {
res += r.toSDP() + "\r\n";
}
return res;
}
@Override
public String toString() {
return toSDP();
}
}