public static List<CHDKPTPDevice> FindDevices(bool only_supported = true, Func<UsbDevice,CHDKPTPDevice> constr = null)
{
if (constr == null)
constr = x => new CHDKPTPDevice(x);
List<CHDKPTPDevice> r = PTPUtil.FindDevices(only_supported, constr).ConvertAll<CHDKPTPDevice>(CheckSupported);
if (only_supported)
r = r.Where(x => x.CHDKSupported).ToList();
return r;
}