Cling:寻找 uPnp ContentDirectory 的开源代码

Cling: Looking for Opensource code for uPnp ContentDirectory

我正在尝试构建一个用于控制音频的 uPnP 控制点,我正在使用 Java cling library. To browse the music on the server requires the ContentDirectory 服务,cling 提供 api 来访问它但不提供任何classes 来表示各种动作和参数,需要我编写大量样板代码,我想知道是否存在这样的库?

例如,我为内容目录

的浏览操作创建了一个浏览class
import org.fourthline.cling.model.meta.Action;
import org.fourthline.cling.model.types.UnsignedIntegerFourBytes;

public class Browse extends AbstractActionAndInvocation
{
    //INPUT
    public static final String OBJECT_ID        = "ObjectID";
    public static final String BROWSE_FLAG      = "BrowseFlag";
    public static final String FILTER           = "Filter";
    public static final String STARTING_INDEX   = "StartingIndex";
    public static final String REQUESTED_COUNMT = "RequestedCount";

    public void setObjectID(String objectID)
    {
        actionInvocation.setInput(OBJECT_ID, objectID);
    }

    public void setBrowseFlag(BrowseFlag browseFlag)
    {
        actionInvocation.setInput(BROWSE_FLAG, browseFlag.getParameterName());
    }

    public void setFilter(String filter)
    {
        actionInvocation.setInput(FILTER, filter);
    }

    public void setStartingIndex(int startingIndex)
    {
        actionInvocation.setInput(STARTING_INDEX, new UnsignedIntegerFourBytes(startingIndex));
    }

    public void setRequestedCount(int requestCount)
    {
        actionInvocation.setInput(REQUESTED_COUNMT, new UnsignedIntegerFourBytes(requestCount));
    }


    public Browse(Action action)
    {
        super(action);
    }
}

因为 ContentDirectory 只有一个预定义的操作列表,所以这些在某处不存在似乎很奇怪?

cling-support 模块中有一些有用的 类 例如主要服务的回调 类

例如

org.fourthline.cling.support.contentdirectory.callback.Browse.java;

但是我发现它们的用处有限,更多的是作为示例实现,而不是可以按原样使用的实现。