int CalDevice::getNumDevices() { if (!CalInitObject::check()) return 0; CALuint numDevices = 0; if (calDeviceGetCount(&numDevices) != CAL_RESULT_OK) return 0; return (int)numDevices; }
static CALresult mwGetDevice(MWCALInfo* ci, CALuint devID) { CALresult err; err = calDeviceGetCount(&ci->numDevices); if (err != CAL_RESULT_OK) { cal_warn("Failed to get CAL device count", err); return err; } if (ci->numDevices == 0) { warn("Didn't find any CAL devices\n"); return CAL_RESULT_ERROR; } if (devID + 1 > ci->numDevices) { warn("Requested device ID %u > found number of devices (%u)\n", devID, ci->numDevices); return CAL_RESULT_ERROR; } ci->devID = devID; err = calDeviceOpen(&ci->dev, ci->devID); if (err != CAL_RESULT_OK) { cal_warn("Failed to open CAL device", err); return err; } err = calDeviceGetInfo(&ci->devInfo, ci->devID); if (err != CAL_RESULT_OK) { cal_warn("Failed to get CAL device information", err); return err; } ci->devAttribs.struct_size = sizeof(struct CALdeviceattribsRec); err = calDeviceGetAttribs(&ci->devAttribs, ci->devID); if (err != CAL_RESULT_OK) { cal_warn("Failed to get CAL device attributes", err); return err; } return CAL_RESULT_OK; }