17class DeviceManager :
public QObject,
public juce::AudioDeviceManager
24 using XmlStateGetter = std::function<std::unique_ptr<juce::XmlElement> ()>;
25 using XmlStateSetter = std::function<void (
const juce::XmlElement &)>;
27 DeviceManager (XmlStateGetter state_getter, XmlStateSetter state_setter);
45 int max_input_channels,
46 int max_output_channels,
47 bool fallback_to_default);
52 void createAudioDeviceTypes (
53 juce::OwnedArray<juce::AudioIODeviceType> &types)
override;
55 Q_INVOKABLE
void showDeviceSelector ();
58 class DeviceSelectorWindow :
public juce::DocumentWindow
61 DeviceSelectorWindow (DeviceManager &dev_manager);
62 void closeButtonPressed ()
override
64 dev_manager_.save_state ();
65 dev_manager_.device_selector_window_.reset ();
73 XmlStateGetter state_getter_;
74 XmlStateSetter state_setter_;
75 std::unique_ptr<DeviceSelectorWindow> device_selector_window_;