| 
									
										
										
										
											2015-05-24 06:32:32 +02:00
										 |  |  | // Copyright 2009 Dolphin Emulator Project
 | 
					
						
							|  |  |  | // Licensed under GPLv2+
 | 
					
						
							|  |  |  | // Refer to the license.txt file included.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-10 13:54:46 -05:00
										 |  |  | #pragma once
 | 
					
						
							| 
									
										
										
										
											2009-07-06 02:10:26 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-17 05:18:15 -05:00
										 |  |  | #include <string>
 | 
					
						
							|  |  |  | #include <vector>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "Common/CommonTypes.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-06 02:10:26 +00:00
										 |  |  | #ifdef _WIN32
 | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02: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 10:43:46 +02: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 10:43:46 +02:00
										 |  |  |   std::vector<ALDEVICEINFO> vDeviceInfo; | 
					
						
							|  |  |  |   s32 defaultDeviceIndex; | 
					
						
							|  |  |  |   s32 filterIndex; | 
					
						
							| 
									
										
										
										
											2009-07-06 02:10:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02: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 10:43:46 +02:00
										 |  |  |   u32 GetMaxNumSources(); | 
					
						
							| 
									
										
										
										
											2009-07-06 02:10:26 +00:00
										 |  |  | }; |