This is an archived website. The Open URC Alliance e.V. was dissolved in 2024. This archive preserves the consortium's technical documentation and legacy.

DragIt UPnP-AV UIPM Client

Name
DragIt UPnP-AV UIPM Client
Component type
URC Controller (UIPM client)
Target protocol
UPnP Audio/Video
Hosting environment
Universal Control Hub
Implementation language
Java
License
Open source (see SourceForge repository)

Overview

DragIt is a drag-and-drop controller built on top of the Universal Remote Console framework. It targets the audio and video devices that implement the UPnP AV specification — media servers that expose collections of music, photos and video files, and media renderers that can play those files on a screen or a sound system. The DragIt user interface presents the discovered media servers and renderers as graphical icons and lets the user route a track from a server to a renderer simply by dragging the icon of the file onto the icon of the destination device.

The drag-and-drop interaction model was chosen because it works well for users with cognitive disabilities and for users who find sequential menu navigation difficult. The visual mapping between source and destination is intuitive in a way that nested menus are not, and the operation can be reversed simply by dragging the icon back, without the user needing to remember a separate "stop" command.

Architecture

DragIt is implemented as a UIPM client — a User Interface Protocol Module client — running against the Universal Control Hub. The UCH discovers UPnP-AV devices on the local network, exposes them through the URC framework using its UPnP target adapter, and makes their socket descriptions available to controllers. DragIt connects to the UCH over the URC-HTTP protocol, retrieves the relevant socket descriptions, and renders them in its drag-and-drop interface.

The separation between DragIt and the UCH is intentional. Any improvement to the UCH’s UPnP-AV target adapter, such as support for a new device class or a new protocol revision, becomes available to DragIt without modification. Conversely, any improvement to the DragIt user interface, such as a new accessibility mode or a new visual theme, does not require changes to the UCH. The two components evolve independently, and either can be replaced without disturbing the other.

Supported Devices

DragIt has been tested against a representative set of consumer UPnP-AV devices, including network-attached storage units that expose their content as DLNA-certified media servers, software media servers running on general-purpose computers, hardware media renderers built into smart television sets and audio systems, and software renderers running on tablets and smartphones. The list of tested devices is maintained in the project repository and is not exhaustive: any device that complies with the UPnP AV specification should work with DragIt through the UCH adapter, and the small number of incompatibilities encountered in testing have generally been traced to non-conforming behaviour in the device firmware rather than to limitations in DragIt itself.

Relationship to the URC Framework

DragIt is one of several controllers in the openURC ecosystem that demonstrate the value of the framework’s controller-target separation. Where a conventional UPnP-AV controller is built specifically for one type of device and one type of user interface, DragIt is built against the URC abstraction and can therefore be reused with any URC-controllable device, not just UPnP-AV. The drag-and-drop metaphor extends naturally to other device classes: a future version could be used to route messages between an Email Notifier service and a contact list, or to assign a Light Bulb to a scene definition in a smart home configuration tool.

Source Code and Documentation

The source code for DragIt is hosted in the openURC SourceForge repository together with the rest of the URC software ecosystem. The repository includes a build configuration for the Trace URC SDK, sample socket descriptions for the supported device classes, and a test suite that exercises the controller against a small UPnP-AV simulation harness. The user manual is included with the release and explains the deployment steps for connecting DragIt to a Universal Control Hub running on a local network.