#pragma once #include #include #include #include #include "AudioNotificationListener.h" class AudioDevice { public: IMMDevice* device = nullptr; IAudioEndpointVolume* volumeInterface = nullptr; IAudioMeterInformation* meterInterface = nullptr; std::wstring id = {}; std::string name = {}; unsigned long state = {}; bool isDefaultConsole = {}; bool isDefaultMedia = {}; bool isDefaultCommunication = {}; AudioDevice(); AudioDevice(AudioDevice&& other) noexcept; AudioDevice& operator=(AudioDevice&& other) noexcept; ~AudioDevice(); }; class ApplicationSettings { public: bool showDisabledDevices = false; bool fitWindowHeight = true; }; class ApplicationData { public: ApplicationSettings settings = {}; std::vector playbackDevices = {}; std::vector recordingDevices = {}; IMMDeviceEnumerator* deviceEnumerator = nullptr; AudioNotificationListener* audioNotificationListener = nullptr; };