📄 connectionmanagerservice.java
字号:
package no.auc.one.portableplayer.lms;
import java.util.Hashtable;
import org.apache.log4j.Logger;
import no.auc.one.portableplayer.communication.upnphosting.*;
/**
* ConnectionManagerService
* @author zheng
*/
public final class ConnectionManagerService extends UPnPHostingServiceBase{
private static Logger LOG = Logger.getLogger("LMS/CMS");
private static ConnectionManagerService selfRef = null;
Hashtable actions;
GetProtocolInfoAction getProtocolInfo=null;
GetCurrentConnectionIDsAction getCurrentConnectionIds=null;
GetCurrentConnectionInfoAction getCurrentConnectionInfo=null;
public ConnectionManagerService(){
getProtocolInfo=new GetProtocolInfoAction();
getCurrentConnectionIds=new GetCurrentConnectionIDsAction();
getCurrentConnectionInfo=new GetCurrentConnectionInfoAction();
actions = new Hashtable(3);
actions.put(getProtocolInfo.getName(),getProtocolInfo);
actions.put(getCurrentConnectionIds.getName(),getCurrentConnectionIds);
actions.put(getCurrentConnectionInfo.getName(),getCurrentConnectionInfo);
}
public String serviceType() {
return "urn:schemas-upnp-org:service:ConnectionManager:1";
}
public String serviceId() {
return "urn:upnp-org:serviceId:ConnectionManager";
}
public UPnPAction[] actionList() {
return new UPnPAction[]{
getProtocolInfo,
getCurrentConnectionIds,
getCurrentConnectionInfo};
}
public Hashtable actionTable() {
return null;
}
public UPnPStateVariable[] stateVariableList() {
return new UPnPStateVariable[]{
new UPnPStateVariable(
"SourceProtocolInfo",
UPnPStateVariable.STATEVARIABLE_DATATYPE_STRING),
new UPnPStateVariable(
"SinkProtocolInfo",
UPnPStateVariable.STATEVARIABLE_DATATYPE_STRING),
new UPnPStateVariable(
"CurrentConnectionIDs",
UPnPStateVariable.STATEVARIABLE_DATATYPE_I4),
new UPnPStateVariable(
"A_ARG_TYPE_ConnectionStatus",
UPnPStateVariable.STATEVARIABLE_DATATYPE_STRING),
new UPnPStateVariable(
"A_ARG_TYPE_ConnectionManager",
UPnPStateVariable.STATEVARIABLE_DATATYPE_STRING),
new UPnPStateVariable(
"A_ARG_TYPE_Direction",
UPnPStateVariable.STATEVARIABLE_DATATYPE_STRING),
new UPnPStateVariable(
"A_ARG_TYPE_ProtocolInfo",
UPnPStateVariable.STATEVARIABLE_DATATYPE_STRING),
new UPnPStateVariable(
"A_ARG_TYPE_ConnectionID",
UPnPStateVariable.STATEVARIABLE_DATATYPE_I4),
new UPnPStateVariable(
"A_ARG_TYPE_AVTransportID",
UPnPStateVariable.STATEVARIABLE_DATATYPE_I4),
new UPnPStateVariable(
"A_ARG_TYPE_RcsID",
UPnPStateVariable.STATEVARIABLE_DATATYPE_I4)};
}
/**
* GetProtocolInfo----R
*/
private class GetProtocolInfoAction extends UPnPAction{
public GetProtocolInfoAction() {
super("GetProtocolInfo", new UPnPActionArgument[]{
new UPnPActionArgument("Source",UPnPActionArgument.ARGUMENT_DIRECTION_OUT,"SourceProtocolInfo"),
new UPnPActionArgument("Sink",UPnPActionArgument.ARGUMENT_DIRECTION_OUT,"SinkProtocolInfo")});
}
public String getName(){
return "GetProtocolInfo";
}
public void invoke(UPnPActionArgument[] args) {
args[0].setValue(new String("http-get:*:audio/mpeg:*"));
}
}
/**
* GetCurrentConnectionIDs------------R
*/
private class GetCurrentConnectionIDsAction extends UPnPAction {
public GetCurrentConnectionIDsAction() {
super("GetCurrentConnectionIDs", new UPnPActionArgument[]{
new UPnPActionArgument("ConnectionIDs",UPnPActionArgument.ARGUMENT_DIRECTION_OUT,"CurrentConnectionIDs")});
}
public String getName(){
return "GetCurrentConnectionIDs";
}
public void invoke(UPnPActionArgument[] args) throws UPnPActionInvocationException {
args[0].setValue(new Integer(0));
}
}
/**
* GetCurrentConnectionInfo---------R
*
*/
private class GetCurrentConnectionInfoAction extends UPnPAction{
public GetCurrentConnectionInfoAction() {
super("GetCurrentConnectionInfo",new UPnPActionArgument[]{
new UPnPActionArgument("ConnectionID",UPnPActionArgument.ARGUMENT_DIRECTION_IN,"A_ARG_TYPE_ConnectionID"),
new UPnPActionArgument("RcsID",UPnPActionArgument.ARGUMENT_DIRECTION_OUT,"A_ARG_TYPE_RcsID"),
new UPnPActionArgument("AVTransportID",UPnPActionArgument.ARGUMENT_DIRECTION_OUT,"A_ARG_TYPE_AVTransportID"),
new UPnPActionArgument("ProtocolInfo",UPnPActionArgument.ARGUMENT_DIRECTION_OUT,"A_ARG_TYPE_ProtocolInfo"),
new UPnPActionArgument("PeerConnectionManager",UPnPActionArgument.ARGUMENT_DIRECTION_OUT,"A_ARG_TYPE_ConnectionManager"),
new UPnPActionArgument("PeerConnectionID",UPnPActionArgument.ARGUMENT_DIRECTION_OUT,"A_ARG_TYPE_ConnectionID"),
new UPnPActionArgument("Direction",UPnPActionArgument.ARGUMENT_DIRECTION_OUT,"A_ARG_TYPE_Direction"),
new UPnPActionArgument("Status",UPnPActionArgument.ARGUMENT_DIRECTION_OUT,"A_ARG_TYPE_ConnectionStatus")});
}
public String getName(){
return "GetCurrentConnectionInfo";
}
public void invoke(UPnPActionArgument[] args) throws UPnPActionInvocationException {
args[1].setValue(new Integer(-1));
args[2].setValue(new Integer(-1));
args[3].setValue(null);
args[4].setValue(null);
args[5].setValue(new Integer(-1));
args[6].setValue(new String("Output"));
args[7].setValue(new String("Unknown"));
}
}
public static ConnectionManagerService getInstance() {
if (selfRef == null) {
selfRef = new ConnectionManagerService();
}
return selfRef;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -