CComPtr<IAudioClient> CreateDefaultClient( EDataFlow data_flow, ERole role) { //ASSERT(IsSupported()); CComPtr<IMMDevice> default_device(CreateDefaultDevice(data_flow, role)); return (default_device ? CreateClient(default_device) : CComPtr<IAudioClient>()); }
command_queue default_queue() { static command_queue queue; if (!queue.get()) { context c = default_context(); device d = default_device(); queue = command_queue(c, d); } return queue; }
cl::Device getDevice() { // init platforms std::vector<cl::Platform> platforms; cl::Platform::get(&platforms); // select default platform cl::Platform default_platform; for (auto &platform : platforms) { std::string platformVersion = platform.getInfo<CL_PLATFORM_VERSION>(); if (platformVersion.find("OpenCL 2.") != std::string::npos) { default_platform = platform; break; } } if (default_platform() == nullptr) { throw std::runtime_error("No OpenCL 2.x platform found."); } // init devices std::vector<cl::Device> all_devices; default_platform.getDevices(CL_DEVICE_TYPE_ALL, &all_devices); // select default device cl::Device default_device; for (auto &device : all_devices) { if (device()) { default_device = device; break; } } if (default_device() == nullptr) { throw std::runtime_error("No device found."); } // init context return default_device; }