25 #ifndef AAX_CSTATEDISPLAYDELEGATE_H
26 #define AAX_CSTATEDISPLAYDELEGATE_H
32 #if defined(WINDOWS_VERSION) || defined(LINUX_VERSION)
93 std::vector<AAX_CString> mStateStrings;
98 std::vector<AAX_CString> mStateStrings;
100 static bool StringTableSortFunc(
struct StringTable i,
struct StringTable j)
102 return (i.mStrLength < j.mStrLength);
105 std::vector<struct StringTable> mShortenedStrings;
108 template <
typename T>
111 mMinState = iMinState;
112 for (
int index = 0; iStateStrings[ index ] != 0; ++index )
113 mStateStrings.push_back(
AAX_CString( iStateStrings[ index ] ) );
116 template <
typename T>
119 mMinState = iMinState;
120 for (
int index = 0; (index < inNumStates) && (iStateStrings[ index ] != 0); ++index )
121 mStateStrings.push_back(
AAX_CString( iStateStrings[ index ] ) );
124 template <
typename T>
127 mMinState = iMinState;
128 for ( std::vector<AAX_IString*>::const_iterator iter = iStateStrings.begin(); iter != iStateStrings.end(); ++iter )
132 mStateStrings.push_back( *(*iter) );
137 template <
typename T>
140 mMinState = iOther.mMinState;
142 std::vector<AAX_CString>::const_iterator iter = iOther.mStateStrings.begin();
143 for ( ; iter != iOther.mStateStrings.end(); ++iter )
146 if ( iOther.mShortenedStrings.size() > 0 )
148 for (
int i = 0; i < (int)iOther.mShortenedStrings.size(); i++ )
149 mShortenedStrings.push_back( iOther.mShortenedStrings.at(i) );
153 template <
typename T>
156 struct StringTable shortendTable;
157 shortendTable.mStrLength = iStrLength;
158 for (
int index = 0; iStateStrings[ index ] != 0; ++index )
159 shortendTable.mStateStrings.push_back(
AAX_CString( iStateStrings[ index ] ) );
160 mShortenedStrings.push_back(shortendTable);
163 std::sort(mShortenedStrings.begin(), mShortenedStrings.end(), AAX_CStateDisplayDelegate::StringTableSortFunc );
166 template <
typename T>
172 template <
typename T>
175 T index = value - mMinState;
176 if ( index >= (T) 0 && index < (T) mStateStrings.size() )
178 *valueString = mStateStrings[ index ];
185 template <
typename T>
189 if ( mShortenedStrings.size() == 0 )
190 return this->ValueToString(value, valueString);
194 T index = value - mMinState;
196 if ( index < (T) 0 || index >= (T) mStateStrings.size() )
200 if ( mStateStrings[ index ].Length() < uint32_t(maxNumChars) )
202 *valueString = mStateStrings[ index ];
206 for (
int i = (
int)mShortenedStrings.size()-1; i >= 0; i-- )
208 struct StringTable shortStrings = mShortenedStrings.at(i);
209 if ( shortStrings.mStrLength <= maxNumChars )
211 if ( index >= (T) 0 && index < (T) shortStrings.mStateStrings.size() )
213 *valueString = shortStrings.mStateStrings[ index ];
220 struct StringTable shortestStrings = mShortenedStrings.at(0);
221 if ( index >= (T) 0 && index < (T) shortestStrings.mStateStrings.size() )
223 *valueString = shortestStrings.mStateStrings[ index ];
230 template <
typename T>
233 std::vector<AAX_CString>::const_iterator iter = mStateStrings.begin();
234 for ( T index = 0; iter != mStateStrings.end(); ++index, ++iter )
236 if (Compare(valueString,*iter))
238 *value = index + mMinState;
247 template <
typename T>
250 return valueString==stateString;
#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 generic display format conforming to AAX_IDisplayDelegate.
Definition: AAX_CStateDisplayDelegate.h:49
void AddShortenedStrings(const char *iStateStrings[], int iLength)
Definition: AAX_CStateDisplayDelegate.h:154
bool StringToValue(const AAX_CString &valueString, T *value) const AAX_OVERRIDE
Converts a string to a real parameter value.
Definition: AAX_CStateDisplayDelegate.h:231
bool Compare(const AAX_CString &valueString, const AAX_CString &stateString) const
Definition: AAX_CStateDisplayDelegate.h:248
bool ValueToString(T value, AAX_CString *valueString) const AAX_OVERRIDE
Converts a real parameter value to a string representation.
Definition: AAX_CStateDisplayDelegate.h:173
AAX_IDisplayDelegate< T > * Clone() const AAX_OVERRIDE
Constructs and returns a copy of the display delegate.
Definition: AAX_CStateDisplayDelegate.h:167
A generic AAX string class with similar functionality to std::string
Definition: AAX_CString.h:46
Classes for parameter value string conversion.
Definition: AAX_IDisplayDelegate.h:69