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

📄 contentdirectoryservice.java

📁 国外的j2me播放器软件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package no.auc.one.portableplayer.lms;

import java.io.*;
import java.util.*;

import javax.microedition.io.Connector;
import javax.microedition.io.file.*;
import javax.microedition.rms.*;

import no.auc.one.portableplayer.communication.upnphosting.*;
import no.auc.one.portableplayer.utils.StringEscapeUtils;

import org.apache.log4j.Logger;

/**
 * ContentDirectoryService
 *
 */
public final class ContentDirectoryService extends UPnPHostingServiceBase{
    private static Logger LOG = Logger.getLogger("LMS/CDS");
    private static ContentDirectoryService selfReg = null;
    
    Hashtable actions;
    GetSearchCapabilitiesAction gsc;
    GetSortCapabilitiesAction gsc2;
    GetSystemUpdateIDAction gsu;
    BrowseAction browse;
    // SearchAction search;
    
    private RecordStore rs;
        
    private ContentDirectoryService(){        
        try {
            rs = RecordStore.openRecordStore(
                ServerDevice.getIndexStoreName(), 
                true);
            
            gsc=new GetSearchCapabilitiesAction();
            gsc2=new GetSortCapabilitiesAction();
            gsu=new GetSystemUpdateIDAction();
            browse=new BrowseAction();
            //search=new SearchAction();
            actions = new Hashtable(4);
            actions.put(gsc.getName(),gsc);
            actions.put(gsc2.getName(),gsc2);
            actions.put(gsu.getName(),gsu);
            actions.put(browse.getName(),browse);            
            //actions.put(search.getName(),search);
        } catch (RecordStoreException rse) {
            System.out.println("Error opening record store for file index");
            rse.printStackTrace();
        }
    }

    public static ContentDirectoryService getInstance() {
        if (selfReg == null) {
            selfReg = new ContentDirectoryService();
        }

        return selfReg;
    }
    public String serviceType() {
        return "urn:schemas-upnp-org:service:ContentDirectory:1";
    }        
    public String getName(){
        return "ContentDirectoryService";
    }
    public String serviceId() {
        return "urn:upnp-org:serviceId:ContentDirectory";
    }
    public Hashtable actionTable(){
        return actions;
    }

    public UPnPStateVariable[] stateVariableList() {
        return new UPnPStateVariable[]{
            new UPnPStateVariable(
                "A_ARG_TYPE_ObjectID", 
                UPnPStateVariable.STATEVARIABLE_DATATYPE_STRING,
                false),
            new UPnPStateVariable(
                "A_ARG_TYPE_Result",
                UPnPStateVariable.STATEVARIABLE_DATATYPE_STRING,
                false),
            new UPnPStateVariable(
                "A_ARG_TYPE_SearchCriteria",
                UPnPStateVariable.STATEVARIABLE_DATATYPE_STRING,
                false),
            new UPnPStateVariable(
                "A_ARG_TYPE_BrowseFlag",
                UPnPStateVariable.STATEVARIABLE_DATATYPE_STRING,
                false,
                new String[]{
                    "BrowseMetadata",
                    "BrowseDirectChildren"}),
            new UPnPStateVariable(
                "A_ARG_TYPE_Filter",
                UPnPStateVariable.STATEVARIABLE_DATATYPE_STRING,
                false),
            new UPnPStateVariable(
                "A_ARG_TYPE_SortCriteria",
                UPnPStateVariable.STATEVARIABLE_DATATYPE_STRING,
                false),
            new UPnPStateVariable(
                "A_ARG_TYPE_Index",
                UPnPStateVariable.STATEVARIABLE_DATATYPE_UI4,
                false),
            new UPnPStateVariable(
                "A_ARG_TYPE_Count",
                UPnPStateVariable.STATEVARIABLE_DATATYPE_UI4,
                false),
            new UPnPStateVariable(
                "A_ARG_TYPE_UpdateID",
                UPnPStateVariable.STATEVARIABLE_DATATYPE_UI4,
                false),
            new UPnPStateVariable(
                "SearchCapabilities",
                UPnPStateVariable.STATEVARIABLE_DATATYPE_STRING,
                false),
            new UPnPStateVariable(
                "SortCapabilities",
                UPnPStateVariable.STATEVARIABLE_DATATYPE_STRING,
                false),
            new UPnPStateVariable(
                "SystemUpdateID",
                UPnPStateVariable.STATEVARIABLE_DATATYPE_UI4)};
    }
    
