diff options
Diffstat (limited to 'Src/Winamp/DeveloperConfigGroup.cpp')
-rw-r--r-- | Src/Winamp/DeveloperConfigGroup.cpp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Src/Winamp/DeveloperConfigGroup.cpp b/Src/Winamp/DeveloperConfigGroup.cpp new file mode 100644 index 00000000..84e6a2eb --- /dev/null +++ b/Src/Winamp/DeveloperConfigGroup.cpp @@ -0,0 +1,57 @@ +/** (c) Nullsoft, Inc. C O N F I D E N T I A L + ** Filename: + ** Project: + ** Description: + ** Author: Ben Allison benski@nullsoft.com + ** Created: + **/ +#include "main.h" +#include "DeveloperConfigGroup.h" + +#include "../Agave/Config/ifc_configitem.h" +#include "WinampAttributes.h" + +class MaskBoolConfigItem : public ifc_configitem +{ +public: + MaskBoolConfigItem(int _mask) : mask(_mask) {} + bool GetBool() + { + return !!(config_no_visseh&mask); + } +protected: + RECVS_DISPATCH; + +private: + int mask; +}; + +#define CBCLASS MaskBoolConfigItem +START_DISPATCH; +CB(IFC_CONFIGITEM_GETBOOL, GetBool) +END_DISPATCH; +#undef CBCLASS + +static MaskBoolConfigItem sehVisItem(1), sehDSPItem(2), sehGenItem(4), sehIEItem(8); + +ifc_configitem *DeveloperConfigGroup::GetItem(const wchar_t *name) +{ + if (!wcscmp(name, L"no_visseh")) + return &sehVisItem; + else if (!wcscmp(name, L"no_dspseh")) + return &sehDSPItem; + else if (!wcscmp(name, L"no_genseh")) + return &sehGenItem; + else if (!wcscmp(name, L"no_ieseh")) + return &sehIEItem; + + return 0; +} + + +#define CBCLASS DeveloperConfigGroup +START_DISPATCH; +CB(IFC_CONFIGGROUP_GETITEM, GetItem) +CB(IFC_CONFIGGROUP_GETGUID, GetGUID) +END_DISPATCH; +#undef CBCLASS
\ No newline at end of file |