Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
bb0a0f8
Initial check in of the audio device manager panel and window
kunitoki Jun 4, 2026
49ca393
Better core audio support for aggregate devices
kunitoki Jun 4, 2026
404da97
Fix issues
kunitoki Jun 4, 2026
3b67050
Fix locking
kunitoki Jun 4, 2026
d967679
Improved code
kunitoki Jun 4, 2026
242a70a
Make pending stop an atomic
kunitoki Jun 4, 2026
525981e
Move code and reduce size
kunitoki Jun 4, 2026
e661e00
Fix deprecated usage
kunitoki Jun 5, 2026
c05f3d1
Fix issues
kunitoki Jun 5, 2026
520fca6
Merge branch 'main' into dev/audio_device_panel
kunitoki Jun 13, 2026
72531fc
Merge branch 'main' into dev/audio_device_panel
kunitoki Jun 15, 2026
996eb75
Merge branch 'main' into dev/audio_device_panel
kunitoki Jun 26, 2026
c65e711
Merge branch 'main' into dev/audio_device_panel
kunitoki Jun 27, 2026
299fd54
Merge branch 'main' into dev/audio_device_panel
kunitoki Jul 7, 2026
05d3d6b
Merge branch 'main' into dev/audio_device_panel
kunitoki Jul 16, 2026
497be94
Merge branch 'main' into dev/audio_device_panel
kunitoki Jul 22, 2026
b20652c
Fix issue with automatic switch of preferred default
kunitoki Jul 22, 2026
de03f4a
Merge branch 'main' into dev/audio_device_panel
kunitoki Jul 22, 2026
fa82596
Merge branch 'main' into dev/audio_device_panel
kunitoki Jul 23, 2026
a29c5d5
Merge branch 'main' into dev/audio_device_panel
kunitoki Jul 23, 2026
7b9a515
Merge branch 'main' into dev/audio_device_panel
kunitoki Jul 23, 2026
807b81d
More tests
kunitoki Jul 23, 2026
8277eff
Merge branch 'main' into dev/audio_device_panel
kunitoki Jul 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

YUP is a C++20 framework for building native applications, audio tools, and audio plugins with one codebase across desktop, mobile, and the web. It combines permissively licensed JUCE7-derived foundations with modern rendering through the open source [Rive](https://rive.app/) renderer and YUP's own evolving graphics, GUI, DSP, audio graph, and plugin layers.

[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/kunitoki/yup)
[![Build And Test MacOS](https://github.com/kunitoki/yup/actions/workflows/build_macos.yml/badge.svg)](https://github.com/kunitoki/yup/actions/workflows/build_macos.yml)
[![Build And Test Windows](https://github.com/kunitoki/yup/actions/workflows/build_windows.yml/badge.svg)](https://github.com/kunitoki/yup/actions/workflows/build_windows.yml)
[![Build And Test Linux](https://github.com/kunitoki/yup/actions/workflows/build_linux.yml/badge.svg)](https://github.com/kunitoki/yup/actions/workflows/build_linux.yml)
Expand Down
11 changes: 11 additions & 0 deletions examples/audiograph/source/AudioGraphApp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ void AudioGraphApp::resized()
saveButton.setBounds (toolbar.removeFromLeft (70).reduced (4, 4));
toolbar.removeFromLeft (8);
scanButton.setBounds (toolbar.removeFromLeft (100).reduced (4, 4));
settingsButton.setBounds (toolbar.removeFromLeft (80).reduced (4, 4));
statusLabel.setBounds (toolbar.reduced (4, 4));

editorPanel->setBounds (bounds);
Expand Down Expand Up @@ -249,6 +250,16 @@ void AudioGraphApp::setupToolbar()
};
addAndMakeVisible (scanButton);

settingsButton.setButtonText ("Settings");
settingsButton.onClick = [this]
{
if (deviceManagerWindow == nullptr)
deviceManagerWindow = std::make_unique<yup::AudioDeviceManagerWindow> (deviceManager);
deviceManagerWindow->setVisible (true);
deviceManagerWindow->toFront (true);
};
addAndMakeVisible (settingsButton);

statusLabel.setText ("Ready.", yup::dontSendNotification);
addAndMakeVisible (statusLabel);
}
Expand Down
3 changes: 3 additions & 0 deletions examples/audiograph/source/AudioGraphApp.h
Original file line number Diff line number Diff line change
Expand Up @@ -147,8 +147,11 @@ class AudioGraphApp final
yup::TextButton openButton;
yup::TextButton saveButton;
yup::TextButton scanButton;
yup::TextButton settingsButton;
yup::Label statusLabel;

std::unique_ptr<yup::AudioDeviceManagerWindow> deviceManagerWindow;

bool audioCallbackRegistered = false;

#if YUP_DESKTOP
Expand Down
15 changes: 15 additions & 0 deletions modules/yup_audio_devices/audio_io/yup_AudioDeviceManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -214,8 +214,23 @@ void AudioDeviceManager::audioDeviceListChanged()
{
if (currentAudioDevice != nullptr)
{
if (lastExplicitSettings == nullptr && preferredDeviceName.isEmpty())
{
auto setup = currentSetup;
setup.inputDeviceName.clear();
setup.outputDeviceName.clear();
insertDefaultDeviceNames (setup);

if (setup.inputDeviceName != currentSetup.inputDeviceName
|| setup.outputDeviceName != currentSetup.outputDeviceName)
setAudioDeviceSetup (setup, false);
}

auto currentDeviceStillAvailable = [&]
{
if (currentAudioDevice == nullptr)
return false;

auto currentTypeName = currentAudioDevice->getTypeName();
auto currentDeviceName = currentAudioDevice->getName();

Expand Down
Loading
Loading