    /**
     * GetSearchCapabilities-----R
     * 
     */
    private class GetSearchCapabilitiesAction extends UPnPAction{
        
        public GetSearchCapabilitiesAction() {
            super(
                    "GetSearchCapabilities",
                    new UPnPActionArgument[]{
                            new UPnPActionArgument(
                                    "SearchCaps",
                                    UPnPActionArgument.ARGUMENT_DIRECTION_OUT,
                            "SearchCapabilities")});
        }
        
        public String getName(){
            return "GetSearchCapabilities";
        }
        
        public void invoke(UPnPActionArgument[] args) throws UPnPActionInvocationException {
            // XXX No search support currently
            args[0].setValue(new String(""/*"dc:title"*/));
        }            
    }
    
    /**
     * GetSortCapabilities-------R
     *
     */
    private class GetSortCapabilitiesAction extends UPnPAction{
        public GetSortCapabilitiesAction() {
            super("GetSortCapabilities",new UPnPActionArgument[]{
                    new UPnPActionArgument(
                            "SortCaps",
                            UPnPActionArgument.ARGUMENT_DIRECTION_OUT,
                    "SortCapabilities")});
        }
        
        public String getName(){
            return "GetSortCapabilities";
        }
        
        public void invoke(UPnPActionArgument[] args) throws UPnPActionInvocationException {
            args[0].setValue(new String("dc:title"));
        }            
    }        
    
    /**
     * GetSystemUpdateID-------R
     * 
     */
    private class GetSystemUpdateIDAction extends UPnPAction{
        
        public GetSystemUpdateIDAction() {
            super(
                    "GetSystemUpdateID",
                    new UPnPActionArgument[]{
                            new UPnPActionArgument(
                                    "Id",
                                    UPnPActionArgument.ARGUMENT_DIRECTION_OUT,
                            "SystemUpdateID")});
        }
        
        public String getName(){
            return "GetSystemUpdateID";
        }
        
        public void invoke(UPnPActionArgument[] args) throws UPnPActionInvocationException {
            args[0].setValue(new Integer(0));                
        }            
    }            
    /**
     * 
     * BrowseAction inside ContentDirectoryService------R
     *
     */
    private class BrowseAction extends UPnPAction {
        public BrowseAction() {
            super(
                "Browse",
                new UPnPActionArgument[] {
                    new UPnPActionArgument(
                        "ObjectID",
                        UPnPActionArgument.ARGUMENT_DIRECTION_IN,
                        "A_ARG_TYPE_ObjectID"),
                    new UPnPActionArgument(
                        "BrowseFlag",
                        UPnPActionArgument.ARGUMENT_DIRECTION_IN,
                        "A_ARG_TYPE_BrowseFlag"),
                    new UPnPActionArgument(
                        "Filter",
                        UPnPActionArgument.ARGUMENT_DIRECTION_IN,
                        "A_ARG_TYPE_Filter"),
                    new UPnPActionArgument(
                        "StartingIndex",
                        UPnPActionArgument.ARGUMENT_DIRECTION_IN,
                        "A_ARG_TYPE_Index"),
                    new UPnPActionArgument(
                        "RequestedCount",
                        UPnPActionArgument.ARGUMENT_DIRECTION_IN,
                        "A_ARG_TYPE_Count"),
                    new UPnPActionArgument(
                        "SortCriteria",
                        UPnPActionArgument.ARGUMENT_DIRECTION_IN,
                        "A_ARG_TYPE_SortCriteria"),
                    new UPnPActionArgument(
                        "Result",
                        UPnPActionArgument.ARGUMENT_DIRECTION_OUT,
                        "A_ARG_TYPE_Result"),
                    new UPnPActionArgument(
                        "NumberReturned",
                        UPnPActionArgument.ARGUMENT_DIRECTION_OUT,
                        "A_ARG_TYPE_Count"),
                    new UPnPActionArgument(
                        "TotalMatches",
                        UPnPActionArgument.ARGUMENT_DIRECTION_OUT,
                        "A_ARG_TYPE_Count"),
                    new UPnPActionArgument(
                        "UpdateID",
                        UPnPActionArgument.ARGUMENT_DIRECTION_OUT,
                        "A_ARG_TYPE_UpdateID")});
        }                    
        
        public String getName(){
            return "Browse";
        }        
        
        /**
         * Invoke method to receive the argument from the control point and 
         * output the result base on the different arguments

⌨️ 快捷键说明

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