Go to the documentation of this file.00001 #ifndef ALDEVICELIST_H
00002 #define ALDEVICELIST_H
00003
00004 #pragma warning(disable: 4786) //disable warning "identifier was truncated to '255' characters in the browser information"
00005
00006
00007
00008
00009 using namespace std;
00010
00011 typedef struct
00012 {
00013 string strDeviceName;
00014 int iMajorVersion;
00015 int iMinorVersion;
00016 unsigned int uiSourceCount;
00017 vector<string> *pvstrExtensions;
00018 bool bSelected;
00019 } ALDEVICEINFO, *LPALDEVICEINFO;
00020
00021 class ALDeviceList
00022 {
00023 private:
00024 OPENALFNTABLE ALFunction;
00025 vector<ALDEVICEINFO> vDeviceInfo;
00026 int defaultDeviceIndex;
00027 int filterIndex;
00028
00029 public:
00030 ALDeviceList ();
00031 ~ALDeviceList ();
00032 int GetNumDevices();
00033 char *GetDeviceName(int index);
00034 void GetDeviceVersion(int index, int *major, int *minor);
00035 unsigned int GetMaxNumSources(int index);
00036 bool IsExtensionSupported(int index, char *szExtName);
00037 int GetDefaultDevice();
00038 void FilterDevicesMinVer(int major, int minor);
00039 void FilterDevicesMaxVer(int major, int minor);
00040 void FilterDevicesExtension(char *szExtName);
00041 void ResetFilters();
00042 int GetFirstFilteredDevice();
00043 int GetNextFilteredDevice();
00044
00045 private:
00046 unsigned int GetMaxNumSources();
00047 };
00048
00049 #endif // ALDEVICELIST_H