On 24/01/2013 12:52, Mark D Ryan wrote:
Hi Ludo,
> 1 - Add a new API to perform a discovery. This will allow a DMP/DMC to refresh the
list of devices/services without waiting the 30 min timeout for some cases.
>
How will you implement this API? I could be wrong here, but I don't
think there is a GUPnP API that performs a rescan of the network? I
think you would need to destroy and re-create the context manager to
implement this. What would happen to outstanding tasks issued by other
clients if you did this?
The functionality is easy to implement.
gssdp_resource_browser_set_active (False) to stop the discovering
gssdp_resource_browser_set_active (Start) to start the discovering.
So the refresh func should just call it twice, once to stop, once to relaunch the
discovery.
Then it's just a refresh/merge algo
-> For every device we already have in our list -> do nothing
-> after a timeout of x sec (we need to check the specs, or define ourself something
like 5sec), all remaining devices will be properly removed:
-> Cancel all pending task
-> notify device unavailable
-> delete device
> 2 - Add settings for DMS/DMR to enable/disable auto discovering at launch
>
> 3 - If auto discovering is disabled, the call to GetServers() call first the new API
defined in 1)
>
> Reminder: We are on local networks. So discover is pretty fast.
>
> So in case of single service for DMS/DMR, customers can choose to disable auto
discover for one or both services and to perform the discover in their application
manually when they want. They now their needs, they can tune it.
>
> In case of general use, like on desktop, I think we can enable the auto discover for
both, it won't be a problem. We can even make the service launch at boot time.
Why bother? If we just keep the two services separate we don't need
this right? If people want to have DMS and DMR information available
immediately, they can arrange for the services to be run at startup. If
people don't want this, the services can be launched on demand via IPC
activation.
Ok, fine with me. It was just a proposal.
--
Ludovic Ferrandis
Open Source Technology Center
Intel Corporation