25 #ifndef AAX_CBINARYDISPLAYDELEGATE_H
26 #define AAX_CBINARYDISPLAYDELEGATE_H
33 #ifdef WINDOWS_VERSION
71 virtual void AddShortenedStrings(
const char* falseString,
const char* trueString,
int iStrLength);
78 uint32_t mMaxStrLength;
86 static bool StringTableSortFunc(
struct StringTable i,
struct StringTable j)
88 return (i.mStrLength < j.mStrLength);
91 std::vector<struct StringTable> mShortenedStrings;
97 mFalseString(falseString),
98 mTrueString(trueString),
101 mMaxStrLength = (std::max)(mMaxStrLength, mFalseString.
Length());
102 mMaxStrLength = (std::max)(mMaxStrLength, mTrueString.
Length());
105 template <
typename T>
107 mFalseString(other.mFalseString),
108 mTrueString(other.mTrueString),
109 mMaxStrLength(other.mMaxStrLength)
111 if ( other.mShortenedStrings.size() > 0 )
113 for (
size_t i = 0; i < other.mShortenedStrings.size(); i++ )
114 mShortenedStrings.push_back( other.mShortenedStrings.at(i) );
118 template <
typename T>
121 struct StringTable shortendTable;
122 shortendTable.mStrLength = iStrLength;
123 shortendTable.mFalseString =
AAX_CString(falseString);
124 shortendTable.mTrueString =
AAX_CString(trueString);
125 mShortenedStrings.push_back(shortendTable);
128 std::sort(mShortenedStrings.begin(), mShortenedStrings.end(), AAX_CBinaryDisplayDelegate::StringTableSortFunc );
132 template <
typename T>
138 template <
typename T>
142 *valueString = mTrueString;
144 *valueString = mFalseString;
148 template <
typename T>
152 if ( mShortenedStrings.size() == 0 )
153 return this->ValueToString(value, valueString);
156 const uint32_t maxNumCharsUnsigned = (0 <= maxNumChars) ?
static_cast<uint32_t
>(maxNumChars) : 0;
157 if ( maxNumCharsUnsigned >= mMaxStrLength )
160 *valueString = mTrueString;
162 *valueString = mFalseString;
168 for (
int i =
static_cast<int>(mShortenedStrings.size())-1; i >= 0; i-- )
170 struct StringTable shortStrings = mShortenedStrings.at(
static_cast<unsigned int>(i));
171 if ( shortStrings.mStrLength <= maxNumChars )
174 *valueString = shortStrings.mTrueString;
176 *valueString = shortStrings.mFalseString;
182 struct StringTable shortestStrings = mShortenedStrings.at(0);
184 *valueString = shortestStrings.mTrueString;
186 *valueString = shortestStrings.mFalseString;
191 template <
typename T>
194 if (valueString == mTrueString)
199 if (valueString == mFalseString)
#define AAX_OVERRIDE
override keyword macro
Definition: AAX.h:141
A generic AAX string class with similar functionality to std::string.
Defines the display behavior for a parameter.
A binary display format conforming to AAX_IDisplayDelegate.
Definition: AAX_CBinaryDisplayDelegate.h:51
bool ValueToString(T value, AAX_CString *valueString) const AAX_OVERRIDE
Converts a real parameter value to a string representation.
Definition: AAX_CBinaryDisplayDelegate.h:139
virtual void AddShortenedStrings(const char *falseString, const char *trueString, int iStrLength)
Definition: AAX_CBinaryDisplayDelegate.h:119
AAX_IDisplayDelegate< T > * Clone() const AAX_OVERRIDE
Constructs and returns a copy of the display delegate.
Definition: AAX_CBinaryDisplayDelegate.h:133
bool StringToValue(const AAX_CString &valueString, T *value) const AAX_OVERRIDE
Converts a string to a real parameter value.
Definition: AAX_CBinaryDisplayDelegate.h:192
A generic AAX string class with similar functionality to std::string
Definition: AAX_CString.h:46
uint32_t Length() const AAX_OVERRIDE
Classes for parameter value string conversion.
Definition: AAX_IDisplayDelegate.h:69