swr/rast: simplify knob default value setup
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
This commit is contained in:
parent
844be91e70
commit
c8fe4c13b2
|
@ -67,12 +67,6 @@ public:
|
|||
return Value();
|
||||
}
|
||||
|
||||
protected:
|
||||
Knob(T const &defaultValue) :
|
||||
m_Value(expandEnvironmentVariables(defaultValue))
|
||||
{
|
||||
}
|
||||
|
||||
private:
|
||||
T m_Value;
|
||||
};
|
||||
|
@ -83,10 +77,10 @@ private:
|
|||
|
||||
{ \\
|
||||
|
||||
Knob_##_name() : Knob<_type>(_default) { } \\
|
||||
|
||||
static const char* Name() { return "KNOB_" #_name; } \\
|
||||
|
||||
static _type DefaultValue() { return (_default); } \\
|
||||
|
||||
} _name;
|
||||
|
||||
#define GET_KNOB(_name) g_GlobalKnobs._name.Value()
|
||||
|
@ -117,8 +111,9 @@ struct GlobalKnobs
|
|||
% endif
|
||||
|
||||
% endfor
|
||||
GlobalKnobs();
|
||||
|
||||
std::string ToString(const char* optPerLinePrefix="");
|
||||
GlobalKnobs();
|
||||
};
|
||||
extern GlobalKnobs g_GlobalKnobs;
|
||||
|
||||
|
|
|
@ -91,16 +91,18 @@ static inline void ConvertEnvToKnob(const char* pOverride, std::string& knobValu
|
|||
template <typename T>
|
||||
static inline void InitKnob(T& knob)
|
||||
{
|
||||
|
||||
// TODO, read registry first
|
||||
|
||||
// Second, read environment variables
|
||||
// Read environment variables
|
||||
const char* pOverride = getenv(knob.Name());
|
||||
|
||||
if (pOverride)
|
||||
{
|
||||
auto knobValue = knob.Value();
|
||||
auto knobValue = knob.DefaultValue();
|
||||
ConvertEnvToKnob(pOverride, knobValue);
|
||||
knob.Value(knobValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Set default value
|
||||
knob.Value(knob.DefaultValue());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue