#pragma once #define WIN32_LEAN_AND_MEAN #include "global.h" #include #include #include #include #include #include #include #include #include #include //#include //#include #include class Endpoint { public: Endpoint(IMMDevice* endpoint); void setVolume(float volume); float getVolume(); LPWSTR getName(); ~Endpoint(); private: IMMDevice* endpoint; IAudioEndpointVolume *endpointVolume ; IPropertyStore *properties; LPWSTR friendlyName; // LPWSTR endpointID = NULL; }; class Overseer { //TODO singleton? public: Overseer(); std::vector getPlaybackEndpoints(); void reloadEndpoints(); //~Overseer(); //int getDefaultPlaybackEndpoint(Endpoint** defaultEndpoint); //int getDefaultCaptureEndpoint(Endpoint** defaultEndpoint); //int getCaptureEndpoints(std::vector *captureEndpoints); //IMMDeviceEnumerator** setOrigin(); ~Overseer(); private: unsigned int numPlaybackEndpoints; IMMDeviceEnumerator *deviceEnumerator; std::vector playbackDevices; void initCOMLibrary(); //IMMDeviceCollection *deviceCollection; //int numCaptureEndpoints; //std::vector *captureDevices; };