Re: [RFC] BasicManagement:2 implementation for rygel



On 18 June 2013 11:35, Jussi Kukkonen <jussi kukkonen intel com> wrote:
I have a question, with rygel being typically run per-user/session on
desktop, how do you make these services work? I haven't looked into
the code but it this a plugin? If so, then it could work. In which
case, wouldn't it be better to keep it in a standalone tree since
typical desktop user won't need/want this and rygel is supposed to be
multimedia-only?

It's not currently a plugin -- just code in rygel-core --  but that
sounds like a sensible approach. I'll take a look at how it would
work.

I believe the plugin idea can not work. The BasicManagement service is
expected to be found in the same UPnP device as the renderer (or
mediaserver). Since a plugin is in effect a UPnP device, it doesn't
make sense to implement BasicManagement as a plugin.

Backing off from the implementation details for a moment, I believe
these are the requirements:
* diagnostics is essentially a device feature: diagnostics should be
enabled per-device
* "Enabling diagnostics" means
   - BasicManagement Service runs on the device
   - Device capabilities includes "+DIAGE+"

The simplest design inside of rygel I can think for this is:
1. there is a plugin specific configuration item "diagnostics=true"
if diagnostics==true
    2. plugin dlna capabilities includes "+DIAGE+"
    3. plugin adds a resource for diagnostics service when constructed

The other option I see is that these 3 steps are not done by Plugin
and anyone who wants to support DLNA diagnostics, should create their
own plugin(s) that do the 3 steps above. In this case the code could
live outside of rygel, in an external library.

I think either option will work, but personally I'd still like to see
this as part of rygel: it does add a DLNA feature (that folks using
rygel are requesting). I can understand the reluctance to adding code
that doesn't really add new media sharing features, but It's worth
noting that existing rygel-core code does _not_ really get more
complicated because of this: it is a separate service after all. Even
the configuration option wouldn't really pollute the config file if
the default is disabled.

 - Jussi


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]