25 #ifndef AAX_CBINARYDISPLAYDELEGATE_H
26 #define AAX_CBINARYDISPLAYDELEGATE_H
33 #ifdef WINDOWS_VERSION
77 uint32_t mMaxStrLength;
85 static bool StringTableSortFunc(
struct StringTable i,
struct StringTable j)
87 return (i.mStrLength < j.mStrLength);
90 std::vector<struct StringTable> mShortenedStrings;
96 mFalseString(falseString),
97 mTrueString(trueString),
100 mMaxStrLength = (std::max)(mMaxStrLength, mFalseString.
Length());
101 mMaxStrLength = (std::max)(mMaxStrLength, mTrueString.
Length());
104 template <
typename T>
106 mFalseString(other.mFalseString),
107 mTrueString(other.mTrueString),
108 mMaxStrLength(other.mMaxStrLength)
110 if ( other.mShortenedStrings.size() > 0 )
112 for (
size_t i = 0; i < other.mShortenedStrings.size(); i++ )
113 mShortenedStrings.push_back( other.mShortenedStrings.at(i) );
117 template <
typename T>
120 struct StringTable shortendTable;
121 shortendTable.mStrLength = iStrLength;
122 shortendTable.mFalseString =
AAX_CString(falseString);
123 shortendTable.mTrueString =
AAX_CString(trueString);
124 mShortenedStrings.push_back(shortendTable);
127 std::sort(mShortenedStrings.begin(), mShortenedStrings.end(), AAX_CBinaryDisplayDelegate::StringTableSortFunc );
131 template <
typename T>
137 template <
typename T>
141 *valueString = mTrueString;
143 *valueString = mFalseString;
147 template <
typename T>
151 if ( mShortenedStrings.size() == 0 )
152 return this->ValueToString(value, valueString);
155 const uint32_t maxNumCharsUnsigned = (0 <= maxNumChars) ? static_cast<uint32_t>(maxNumChars) : 0;
156 if ( maxNumCharsUnsigned >= mMaxStrLength )
159 *valueString = mTrueString;
161 *valueString = mFalseString;
167 for (
int i = static_cast<int>(mShortenedStrings.size())-1; i >= 0; i-- )
169 struct StringTable shortStrings = mShortenedStrings.at(static_cast<unsigned int>(i));
170 if ( shortStrings.mStrLength <= maxNumChars )
173 *valueString = shortStrings.mTrueString;
175 *valueString = shortStrings.mFalseString;
181 struct StringTable shortestStrings = mShortenedStrings.at(0);
183 *valueString = shortestStrings.mTrueString;
185 *valueString = shortestStrings.mFalseString;
190 template <
typename T>
193 if (valueString == mTrueString)
198 if (valueString == mFalseString)
210 #endif //AAX_CBINARYDISPLAYDELEGATE_H
A binary display format conforming to AAX_IDisplayDelegate.
Definition: AAX_CBinaryDisplayDelegate.h:50
Classes for parameter value string conversion.
Definition: AAX_IDisplayDelegate.h:68
bool StringToValue(const AAX_CString &valueString, T *value) const
Converts a string to a real parameter value.
Definition: AAX_CBinaryDisplayDelegate.h:191
void AddShortenedStrings(const char *falseString, const char *trueString, int iStrLength)
Definition: AAX_CBinaryDisplayDelegate.h:118
Defines the display behavior for a parameter.
A generic AAX string class with similar functionality to std::string.
Definition: AAX_CString.h:35
virtual uint32_t Length() const
A generic AAX string class with similar functionality to std::string.
bool ValueToString(T value, AAX_CString *valueString) const
Converts a real parameter value to a string representation.
Definition: AAX_CBinaryDisplayDelegate.h:138
AAX_IDisplayDelegate< T > * Clone() const
Constructs and returns a copy of the display delegate.
Definition: AAX_CBinaryDisplayDelegate.h:132