cubeb: Show default device option even if enumerating devices fails (#1515)

This commit is contained in:
mitoposter 2025-03-19 16:06:55 +00:00 committed by GitHub
parent 8b5cafa98e
commit 57ff99ce53
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 12 deletions

View File

@ -183,17 +183,17 @@ void CubebAPI::Destroy()
std::vector<IAudioAPI::DeviceDescriptionPtr> CubebAPI::GetDevices()
{
cubeb_device_collection devices;
if (cubeb_enumerate_devices(s_context, CUBEB_DEVICE_TYPE_OUTPUT, &devices) != CUBEB_OK)
return {};
std::vector<DeviceDescriptionPtr> result;
result.reserve(devices.count + 1); // Reserve space for the default device
// Add the default device to the list
auto defaultDevice = std::make_shared<CubebDeviceDescription>(nullptr, "default", L"Default Device");
result.emplace_back(defaultDevice);
cubeb_device_collection devices;
if (cubeb_enumerate_devices(s_context, CUBEB_DEVICE_TYPE_OUTPUT, &devices) != CUBEB_OK)
return result;
result.reserve(devices.count + 1); // The default device already occupies one element
for (size_t i = 0; i < devices.count; ++i)
{
// const auto& device = devices.device[i];

View File

@ -175,17 +175,17 @@ void CubebInputAPI::Destroy()
std::vector<IAudioInputAPI::DeviceDescriptionPtr> CubebInputAPI::GetDevices()
{
cubeb_device_collection devices;
if (cubeb_enumerate_devices(s_context, CUBEB_DEVICE_TYPE_INPUT, &devices) != CUBEB_OK)
return {};
std::vector<DeviceDescriptionPtr> result;
result.reserve(devices.count + 1); // Reserve space for the default device
// Add the default device to the list
auto defaultDevice = std::make_shared<CubebDeviceDescription>(nullptr, "default", L"Default Device");
result.emplace_back(defaultDevice);
cubeb_device_collection devices;
if (cubeb_enumerate_devices(s_context, CUBEB_DEVICE_TYPE_INPUT, &devices) != CUBEB_OK)
return result;
result.reserve(devices.count + 1); // The default device already occupies one element
for (size_t i = 0; i < devices.count; ++i)
{
// const auto& device = devices.device[i];