⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 connectionmanagerservice.java

📁 国外的j2me播放器软件
💻 JAVA
字号:
package no.auc.one.portableplayer.lmr;

import java.util.Hashtable;

import no.auc.one.portableplayer.communication.upnphosting.UPnPAction;
import no.auc.one.portableplayer.communication.upnphosting.UPnPActionArgument;
import no.auc.one.portableplayer.communication.upnphosting.UPnPHostingServiceBase;
import no.auc.one.portableplayer.communication.upnphosting.UPnPStateVariable;

import org.apache.log4j.*;

public final class ConnectionManagerService extends UPnPHostingServiceBase {
	private static Logger LOG = Logger.getLogger("LMR/CMS");
	
	//required Actions
	UPnPAction GetProtocolInfo;
	UPnPAction GetCurrentConnectionIDs;
	UPnPAction GetCurrentConnectionInfo;
	
	private Hashtable actions;

    private static String protocolInfo = "http-get:*:audio/mpeg:*";
	
	public ConnectionManagerService(){
		actions = new Hashtable(3);
		
		GetProtocolInfo = new GetProtocolInfoAction();
		actions.put(GetProtocolInfo.getName(), GetProtocolInfo);
		GetCurrentConnectionIDs = new GetCurrentConnectionIDsAction();
		actions.put(GetCurrentConnectionIDs.getName(), GetCurrentConnectionIDs);
		GetCurrentConnectionInfo = new GetCurrentConnectionInfoAction();
		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[]{};
	}
	
	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_STRING),
			new UPnPStateVariable(
				"A_ARG_TYPE_ConnectionStatus",
				UPnPStateVariable.STATEVARIABLE_DATATYPE_STRING,
                false),
			new UPnPStateVariable(
			    "A_ARG_TYPE_ConnectionManager",
				UPnPStateVariable.STATEVARIABLE_DATATYPE_STRING,
                false),
			new UPnPStateVariable(
			    "A_ARG_TYPE_Direction",
				UPnPStateVariable.STATEVARIABLE_DATATYPE_STRING,
                false),
			new UPnPStateVariable(
			    "A_ARG_TYPE_ProtocolInfo",
				UPnPStateVariable.STATEVARIABLE_DATATYPE_STRING,
                false),
			new UPnPStateVariable(
			    "A_ARG_TYPE_ConnectionID",
				UPnPStateVariable.STATEVARIABLE_DATATYPE_I4,
                false),
			new UPnPStateVariable(
			    "A_ARG_TYPE_AVTransportID",
				UPnPStateVariable.STATEVARIABLE_DATATYPE_I4,
                false),
			new UPnPStateVariable(
			    "A_ARG_TYPE_RcsID",
				UPnPStateVariable.STATEVARIABLE_DATATYPE_I4,
                false)};
	}
	
    public Hashtable actionTable() {
        return actions;
    }
    
	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 void invoke(UPnPActionArgument[] args){
//			StringBuffer sinkProtocolInfoIn = null;
//			String[] protocols = Manager.getSupportedProtocols(null);
//			for(int i = 0; i<protocols.length; i++){
//				String[] contentTypes = Manager.getSupportedContentTypes(protocols[i]);
//				for(int j=0; j<contentTypes.length; j++)
//					sinkProtocolInfoIn.append(protocols[i] + ":*:" + contentTypes[j] + ":*");
//			}
//			SinkProtocolInfo_in = sinkProtocolInfoIn.toString();
//			System.out.println(SinkProtocolInfo_in);
			
			args[0].setValue("");
			args[1].setValue(protocolInfo);
		}
	}
	
	private class GetCurrentConnectionIDsAction extends UPnPAction {
		public GetCurrentConnectionIDsAction() {
			super(
					"GetCurrentConnectionIDs", 
					new UPnPActionArgument[]{
							new UPnPActionArgument(
									"ConnectionIDs",
									UPnPActionArgument.ARGUMENT_DIRECTION_OUT,
									"CurrentConnectionIDs")
					});
		}
		
		public void invoke(UPnPActionArgument[] args){		
			args[0].setValue("0");
		}
	}

	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 void invoke(UPnPActionArgument[] args){
			Object o = args[0].getValue();
			int connectionID= Integer.parseInt((String) o);
			
			if(connectionID == 0) {
				args[1].setValue(new Integer(0));
				args[2].setValue(new Integer(0));
				args[3].setValue(protocolInfo);
				args[4].setValue("");
				args[5].setValue("-1");
				args[6].setValue("Output");
				args[7].setValue("OK");
			}
			else{
				System.out.println("LMR: CMS: GetCurrentConnectionInfo(): A_ARG_TYPE_ConnectionID must be 0!");
                // throw some exception here...
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -