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>());
 }
示例#2
0
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;
}
示例#3
0
文件: utils.hpp 项目: BossKwei/temp
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;
}