| Index: webrtc/common.h
|
| diff --git a/webrtc/common.h b/webrtc/common.h
|
| index d705d4b8ed12ea6efe357feec8e46bbd3ea8814b..dda045ee6c0ca3a64756a706f9a6417c774a1b35 100644
|
| --- a/webrtc/common.h
|
| +++ b/webrtc/common.h
|
| @@ -16,23 +16,6 @@
|
| #include "webrtc/base/basictypes.h"
|
|
|
| namespace webrtc {
|
| -
|
| -// Only add new values to the end of the enumeration and never remove (only
|
| -// deprecate) to maintain binary compatibility.
|
| -enum class ConfigOptionID {
|
| - kMyExperimentForTest,
|
| - kAlgo1CostFunctionForTest,
|
| - kTemporalLayersFactory,
|
| - kNetEqCapacityConfig,
|
| - kNetEqFastAccelerate,
|
| - kVoicePacing,
|
| - kExtendedFilter,
|
| - kDelayAgnostic,
|
| - kExperimentalAgc,
|
| - kExperimentalNs,
|
| - kBeamforming,
|
| - kIntelligibility
|
| -};
|
|
|
| // Class Config is designed to ease passing a set of options across webrtc code.
|
| // Options are identified by typename in order to avoid incorrect casts.
|
| @@ -78,6 +61,8 @@
|
| }
|
|
|
| private:
|
| + typedef void* OptionIdentifier;
|
| +
|
| struct BaseOption {
|
| virtual ~BaseOption() {}
|
| };
|
| @@ -91,9 +76,11 @@
|
| T* value;
|
| };
|
|
|
| + // Own implementation of rtti-subset to avoid depending on rtti and its costs.
|
| template<typename T>
|
| - static ConfigOptionID identifier() {
|
| - return T::identifier;
|
| + static OptionIdentifier identifier() {
|
| + static char id_placeholder;
|
| + return &id_placeholder;
|
| }
|
|
|
| // Used to instantiate a default constructed object that doesn't needs to be
|
| @@ -105,7 +92,7 @@
|
| return def;
|
| }
|
|
|
| - typedef std::map<ConfigOptionID, BaseOption*> OptionMap;
|
| + typedef std::map<OptionIdentifier, BaseOption*> OptionMap;
|
| OptionMap options_;
|
|
|
| // RTC_DISALLOW_COPY_AND_ASSIGN
|
|
|