winamp/Src/Winamp/DeveloperConfigGroup.cpp

57 lines
1.2 KiB
C++

/** (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