This commit is contained in:
2022-07-15 04:32:36 +02:00
parent b621d1266c
commit be949ea8a3
7 changed files with 89 additions and 37 deletions

View File

@@ -40,14 +40,14 @@ void init(DrawData& drawData, void* customData)
audioResult = CoInitializeEx(NULL, COINIT_MULTITHREADED);
isError(audioResult, "Failed to initialize COM: ");
audioResult = CoCreateInstance(__uuidof(MMDeviceEnumerator), NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&appData->deviceEnumerator));
audioResult = CoCreateInstance(__uuidof(MMDeviceEnumerator), NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&appData->audioData->deviceEnumerator));
isError(audioResult, "Failed to set up audio device enumerator: ");
appData->audioNotificationListener = new AudioNotificationListener(appData);
audioResult = appData->deviceEnumerator->RegisterEndpointNotificationCallback(appData->audioNotificationListener);
appData->audioData->audioNotificationListener = new AudioNotificationListener(appData->audioData);
audioResult = appData->audioData->deviceEnumerator->RegisterEndpointNotificationCallback(appData->audioData->audioNotificationListener);
isError(audioResult, "Failed to register audio notification listener: ");
reloadDeviceLists(appData);
reloadDeviceLists(*appData->audioData);
// Set window icon
LPWSTR iconId = MAKEINTRESOURCE(IDI_ICON1);
@@ -70,14 +70,14 @@ void draw(DrawData& drawData, void* customData)
// Playback Devices
ImGui::SetNextWindowPos(ImVec2(0, customYCursor));
ImGui::SetNextWindowSize(ImVec2(viewportSize.x, 0));
customYCursor += audioDeviceWindow(appData, appData->playbackDevices, " \xEE\xB8\x84 Playback").y;
customYCursor += audioDeviceWindow(appData, appData->audioData->playbackDevices, " \xEE\xB8\x84 Playback").y;
customYCursor += 5.;
// Recording devices
ImGui::SetNextWindowPos(ImVec2(0, customYCursor));
ImGui::SetNextWindowSize(ImVec2(viewportSize.x, 0));
customYCursor += audioDeviceWindow(appData, appData->recordingDevices, " \xEE\xBD\x8F Recording").y;
customYCursor += audioDeviceWindow(appData, appData->audioData->recordingDevices, " \xEE\xBD\x8F Recording").y;
// Resize viewport
if (appData->settings.fitWindowHeight)
@@ -103,7 +103,7 @@ ImVec2 menuBar(ApplicationData* appData)
{
if (ImGui::Button("Manual Refresh"))
{
reloadDeviceLists(appData);
reloadDeviceLists(*appData->audioData);
}
ImGui::EndMenu();
}
@@ -196,7 +196,7 @@ ImVec2 audioDeviceWindow(ApplicationData* appData, std::vector<AudioDevice>& dev
}
if (customButton("bn_d_", deviceIdUtf8.c_str(), "\xEE\xBE\x82", !dev.isDefaultConsole))
{
setDefaultAudioDevice(appData, dev.id.c_str(), ERole::eConsole);
setDefaultAudioDevice(*appData->audioData, dev.id.c_str(), ERole::eConsole);
}
ImGui::SameLine();
@@ -206,7 +206,7 @@ ImVec2 audioDeviceWindow(ApplicationData* appData, std::vector<AudioDevice>& dev
}
if (customButton("bn_c_", deviceIdUtf8.c_str(), "\xEE\xBF\xA9", !dev.isDefaultCommunication))
{
setDefaultAudioDevice(appData, dev.id.c_str(), ERole::eCommunications);
setDefaultAudioDevice(*appData->audioData, dev.id.c_str(), ERole::eCommunications);
}
}