16class DeviceManager :
public QObject,
public juce::AudioDeviceManager
23 using XmlStateGetter = std::function<std::unique_ptr<juce::XmlElement> ()>;
24 using XmlStateSetter = std::function<void (
const juce::XmlElement &)>;
26 DeviceManager (XmlStateGetter state_getter, XmlStateSetter state_setter);
44 int max_input_channels,
45 int max_output_channels,
46 bool fallback_to_default);
51 void createAudioDeviceTypes (
52 juce::OwnedArray<juce::AudioIODeviceType> &types)
override;
54 Q_INVOKABLE
void showDeviceSelector ();
57 class DeviceSelectorWindow :
public juce::DocumentWindow
60 DeviceSelectorWindow (DeviceManager &dev_manager);
61 void closeButtonPressed ()
override
63 dev_manager_.save_state ();
64 dev_manager_.device_selector_window_.reset ();
72 XmlStateGetter state_getter_;
73 XmlStateSetter state_setter_;
74 std::unique_ptr<DeviceSelectorWindow> device_selector_window_;