Always use IDeviceLister to list FS devices
In order to merge all FS implementation into the (lib)vlc one, we first need to reduce the differences between various IFileSystemFactory
implementations.
The local filesystem implementation delegates listing the devices to an IDeviceLister implementation while the network one handles device listing itself.
If we were to use the network implementation (ie. the libvlc based one) to handle local filesystem, we'd lose our ability to list devices with their removable states.
We still need to allow the application to provide a custom IDeviceLister
, since there's no way for us to do this properly on some platforms (notably Android), and we need to delegate this job to the app itself.
The current plan is to:
-
Move network devices listing to an IDeviceLister implementation -
Add a scheme
member function toIDeviceLister
to be able to have different implementations for different FS factories, as opposed to one device lister for all for now. -
Add a deviceLister( std::string scheme )
or similar toIMediaLibrary
, in order to allow theIFileSystemFactory
to query a device lister for a specific scheme (which allows us to return our existing local device lister implementation to a libvlccore basedIFileSystemFactory
) -
RemoveIFileSystemFactoryCb
which is essentially the same asIDeviceListerCb
Edited by Hugo Beauzée-Luyssen