aldlist.h
Engine/source/sfx/openal/aldlist.h
Classes:
class
class
Public Typedefs
struct ALDEVICEINFO *
LPALDEVICEINFO
Detailed Description
Public Typedefs
typedef struct ALDEVICEINFO * LPALDEVICEINFO
1 2//----------------------------------------------------------------------------- 3// Copyright (c) 2012 GarageGames, LLC 4// 5// Permission is hereby granted, free of charge, to any person obtaining a copy 6// of this software and associated documentation files (the "Software"), to 7// deal in the Software without restriction, including without limitation the 8// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 9// sell copies of the Software, and to permit persons to whom the Software is 10// furnished to do so, subject to the following conditions: 11// 12// The above copyright notice and this permission notice shall be included in 13// all copies or substantial portions of the Software. 14// 15// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 21// IN THE SOFTWARE. 22//----------------------------------------------------------------------------- 23 24#ifndef ALDEVICELIST_H 25#define ALDEVICELIST_H 26 27#pragma warning(disable: 4786) //disable warning "identifier was truncated to '255' characters in the browser information" 28#include "core/util/tVector.h" 29#include "core/stringTable.h" 30#include "sfx/openal/sfxALCaps.h" 31#include "LoadOAL.h" 32 33typedef struct 34{ 35 char strDeviceName[256]; 36 S32 iMajorVersion; 37 S32 iMinorVersion; 38 U32 uiSourceCount; 39 S32 iCapsFlags; 40 bool bSelected; 41} ALDEVICEINFO, *LPALDEVICEINFO; 42 43class ALDeviceList 44{ 45private: 46 OPENALFNTABLE ALFunction; 47 Vector<ALDEVICEINFO> vDeviceInfo; 48 S32 defaultDeviceIndex; 49 S32 filterIndex; 50 51public: 52 ALDeviceList ( const OPENALFNTABLE &oalft ); 53 ~ALDeviceList (); 54 S32 GetNumDevices(); 55 const char *GetDeviceName(S32 index); 56 void GetDeviceVersion(S32 index, S32 *major, S32 *minor); 57 U32 GetMaxNumSources(S32 index); 58 bool IsExtensionSupported(S32 index, SFXALCaps caps); 59 S32 GetDefaultDevice(); 60 void FilterDevicesMinVer(S32 major, S32 minor); 61 void FilterDevicesMaxVer(S32 major, S32 minor); 62 void FilterDevicesExtension(SFXALCaps caps); 63 void ResetFilters(); 64 S32 GetFirstFilteredDevice(); 65 S32 GetNextFilteredDevice(); 66 67private: 68 U32 GetMaxNumSources(); 69}; 70 71#endif // ALDEVICELIST_H 72