Today each plugin will initiate a scan for devices relevant to it even if this has been done before for the same type of physical device. For example the LimeSDR input plugin will scan for all LimeSDR devices then later the LimeSDR output plugin will do the same thing again. However the gathered information is the same in both cases it is only the post process that is different. The device scan is by large the thing that takes the longest time at startup (just check the splash screen to get an idea...) so optimizing it would significantly reduce the initial program load time. Moreover when a third type of plugin (MIMO) will be put in place the same operation could take place 3 times. The critical nature of this may promote this as a v5 (MIMO support) prerequisite.
The idea is to gather the connected devices information in some sort of cache present in the "core" of the program and that can be accessed when the enumeration routine of the plugin is called.
Today each plugin will initiate a scan for devices relevant to it even if this has been done before for the same type of physical device. For example the LimeSDR input plugin will scan for all LimeSDR devices then later the LimeSDR output plugin will do the same thing again. However the gathered information is the same in both cases it is only the post process that is different. The device scan is by large the thing that takes the longest time at startup (just check the splash screen to get an idea...) so optimizing it would significantly reduce the initial program load time. Moreover when a third type of plugin (MIMO) will be put in place the same operation could take place 3 times. The critical nature of this may promote this as a v5 (MIMO support) prerequisite.
The idea is to gather the connected devices information in some sort of cache present in the "core" of the program and that can be accessed when the enumeration routine of the plugin is called.