// Copyright 2009 Dolphin Emulator Project // Licensed under GPLv2+ // Refer to the license.txt file included. #pragma once #include #include #include "Common/CommonTypes.h" #ifdef _WIN32 #pragma warning(disable : 4786) // disable warning "identifier was truncated to //'255' characters in the browser information" #endif typedef struct { std::string strDeviceName; s32 iMajorVersion; s32 iMinorVersion; u32 uiSourceCount; std::vector* pvstrExtensions; bool bSelected; } ALDEVICEINFO, *LPALDEVICEINFO; class ALDeviceList { private: std::vector vDeviceInfo; s32 defaultDeviceIndex; s32 filterIndex; public: ALDeviceList(); ~ALDeviceList(); s32 GetNumDevices(); char* GetDeviceName(s32 index); void GetDeviceVersion(s32 index, s32* major, s32* minor); u32 GetMaxNumSources(s32 index); bool IsExtensionSupported(s32 index, char* szExtName); s32 GetDefaultDevice(); void FilterDevicesMinVer(s32 major, s32 minor); void FilterDevicesMaxVer(s32 major, s32 minor); void FilterDevicesExtension(char* szExtName); void ResetFilters(); s32 GetFirstFilteredDevice(); s32 GetNextFilteredDevice(); private: u32 GetMaxNumSources(); };