Macro EnumerateCameras() Test() End Function Test() Variable sidx_status Variable sidx_root String sidx_license = "" SIDXRootOpen sidx_root, sidx_license, sidx_status if (sidx_status != 0) printf "SIDXRootOpen failed\r" return 0 endif SIDXRootCameraScan sidx_root, sidx_status if (sidx_status != 0) ErrorSIDXRoot(sidx_root, "SIDXRootCameraScan") SIDXRootClose sidx_root, sidx_status return 0 endif Variable sidx_camera_count SIDXRootCameraScanGetCount sidx_root, sidx_camera_count, sidx_status if (sidx_status != 0) ErrorSIDXRoot(sidx_root, "SIDXRootCameraScanGetCount") SIDXRootClose sidx_root, sidx_status return 0 endif if (sidx_camera_count < 1) SIDXRootClose sidx_root, sidx_status printf "No camera found.\r" return 0 endif Variable sidx_camera_index = 0 String sidx_camera_name = "" do SIDXRootCameraScanGetName sidx_root, sidx_camera_index, sidx_camera_name, sidx_status if (sidx_status != 0) ErrorSIDXRoot(sidx_root, "SIDXRootCameraScanGetName") SIDXRootClose sidx_root, sidx_status break endif printf "\tCamera: %s\r", sidx_camera_name sidx_camera_index += 1 while (sidx_camera_index < sidx_camera_count) SIDXRootClose sidx_root, sidx_status return 0 End Static Function ErrorSIDXRoot(sidx_root_local, function_name) Variable sidx_root_local String function_name String message_root = "" Variable status SIDXRootGetLastError sidx_root_local, message_root printf "%s: %s\r", function_name, message_root SIDXRootClose sidx_root_local, status End