35#ifndef AAX_CSTATEDISPLAYDELEGATE_H
36#define AAX_CSTATEDISPLAYDELEGATE_H
42#if defined(WINDOWS_VERSION) || defined(LINUX_VERSION)
103 std::vector<AAX_CString> mStateStrings;
108 std::vector<AAX_CString> mStateStrings;
110 static bool StringTableSortFunc(
struct StringTable i,
struct StringTable j)
112 return (i.mStrLength < j.mStrLength);
115 std::vector<struct StringTable> mShortenedStrings;
121 mMinState = iMinState;
122 for (
int index = 0; iStateStrings[ index ] != 0; ++index )
123 mStateStrings.push_back(
AAX_CString( iStateStrings[ index ] ) );
129 mMinState = iMinState;
130 for (
int index = 0; (index < inNumStates) && (iStateStrings[ index ] != 0); ++index )
131 mStateStrings.push_back(
AAX_CString( iStateStrings[ index ] ) );
137 mMinState = iMinState;
138 for ( std::vector<AAX_IString*>::const_iterator iter = iStateStrings.begin(); iter != iStateStrings.end(); ++iter )
142 mStateStrings.push_back( *(*iter) );
150 mMinState = iOther.mMinState;
152 std::vector<AAX_CString>::const_iterator iter = iOther.mStateStrings.begin();
153 for ( ; iter != iOther.mStateStrings.end(); ++iter )
156 if ( iOther.mShortenedStrings.size() > 0 )
158 for (
int i = 0; i < (int)iOther.mShortenedStrings.size(); i++ )
159 mShortenedStrings.push_back( iOther.mShortenedStrings.at(i) );
166 struct StringTable shortendTable;
167 shortendTable.mStrLength = iStrLength;
168 for (
int index = 0; iStateStrings[ index ] != 0; ++index )
169 shortendTable.mStateStrings.push_back(
AAX_CString( iStateStrings[ index ] ) );
170 mShortenedStrings.push_back(shortendTable);
173 std::sort(mShortenedStrings.begin(), mShortenedStrings.end(), AAX_CStateDisplayDelegate::StringTableSortFunc );
185 T index = value - mMinState;
186 if ( index >= (T) 0 && index < (T) mStateStrings.size() )
188 *valueString = mStateStrings[ index ];
199 if ( mShortenedStrings.size() == 0 )
200 return this->ValueToString(value, valueString);
204 T index = value - mMinState;
206 if ( index < (T) 0 || index >= (T) mStateStrings.size() )
210 if ( mStateStrings[ index ].Length() < uint32_t(maxNumChars) )
212 *valueString = mStateStrings[ index ];
216 for (
int i = (
int)mShortenedStrings.size()-1; i >= 0; i-- )
218 struct StringTable shortStrings = mShortenedStrings.at(i);
219 if ( shortStrings.mStrLength <= maxNumChars )
221 if ( index >= (T) 0 && index < (T) shortStrings.mStateStrings.size() )
223 *valueString = shortStrings.mStateStrings[ index ];
230 struct StringTable shortestStrings = mShortenedStrings.at(0);
231 if ( index >= (T) 0 && index < (T) shortestStrings.mStateStrings.size() )
233 *valueString = shortestStrings.mStateStrings[ index ];
243 std::vector<AAX_CString>::const_iterator iter = mStateStrings.begin();
244 for ( T index = 0; iter != mStateStrings.end(); ++index, ++iter )
246 if (Compare(valueString,*iter))
248 *value = index + mMinState;
260 return valueString==stateString;
A generic AAX string class with similar functionality to std::string.
Defines the display behavior for a parameter.
#define AAX_OVERRIDE
override keyword macro
Definition: AAX.h:164
A generic display format conforming to AAX_IDisplayDelegate.
Definition: AAX_CStateDisplayDelegate.h:59
void AddShortenedStrings(const char *iStateStrings[], int iLength)
Definition: AAX_CStateDisplayDelegate.h:164
bool StringToValue(const AAX_CString &valueString, T *value) const AAX_OVERRIDE
Converts a string to a real parameter value.
Definition: AAX_CStateDisplayDelegate.h:241
bool Compare(const AAX_CString &valueString, const AAX_CString &stateString) const
Definition: AAX_CStateDisplayDelegate.h:258
bool ValueToString(T value, AAX_CString *valueString) const AAX_OVERRIDE
Converts a real parameter value to a string representation.
Definition: AAX_CStateDisplayDelegate.h:183
AAX_IDisplayDelegate< T > * Clone() const AAX_OVERRIDE
Constructs and returns a copy of the display delegate.
Definition: AAX_CStateDisplayDelegate.h:177
A generic AAX string class with similar functionality to std::string
Definition: AAX_CString.h:57
Definition: AAX_IDisplayDelegate.h:79