2015-05-24 04:32:32 +00:00
|
|
|
// Copyright 2009 Dolphin Emulator Project
|
|
|
|
// Licensed under GPLv2+
|
|
|
|
// Refer to the license.txt file included.
|
|
|
|
|
2014-02-10 18:54:46 +00:00
|
|
|
#pragma once
|
2009-07-06 02:10:26 +00:00
|
|
|
|
2014-02-17 10:18:15 +00:00
|
|
|
#include <string>
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
#include "Common/CommonTypes.h"
|
|
|
|
|
2009-07-06 02:10:26 +00:00
|
|
|
#ifdef _WIN32
|
2016-06-24 08:43:46 +00:00
|
|
|
#pragma warning(disable : 4786) // disable warning "identifier was truncated to
|
|
|
|
//'255' characters in the browser information"
|
2009-07-06 02:10:26 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
2016-06-24 08:43:46 +00:00
|
|
|
std::string strDeviceName;
|
|
|
|
s32 iMajorVersion;
|
|
|
|
s32 iMinorVersion;
|
|
|
|
u32 uiSourceCount;
|
|
|
|
std::vector<std::string>* pvstrExtensions;
|
|
|
|
bool bSelected;
|
2009-07-06 02:10:26 +00:00
|
|
|
} ALDEVICEINFO, *LPALDEVICEINFO;
|
|
|
|
|
|
|
|
class ALDeviceList
|
|
|
|
{
|
|
|
|
private:
|
2016-06-24 08:43:46 +00:00
|
|
|
std::vector<ALDEVICEINFO> vDeviceInfo;
|
|
|
|
s32 defaultDeviceIndex;
|
|
|
|
s32 filterIndex;
|
2009-07-06 02:10:26 +00:00
|
|
|
|
|
|
|
public:
|
2016-06-24 08:43:46 +00:00
|
|
|
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();
|
2009-07-06 02:10:26 +00:00
|
|
|
|
|
|
|
private:
|
2016-06-24 08:43:46 +00:00
|
|
|
u32 GetMaxNumSources();
|
2009-07-06 02:10:26 +00:00
|
|
|
};
|