UPnP functionality plans

Bart Cerneels bart.cerneels at kde.org
Tue Sep 15 16:59:46 CEST 2009


Don't worry, UPnPCollection will work on windows providing the
dependencies are installed and working.
Coherence works on windows [1] and so does DBus.

I'm going to talk to Qt people at the next opportunity I get the fund
development on QtUPnP. It makes a lot of sense to make this part of
QtMobility. I'm even surprised the maemo team has not started this
yet, even though they have decided to keep using GUPnP, this would
make UPnP maemo 6 applications not portable to S60.

I didn't realize windows has a UPnP library, seems like it's from the
XP days? [2] But yes, QtUPnP would use the native library.

[1] http://coherence-project.org/wiki/WindowsInstallation
[2] http://msdn.microsoft.com/en-us/library/aa382303(VS.85).aspx

On Tue, Sep 15, 2009 at 16:44, Casper van Donderen
<casper.vandonderen at gmail.com> wrote:
> Firstly: I know about UPnP, did a bit with the stack while at Philips.
>
> But then: yet another collection that will not be supported on
> Windows, or are you extending it to also use the MS API if needed? I
> can only do so much, and not developing myself I do not really care
> about ATM, but still, it would be nice if you guys could at least look
> into stuff if it will be possible at all on Win/Mac (UPnP on Mac is
> not open, is it?)
>
> I think there is 1 semi-working collection on Win ATM (mysql), but not
> much more...
>
> Casper
>
> On Tue, Sep 15, 2009 at 4:10 PM, Bart Cerneels <bart.cerneels at kde.org> wrote:
>> Dear Amarok dev's
>>
>> My personal hell month of October will start with a UPnP dev sprint
>> with the Cohernce developers in Barcelona. I wanted to take the
>> opportunity to list explain some of the features that are technically
>> possible with UPnP:
>>
>> If you are not familiar with UPnP and it's
>> 1) UPnP Collection - playing tracks of a remote UPnP server
>> I'll be working on a UPnP KIO slave and using that in Amarok. Normal
>> playback is relatively straightforward (just http:// urls). Making it
>> play nice with metadata, album art, etc is a bit more work. Then it's
>> also possible to add metadata and upload new tracks to a UPnP server,
>> but I don't know of any server that fully supports this yet.
>>
>> 2) UPnP export - exporting our local collection on the network
>> The easiest way to do is talk to Coherence via DBus. GUPnP also has an
>> export function listening to a specific DBus interface.
>> This can also be implemented using scripting.
>>
>> 3) UPnP remote control - Amarok controlled by a remote Digital Media Controller
>> Can be done directly using a script or indirectly using the dbus API.
>>
>> 4) Remote UPnP playback - Controlling Digital Media Renderer on the network
>> There are 2 possible implementations I can think of now: using an
>> alternative enginecontroller and using a PlaylistProvider
>>
>> a) Aternative enginecontroller:
>>  Or a plugin for enginecontroller. This would play the tracks in The
>> Playlist on the remote device using UPnP commands.
>> 2 problems here:
>> - the enginecontroller is not plugin based.
>> - There is only one playlist, so only one playback going on at one time.
>> I also am pretty sure this approach will fail for many DMR's because
>> they don't all send (reliable) playback notifications. So there will
>> be no way of knowing when to start the next track.
>>
>> b) UPnP PlaylistProvider:
>> When a DMR is detected on the network one of these will be created and
>> registered with PlaylistManager. By saving the current playlist to
>> this provider it will start playing on the device. It's possible to
>> make it a bit more intuitive by creating a new Meta::Playlist category
>> that is handled differently than the saved playlists. Then we can add
>> an action in a menu or toolbar "Play on...".
>> I'm personally in favor of this method for several reasons:
>> - Using existing infrastructure (Meta::Playlist/Provider/Manager)
>> - Very well separated from the rest of amarok. Except for the "Play
>> on..." button everything will be implemented in
>> "UPnPPlaylistProvider".
>> - Can cooperate with playlist synchronization (to be implemented) and
>> dynamic playlists (if it's made compatible with Meta::Playlist). This
>> will make it possible to play a dynamic playlist on a UPnP renderer.
>> It's also possible to use The Playlist as the only one providing we
>> make the trackslist (with updates) available as a Meta::Playlist.
>>
>> The PlaylistProvider can "filter" tracks that are not playable on the
>> DMR. This can be because of filetype support or because there is no
>> way to give access to the tracks. For local tracks the embedded
>> UPnPServer can be used and for  UPnPCollections it can just use the
>> uidUrl. It's also possible to add http://, rtsp://, etc.
>>
>> We should discuss how far we want amarok to reach now we have the code
>> that makes some of these very advanced features possible, even easy.
>> In general, not specific to UPnP.
>>
>> In any case. I've been planning an open source DMR control software
>> for a while now. And since I now have 2 Philips Steamium NP2500 I'm
>> expected to by Wendy :).
>> This doesn't have to be implemented in Amarok though, it would just be
>> a nice feature that many people will enjoy.
>> Our competition already does: Windows Media Player 10 and 11 have
>> integrated DMR control and it's one of the many features in windows 7.
>> We can do a lot better.
>>
>> Bart
>> _______________________________________________
>> Amarok-devel mailing list
>> Amarok-devel at kde.org
>> https://mail.kde.org/mailman/listinfo/amarok-devel
>>
> _______________________________________________
> Amarok-devel mailing list
> Amarok-devel at kde.org
> https://mail.kde.org/mailman/listinfo/amarok-devel
>


More information about the Amarok-devel mailing list