22#ifndef AAX_CSTATEDISPLAYDELEGATE_H
23#define AAX_CSTATEDISPLAYDELEGATE_H
29#if defined(WINDOWS_VERSION) || defined(LINUX_VERSION)
90 std::vector<AAX_CString> mStateStrings;
95 std::vector<AAX_CString> mStateStrings;
97 static bool StringTableSortFunc(
struct StringTable i,
struct StringTable j)
99 return (i.mStrLength < j.mStrLength);
102 std::vector<struct StringTable> mShortenedStrings;
108 mMinState = iMinState;
109 for (
int index = 0; iStateStrings[ index ] != 0; ++index )
110 mStateStrings.push_back(
AAX_CString( iStateStrings[ index ] ) );
116 mMinState = iMinState;
117 for (
int index = 0; (index < inNumStates) && (iStateStrings[ index ] != 0); ++index )
118 mStateStrings.push_back(
AAX_CString( iStateStrings[ index ] ) );
124 mMinState = iMinState;
125 for ( std::vector<AAX_IString*>::const_iterator iter = iStateStrings.begin(); iter != iStateStrings.end(); ++iter )
129 mStateStrings.push_back( *(*iter) );
137 mMinState = iOther.mMinState;
139 std::vector<AAX_CString>::const_iterator iter = iOther.mStateStrings.begin();
140 for ( ; iter != iOther.mStateStrings.end(); ++iter )
143 if ( iOther.mShortenedStrings.size() > 0 )
145 for (
int i = 0; i < (int)iOther.mShortenedStrings.size(); i++ )
146 mShortenedStrings.push_back( iOther.mShortenedStrings.at(i) );
153 struct StringTable shortendTable;
154 shortendTable.mStrLength = iStrLength;
155 for (
int index = 0; iStateStrings[ index ] != 0; ++index )
156 shortendTable.mStateStrings.push_back(
AAX_CString( iStateStrings[ index ] ) );
157 mShortenedStrings.push_back(shortendTable);
160 std::sort(mShortenedStrings.begin(), mShortenedStrings.end(), AAX_CStateDisplayDelegate::StringTableSortFunc );
172 T index = value - mMinState;
173 if ( index >= (T) 0 && index < (T) mStateStrings.size() )
175 *valueString = mStateStrings[ index ];
186 if ( mShortenedStrings.size() == 0 )
187 return this->ValueToString(value, valueString);
191 T index = value - mMinState;
193 if ( index < (T) 0 || index >= (T) mStateStrings.size() )
197 if ( mStateStrings[ index ].Length() < uint32_t(maxNumChars) )
199 *valueString = mStateStrings[ index ];
203 for (
int i = (
int)mShortenedStrings.size()-1; i >= 0; i-- )
205 struct StringTable shortStrings = mShortenedStrings.at(i);
206 if ( shortStrings.mStrLength <= maxNumChars )
208 if ( index >= (T) 0 && index < (T) shortStrings.mStateStrings.size() )
210 *valueString = shortStrings.mStateStrings[ index ];
217 struct StringTable shortestStrings = mShortenedStrings.at(0);
218 if ( index >= (T) 0 && index < (T) shortestStrings.mStateStrings.size() )
220 *valueString = shortestStrings.mStateStrings[ index ];
230 std::vector<AAX_CString>::const_iterator iter = mStateStrings.begin();
231 for ( T index = 0; iter != mStateStrings.end(); ++index, ++iter )
233 if (Compare(valueString,*iter))
235 *value = index + mMinState;
247 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:151
A generic display format conforming to AAX_IDisplayDelegate.
Definition: AAX_CStateDisplayDelegate.h:46
void AddShortenedStrings(const char *iStateStrings[], int iLength)
Definition: AAX_CStateDisplayDelegate.h:151
bool StringToValue(const AAX_CString &valueString, T *value) const AAX_OVERRIDE
Converts a string to a real parameter value.
Definition: AAX_CStateDisplayDelegate.h:228
bool Compare(const AAX_CString &valueString, const AAX_CString &stateString) const
Definition: AAX_CStateDisplayDelegate.h:245
bool ValueToString(T value, AAX_CString *valueString) const AAX_OVERRIDE
Converts a real parameter value to a string representation.
Definition: AAX_CStateDisplayDelegate.h:170
AAX_IDisplayDelegate< T > * Clone() const AAX_OVERRIDE
Constructs and returns a copy of the display delegate.
Definition: AAX_CStateDisplayDelegate.h:164
A generic AAX string class with similar functionality to std::string
Definition: AAX_CString.h:44
Definition: AAX_IDisplayDelegate.h:66