UPnP functionality plans
Casper van Donderen
casper.vandonderen at gmail.com
Tue Sep 15 17:09:25 CEST 2009
Okay,
[1] there are again a lot of dependencies (at least for Windows, is
standard stuff on Linux), this might break on a lot of systems (when
you want to compile on Win you need Python 2, but what if the person
has 3, then both need to be in PATH and stuff).
[2] The API is still the same, they started it with XP, 2k and below
cannot do UPnP.
Casper
On Tue, Sep 15, 2009 at 4:59 PM, Bart Cerneels <bart.cerneels at kde.org> wrote:
> 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
>>
> _______________________________________________
> 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