AAX SDK 2.6.1
Avid Audio Extensions Development Kit
Loading...
Searching...
No Matches
AAX_CParameter.h
Go to the documentation of this file.
1/*================================================================================================*/
2/*
3 *
4 * Copyright 2013-2017, 2019, 2021, 2023 Avid Technology, Inc.
5 * All rights reserved.
6 *
7 * CONFIDENTIAL: this document contains confidential information of Avid. Do
8 * not disclose to any third party. Use of the information contained in this
9 * document is subject to an Avid SDK license.
10 *
11 */
12
19/*================================================================================================*/
20
21
22#ifndef AAX_CPARAMETER_H
23#define AAX_CPARAMETER_H
24
25#include "AAX_Assert.h"
26#include "AAX_IParameter.h"
27#include "AAX_ITaperDelegate.h"
30#include "AAX_CString.h" //concrete class required for name.
31
32#include <cstring>
33#include <list>
34#include <map>
35
36
38#if 0
39#pragma mark -
40#endif
42
44
50template <typename T>
52{
53public:
54 enum Defaults {
57 };
58
59public:
61
64
66
74 explicit AAX_CParameterValue(AAX_CParamID identifier);
75
83 explicit AAX_CParameterValue(AAX_CParamID identifier, const T& value);
84
87 explicit AAX_CParameterValue(const AAX_CParameterValue<T>& other);
88
89public: // AAX_CParameterValue<T> implementation
92 const T& Get() const { return mValue; }
95 void Set(const T& inValue) { mValue = inValue; }
96
97public: // AAX_IParameterValue implementation
98
100 AAX_CParamID Identifier() const AAX_OVERRIDE { return mIdentifier; }
101
106 bool GetValueAsBool(bool* value) const AAX_OVERRIDE;
107 bool GetValueAsInt32(int32_t* value) const AAX_OVERRIDE;
108 bool GetValueAsFloat(float* value) const AAX_OVERRIDE;
109 bool GetValueAsDouble(double* value) const AAX_OVERRIDE;
110 bool GetValueAsString(AAX_IString* value) const AAX_OVERRIDE;
112
113private:
114 void InitIdentifier(const char* inIdentifier);
115
116private:
117 char mIdentifier[eParameterDefaultMaxIdentifierSize];
118 T mValue;
119};
120
121
123
124template <typename T>
126: mValue()
127{
128 InitIdentifier(identifier);
129}
130
131template <typename T>
133: mValue(value)
134{
135 InitIdentifier(identifier);
136}
137
138template <typename T>
140: mValue(other.mValue)
141{
142 InitIdentifier(other.mIdentifier);
143}
144
145template<typename T>
146bool AAX_CParameterValue<T>::GetValueAsBool(bool* /*value*/) const
147{
148 return false;
149}
150template <>
152
153
154template<typename T>
155bool AAX_CParameterValue<T>::GetValueAsInt32(int32_t* /*value*/) const
156{
157 return false;
158}
159template<>
161
162template<typename T>
163bool AAX_CParameterValue<T>::GetValueAsFloat(float* /*value*/) const
164{
165 return false;
166}
167template<>
169
170template<typename T>
171bool AAX_CParameterValue<T>::GetValueAsDouble(double* /*value*/) const
172{
173 return false;
174}
175template<>
177
178template<typename T>
180{
181 return false;
182}
183template<>
185
186template<typename T>
187void AAX_CParameterValue<T>::InitIdentifier(const char *inIdentifier)
188{
189
190 const size_t len = strlen(inIdentifier);
191 AAX_ASSERT(len < eParameterDefaultMaxIdentifierSize);
192 if (len < eParameterDefaultMaxIdentifierSize)
193 {
194 std::strncpy(mIdentifier, inIdentifier, 1+len);
195 mIdentifier[len] = 0;
196 }
197 else
198 {
199 std::strncpy(mIdentifier, inIdentifier, eParameterDefaultMaxIdentifierLength);
200 mIdentifier[eParameterDefaultMaxIdentifierLength] = 0;
201 }
202}
203
204
206#if 0
207#pragma mark -
208#endif
210
212
233template <typename T>
235{
236public:
237
238 enum Type {
244 };
245
246 enum Defaults {
249 };
250
281 AAX_CParameter(AAX_CParamID identifier, const AAX_IString& name, T defaultValue, const AAX_ITaperDelegate<T>& taperDelegate, const AAX_IDisplayDelegate<T>& displayDelegate, bool automatable=false);
282
289 AAX_CParameter(const AAX_IString& identifier, const AAX_IString& name, T defaultValue, const AAX_ITaperDelegate<T>& taperDelegate, const AAX_IDisplayDelegate<T>& displayDelegate, bool automatable=false);
290
300 AAX_CParameter(const AAX_IString& identifier, const AAX_IString& name, T defaultValue, bool automatable=false);
301
312 AAX_CParameter(const AAX_IString& identifier, const AAX_IString& name, bool automatable=false);
313
317
321 AAX_DELETE(AAX_CParameter& operator= (const AAX_CParameter& other));
322
328
330
336 void SetName(const AAX_CString& name) AAX_OVERRIDE;
337 const AAX_CString& Name() const AAX_OVERRIDE;
338 void AddShortenedName(const AAX_CString& name) AAX_OVERRIDE;
339 const AAX_CString& ShortenedName(int32_t iNumCharacters) const AAX_OVERRIDE;
342
347 void SetNormalizedDefaultValue(double normalizedDefault) AAX_OVERRIDE;
350 void SetNormalizedValue(double newNormalizedValue) AAX_OVERRIDE;
351 double GetNormalizedValue() const AAX_OVERRIDE;
352 void SetNumberOfSteps(uint32_t numSteps) AAX_OVERRIDE;
353 uint32_t GetNumberOfSteps() const AAX_OVERRIDE;
354 uint32_t GetStepValue() const AAX_OVERRIDE;
355 double GetNormalizedValueFromStep(uint32_t iStep) const AAX_OVERRIDE;
356 uint32_t GetStepValueFromNormalizedValue(double normalizedValue) const AAX_OVERRIDE;
357 void SetStepValue(uint32_t iStep) AAX_OVERRIDE;
358 void SetType(AAX_EParameterType iControlType) AAX_OVERRIDE;
362 void SetTaperDelegate(AAX_ITaperDelegateBase& inTaperDelegate,bool inPreserveValue=true) AAX_OVERRIDE;
364
370 bool GetValueString( AAX_CString* valueString) const AAX_OVERRIDE;
371 bool GetValueString(int32_t iMaxNumChars, AAX_CString* valueString) const AAX_OVERRIDE;
372 bool GetNormalizedValueFromBool(bool value, double *normalizedValue) const AAX_OVERRIDE;
373 bool GetNormalizedValueFromInt32(int32_t value, double *normalizedValue) const AAX_OVERRIDE;
374 bool GetNormalizedValueFromFloat(float value, double *normalizedValue) const AAX_OVERRIDE;
375 bool GetNormalizedValueFromDouble(double value, double *normalizedValue) const AAX_OVERRIDE;
376 bool GetNormalizedValueFromString(const AAX_CString& valueString, double *normalizedValue) const AAX_OVERRIDE;
377 bool GetBoolFromNormalizedValue(double normalizedValue, bool* value) const AAX_OVERRIDE;
378 bool GetInt32FromNormalizedValue(double normalizedValue, int32_t* value) const AAX_OVERRIDE;
379 bool GetFloatFromNormalizedValue(double normalizedValue, float* value) const AAX_OVERRIDE;
380 bool GetDoubleFromNormalizedValue(double normalizedValue, double* value) const AAX_OVERRIDE;
381 bool GetStringFromNormalizedValue(double normalizedValue, AAX_CString& valueString) const AAX_OVERRIDE;
382 bool GetStringFromNormalizedValue(double normalizedValue, int32_t iMaxNumChars, AAX_CString& valueString) const AAX_OVERRIDE;
383 bool SetValueFromString(const AAX_CString& newValueString) AAX_OVERRIDE;
385
390 void SetAutomationDelegate ( AAX_IAutomationDelegate * iAutomationDelegate ) AAX_OVERRIDE;
391 bool Automatable() const AAX_OVERRIDE;
392 void Touch() AAX_OVERRIDE;
393 void Release() AAX_OVERRIDE;
395
400 bool GetValueAsBool(bool* value) const AAX_OVERRIDE;
401 bool GetValueAsInt32(int32_t* value) const AAX_OVERRIDE;
402 bool GetValueAsFloat(float* value) const AAX_OVERRIDE;
403 bool GetValueAsDouble(double* value) const AAX_OVERRIDE;
404 bool GetValueAsString(AAX_IString* value) const AAX_OVERRIDE;
405 bool SetValueWithBool(bool value) AAX_OVERRIDE;
406 bool SetValueWithInt32(int32_t value) AAX_OVERRIDE;
407 bool SetValueWithFloat(float value) AAX_OVERRIDE;
408 bool SetValueWithDouble(double value) AAX_OVERRIDE;
409 bool SetValueWithString(const AAX_IString& value) AAX_OVERRIDE;
411
416 void UpdateNormalizedValue(double newNormalizedValue) AAX_OVERRIDE;
418
436 void SetValue(T newValue );
443 T GetValue() const;
452 void SetDefaultValue(T newDefaultValue);
459 T GetDefaultValue() const;
464 const AAX_ITaperDelegate<T>* TaperDelegate() const;
469 const AAX_IDisplayDelegate<T>* DisplayDelegate() const;
471
472protected:
475 uint32_t mNumSteps;
482
485
486private:
487 void InitializeNumberOfSteps();
488};
489
490
492
493template <typename T>
494AAX_CParameter<T>::AAX_CParameter(AAX_CParamID identifier, const AAX_IString& name, T defaultValue, const AAX_ITaperDelegate<T>& taperDelegate, const AAX_IDisplayDelegate<T>& displayDelegate, bool automatable)
495: mNames(name)
496, mAutomatable(automatable)
497, mNumSteps(0) // Default set below for discrete/continuous
500, mTaperDelegate(taperDelegate.Clone())
501, mDisplayDelegate(displayDelegate.Clone())
503, mNeedNotify(true)
504, mValue(identifier)
505, mDefaultValue(defaultValue)
506{
507 this->InitializeNumberOfSteps();
508 this->SetToDefaultValue();
509}
510
511template <typename T>
512AAX_CParameter<T>::AAX_CParameter(const AAX_IString& identifier, const AAX_IString& name, T defaultValue, const AAX_ITaperDelegate<T>& taperDelegate, const AAX_IDisplayDelegate<T>& displayDelegate, bool automatable)
513: mNames(name)
514, mAutomatable(automatable)
515, mNumSteps(0) // Default set below for discrete/continuous
518, mTaperDelegate(taperDelegate.Clone())
519, mDisplayDelegate(displayDelegate.Clone())
521, mNeedNotify(true)
522, mValue(identifier.Get())
523, mDefaultValue(defaultValue)
524{
525 this->InitializeNumberOfSteps();
526 this->SetToDefaultValue();
527}
528
529template <typename T>
530AAX_CParameter<T>::AAX_CParameter(const AAX_IString& identifier, const AAX_IString& name, T defaultValue, bool automatable)
531: mNames(name)
532, mAutomatable(automatable)
533, mNumSteps(0)
534, mControlType( AAX_eParameterType_Continuous )
535, mOrientation( AAX_eParameterOrientation_Default )
536, mTaperDelegate(NULL)
537, mDisplayDelegate(NULL)
538, mAutomationDelegate(NULL)
539, mNeedNotify(true)
540, mValue(identifier)
541, mDefaultValue(defaultValue)
542{
543 this->InitializeNumberOfSteps();
544 this->SetToDefaultValue();
545}
546
547template <typename T>
548AAX_CParameter<T>::AAX_CParameter(const AAX_IString& identifier, const AAX_IString& name, bool automatable)
549: mNames(name)
550, mAutomatable(automatable)
551, mNumSteps(0)
552, mControlType( AAX_eParameterType_Continuous )
553, mOrientation( AAX_eParameterOrientation_Default )
554, mTaperDelegate(NULL)
555, mDisplayDelegate(NULL)
556, mAutomationDelegate(NULL)
557, mNeedNotify(true)
558, mValue(identifier)
559, mDefaultValue()
560{
561 this->InitializeNumberOfSteps();
562 this->SetToDefaultValue(); // WARNING: uninitialized default value
563}
564
565template <typename T>
567{
568 //Make sure to remove any registration with the token system.
569 SetAutomationDelegate(0);
570
571 delete mTaperDelegate;
572 mTaperDelegate = 0;
573 delete mDisplayDelegate;
574 mDisplayDelegate = 0;
575}
576
577template <typename T>
579{
580 return new AAX_CParameterValue<T>(mValue);
581}
582
583template <typename T>
585{
586 return mValue.Identifier();
587}
588
589template <typename T>
591{
592 mNames.SetPrimary(name);
593 if (mAutomationDelegate) {
594 mAutomationDelegate->ParameterNameChanged(this->Identifier());
595 }
596}
597
598template <typename T>
600{
601 return mNames.Primary();
602}
603
604template <typename T>
606{
607 mNames.Add(name);
608}
609
610template <typename T>
611const AAX_CString& AAX_CParameter<T>::ShortenedName(int32_t iNumCharacters) const
612{
613 return mNames.Get(iNumCharacters);
614}
615
616template <typename T>
618{
619 mNames.Clear();
620}
621
622
623
624template<typename T>
626{
627 double newNormalizedValue = mTaperDelegate->RealToNormalized(newValue);
628
629 // <DMT> Always go through the automation delegate even if the control isn't automatable to prevent fighting with other GUIs.
630 // Somewhere back in the automation delegate, or elsewhere in the system, it will determine the differences in behavior surrounding
631 // automation. The only reason that there wouldn't be an automation delegate is if this parameter has yet to be added to a
632 // ParameterManager. Let's put the null value guards in place, just in case, and also for unit tests.
633 if ( mAutomationDelegate )
634 {
635 //TODO: Create RAII utility class for touch/release
636
637 //Touch the control
638 Touch();
639
640 //Send that token.
641 mAutomationDelegate->PostSetValueRequest(Identifier(), newNormalizedValue );
642
643 //Release the control
644 Release();
645 }
646 else
647 {
648 mNeedNotify = true;
649
650 // In the rare case that an automation delegate doesn't exist, lets still set the value. It's possible that someone is trying to
651 // set the new value before adding the parameter to a parametermanager.
652 UpdateNormalizedValue(newNormalizedValue);
653 }
654}
655
656template <typename T>
657void AAX_CParameter<T>::UpdateNormalizedValue(double newNormalizedValue)
658{
659 T newValue = mTaperDelegate->NormalizedToReal(newNormalizedValue);
660 if (mNeedNotify || (mValue.Get() != newValue))
661 {
662 //Set the new value
663 mValue.Set(newValue);
664
665 //<DMT> Always notify that the value has changed through the automation delegate to guarantee that all control surfaces and other
666 // GUIs get their values updated.
667 if (mAutomationDelegate)
668 mAutomationDelegate->PostCurrentValue(Identifier(), newNormalizedValue);
669
670 // clear flag
671 mNeedNotify = false;
672 }
673}
674
675template <typename T>
677{
678 if (mNumSteps == 0) // If no explicit number of steps has been set...
679 {
680 switch (mControlType)
681 {
683 {
684 // Discrete parameters default to binary unless
685 // otherwise specified
686 this->SetNumberOfSteps (eParameterDefaultNumStepsDiscrete);
687 break;
688 }
690 {
691 // Defaulting to 128 steps to match one full rotation of
692 // Command|8 and similar surfaces, which query the num
693 // steps to determine tick values for rotary encoders
694 this->SetNumberOfSteps (eParameterDefaultNumStepsContinuous);
695 break;
696 }
697 default:
698 {
699 AAX_ASSERT (0); // Invalid type
700 break;
701 }
702 }
703 }
704}
705
706template<typename T>
708{
709 return mValue.Get();
710}
711
712
713template<typename T>
715{
716 return mValue.GetValueAsBool(value);
717}
718
719template<typename T>
720bool AAX_CParameter<T>::GetValueAsInt32(int32_t* value) const
721{
722 return mValue.GetValueAsInt32(value);
723}
724
725template<typename T>
727{
728 return mValue.GetValueAsFloat(value);
729}
730
731template<typename T>
732bool AAX_CParameter<T>::GetValueAsDouble(double* value) const
733{
734 return mValue.GetValueAsDouble(value);
735}
736
737template<typename T>
739{
740 bool result = false;
741 if (value)
742 {
743 AAX_CString valueString;
744 result = this->GetValueString(&valueString);
745 if (true == result)
746 {
747 *value = valueString;
748 }
749 }
750 return result;
751}
752
753template<>
755
756
757template<typename T>
759{
760 return false;
761}
762template<>
764
765template<typename T>
767{
768 return false;
769}
770template<>
772
773template<typename T>
775{
776 return false;
777}
778template<>
780
781template<typename T>
783{
784 return false;
785}
786template<>
788
789template<typename T>
791{
792 const AAX_CString valueString(value);
793 return this->SetValueFromString(valueString);
794}
795template<>
797
798template<typename T>
799void AAX_CParameter<T>::SetNormalizedDefaultValue(double newNormalizedDefault)
800{
801 T newDefaultValue = mTaperDelegate->NormalizedToReal(newNormalizedDefault);
802 SetDefaultValue(newDefaultValue);
803}
804
805template<typename T>
807{
808 double normalizedDefault = mTaperDelegate->RealToNormalized(mDefaultValue);
809 return normalizedDefault;
810}
811
812template<typename T>
814{
815 newDefaultValue = mTaperDelegate->ConstrainRealValue(newDefaultValue);
816 mDefaultValue = newDefaultValue;
817}
818
819template<typename T>
821{
822 return mDefaultValue;
823}
824
825template<typename T>
827{
828 SetValue(mDefaultValue);
829}
830
831template<typename T>
833{
834 AAX_ASSERT(0 < numSteps);
835 if (0 < numSteps)
836 {
837 mNumSteps = numSteps;
838 }
839}
840
841template<typename T>
843{
844 return mNumSteps;
845}
846
847template<typename T>
849{
850 return GetStepValueFromNormalizedValue(this->GetNormalizedValue());
851}
852
853template<typename T>
855{
856 double numSteps = (double) this->GetNumberOfSteps ();
857 if ( numSteps < 2.0 )
858 return 0.0;
859
860 double valuePerStep = 1.0 / ( numSteps - 1.0 );
861 double value = valuePerStep * (double) iStep;
862 if ( value < 0.0 )
863 value = 0.0;
864 else if ( value > 1.0 )
865 value = 1.0;
866
867 return value;
868}
869
870template<typename T>
871uint32_t AAX_CParameter<T>::GetStepValueFromNormalizedValue(double normalizedValue) const
872{
873 double numSteps = (double) this->GetNumberOfSteps ();
874 if ( numSteps < 2.0 )
875 return 0;
876
877 double valuePerStep = 1.0 / ( numSteps - 1.0 );
878 double curStep = ( normalizedValue / valuePerStep ) + 0.5;
879 if ( curStep < 0.0 )
880 curStep = 0.0;
881 else if ( curStep > (double) ( numSteps - 1.0 ) )
882 curStep = (double) ( numSteps - 1.0 );
883
884 return (uint32_t) curStep;
885}
886
887template<typename T>
889{
890 double numSteps = (double) this->GetNumberOfSteps ();
891 if ( numSteps < 2.0 )
892 return;
893
894 this->SetNormalizedValue ( GetNormalizedValueFromStep(iStep) );
895}
896
897template<typename T>
899{
900 mControlType = iControlType;
901}
902
903template<typename T>
905{
906 return mControlType;
907}
908
909template<typename T>
911{
912 mOrientation = iOrientation;
913}
914
915template<typename T>
917{
918 return mOrientation;
919}
920
921template<typename T>
922void AAX_CParameter<T>::SetNormalizedValue(double normalizedNewValue)
923{
924 T newValue = mTaperDelegate->NormalizedToReal(normalizedNewValue);
925 this->SetValue(newValue);
926}
927
928template<typename T>
930{
931 T val = GetValue();
932 return mTaperDelegate->RealToNormalized(val);
933}
934
935
936template<typename T>
938{
939 return mDisplayDelegate->ValueToString(this->GetValue(), valueString);
940}
941
942template<typename T>
943bool AAX_CParameter<T>::GetValueString(int32_t /*iMaxNumChars*/, AAX_CString* valueString) const
944{
945 return mDisplayDelegate->ValueToString(this->GetValue(), valueString);
946}
947
948template <typename T>
949bool AAX_CParameter<T>::GetNormalizedValueFromBool(bool /*value*/, double * /*normalizedValue*/) const
950{
951 return false;
952}
953template <>
954bool AAX_CParameter<bool>::GetNormalizedValueFromBool(bool value, double *normalizedValue) const;
955
956template <typename T>
957bool AAX_CParameter<T>::GetNormalizedValueFromInt32(int32_t /*value*/, double * /*normalizedValue*/) const
958{
959 return false;
960}
961template <>
962bool AAX_CParameter<int32_t>::GetNormalizedValueFromInt32(int32_t value, double *normalizedValue) const;
963
964template <typename T>
965bool AAX_CParameter<T>::GetNormalizedValueFromFloat(float /*value*/, double * /*normalizedValue*/) const
966{
967 return false;
968}
969template <>
970bool AAX_CParameter<float>::GetNormalizedValueFromFloat(float value, double *normalizedValue) const;
971
972template <typename T>
973bool AAX_CParameter<T>::GetNormalizedValueFromDouble(double /*value*/, double * /*normalizedValue*/) const
974{
975 return false;
976}
977template <>
978bool AAX_CParameter<double>::GetNormalizedValueFromDouble(double value, double *normalizedValue) const;
979
980template <typename T>
981bool AAX_CParameter<T>::GetNormalizedValueFromString(const AAX_CString& valueString, double *normalizedValue) const
982{
983 //First, convert the string to a value using the wrapped parameter's display delegate.
984 T value;
985 if (!mDisplayDelegate->StringToValue(valueString, &value))
986 return false;
987
988 //Then use the wrapped parameter's taper delegate to convert to a normalized representation.
989 //If the parameter is out of range, the normalizedValue will be clamped just to be safe.
990 *normalizedValue = mTaperDelegate->RealToNormalized(value);
991 return true;
992}
993
994template<typename T>
995bool AAX_CParameter<T>::GetBoolFromNormalizedValue(double /*inNormalizedValue*/, bool* /*value*/) const
996{
997 return false;
998}
999template <>
1000bool AAX_CParameter<bool>::GetBoolFromNormalizedValue(double inNormalizedValue, bool* value) const;
1001
1002
1003template<typename T>
1004bool AAX_CParameter<T>::GetInt32FromNormalizedValue(double /*inNormalizedValue*/, int32_t* /*value*/) const
1005{
1006 return false;
1007}
1008template<>
1009bool AAX_CParameter<int32_t>::GetInt32FromNormalizedValue(double inNormalizedValue, int32_t* value) const;
1010
1011template<typename T>
1012bool AAX_CParameter<T>::GetFloatFromNormalizedValue(double /*inNormalizedValue*/, float* /*value*/) const
1013{
1014 return false;
1015}
1016template<>
1017bool AAX_CParameter<float>::GetFloatFromNormalizedValue(double inNormalizedValue, float* value) const;
1018
1019template<typename T>
1020bool AAX_CParameter<T>::GetDoubleFromNormalizedValue(double /*inNormalizedValue*/, double* /*value*/) const
1021{
1022 return false;
1023}
1024template<>
1025bool AAX_CParameter<double>::GetDoubleFromNormalizedValue(double inNormalizedValue, double* value) const;
1026
1027template <typename T>
1028bool AAX_CParameter<T>::GetStringFromNormalizedValue(double normalizedValue, AAX_CString& valueString) const
1029{
1030 T value = mTaperDelegate->NormalizedToReal(normalizedValue);
1031 if (!mDisplayDelegate->ValueToString(value, &valueString))
1032 return false;
1033
1034 //If the parameter is out of range, we should probably return false, even though we clamped the normalizedValue already just to be safe.
1035 if ((value > mTaperDelegate->GetMaximumValue()) || (value < mTaperDelegate->GetMinimumValue()))
1036 return false;
1037 return true;
1038}
1039
1040template <typename T>
1041bool AAX_CParameter<T>::GetStringFromNormalizedValue(double normalizedValue, int32_t iMaxNumChars, AAX_CString& valueString) const
1042{
1043 T value = mTaperDelegate->NormalizedToReal(normalizedValue);
1044 if (!mDisplayDelegate->ValueToString(value, iMaxNumChars, &valueString))
1045 return false;
1046
1047 //If the parameter is out of range, we should probably return false, even though we clamped the normalizedValue already just to be safe.
1048 if ((value > mTaperDelegate->GetMaximumValue()) || (value < mTaperDelegate->GetMinimumValue()))
1049 return false;
1050 return true;
1051}
1052
1053template<typename T>
1055{
1056 T newValue;
1057 if (!mDisplayDelegate->StringToValue(newValueString, &newValue))
1058 return false;
1059 SetValue(newValue);
1060 return true;
1061}
1062
1063template<typename T>
1064void AAX_CParameter<T>::SetTaperDelegate(AAX_ITaperDelegateBase& inTaperDelegate,bool inPreserveValue)
1065{
1066 double normalizeValue = this->GetNormalizedValue ();
1067
1068 AAX_ITaperDelegate<T>* oldDelegate = mTaperDelegate;
1069 mTaperDelegate = ((AAX_ITaperDelegate<T> &) inTaperDelegate).Clone();
1070 delete oldDelegate;
1071
1072 mNeedNotify = true;
1073 if ( inPreserveValue )
1074 this->SetValue ( mValue.Get() );
1075 else this->UpdateNormalizedValue ( normalizeValue );
1076}
1077
1078template<typename T>
1080{
1081 AAX_IDisplayDelegate<T>* oldDelegate = mDisplayDelegate;
1082 mDisplayDelegate = ((AAX_IDisplayDelegate<T> &)inDisplayDelegate).Clone();
1083 delete oldDelegate;
1084
1085 if (mAutomationDelegate != 0)
1086 mAutomationDelegate->PostCurrentValue(this->Identifier(), this->GetNormalizedValue()); //<DMT> Make sure GUIs are all notified of the change.
1087}
1088
1089template<typename T>
1091{
1092 return mTaperDelegate;
1093}
1094
1095template<typename T>
1097{
1098 return mDisplayDelegate;
1099}
1100
1101template<typename T>
1103{
1104 return mAutomatable;
1105}
1106
1107template<typename T>
1109{
1110 //Remove the old automation delegate
1111 if ( mAutomationDelegate )
1112 {
1113 mAutomationDelegate->UnregisterParameter ( this->Identifier() );
1114 }
1115
1116 //Add the new automation delegate, wrapped by the versioning layer.
1117 mAutomationDelegate = iAutomationDelegate;
1118 if ( mAutomationDelegate )
1119 mAutomationDelegate->RegisterParameter ( this->Identifier() );
1120}
1121
1122template<typename T>
1124{
1125 //<DT> Always send the touch command, even if the control isn't automatable.
1126 if (mAutomationDelegate)
1127 mAutomationDelegate->PostTouchRequest( this->Identifier() );
1128}
1129
1130template<typename T>
1132{
1133 //<DT> Always send the release command, even if the control isn't automatable.
1134 if (mAutomationDelegate)
1135 mAutomationDelegate->PostReleaseRequest( this->Identifier() );
1136}
1137
1138
1140#if 0
1141#pragma mark -
1142#pragma mark AAX_CStatelessParameter
1143#endif
1145
1153{
1154public:
1155 AAX_CStatelessParameter(AAX_CParamID identifier, const AAX_IString& name, const AAX_IString& inValueString)
1156 : mNames(name)
1157 , mID(identifier)
1158 , mAutomationDelegate(NULL)
1159 , mValueString(inValueString)
1160 {
1161 }
1162
1163 AAX_CStatelessParameter(const AAX_IString& identifier, const AAX_IString& name, const AAX_IString& inValueString)
1164 : mNames(name)
1165 , mID(identifier)
1166 , mAutomationDelegate(NULL)
1167 , mValueString(inValueString)
1168 {
1169 }
1170
1172
1174
1181 {
1182 mNames.SetPrimary(name);
1183 if (mAutomationDelegate) {
1185 }
1186 }
1187 const AAX_CString& Name() const AAX_OVERRIDE { return mNames.Primary(); }
1189 const AAX_CString& ShortenedName(int32_t iNumCharacters) const AAX_OVERRIDE { return mNames.Get(iNumCharacters); }
1192
1197 bool Automatable() const AAX_OVERRIDE { return false; }
1199 {
1200 //Remove the old automation delegate
1201 if ( mAutomationDelegate )
1202 {
1204 }
1205
1206 //Add the new automation delegate, wrapped by the versioning layer.
1207 mAutomationDelegate = iAutomationDelegate;
1208 if ( mAutomationDelegate )
1210 }
1214
1219 void SetNormalizedValue(double /*newNormalizedValue*/) AAX_OVERRIDE {}
1220 double GetNormalizedValue() const AAX_OVERRIDE { return 0.; }
1221 void SetNormalizedDefaultValue(double /*normalizedDefault*/) AAX_OVERRIDE {}
1222 double GetNormalizedDefaultValue() const AAX_OVERRIDE { return 0.; }
1224 void SetNumberOfSteps(uint32_t /*numSteps*/) AAX_OVERRIDE {}
1225 uint32_t GetNumberOfSteps() const AAX_OVERRIDE { return 1; }
1226 uint32_t GetStepValue() const AAX_OVERRIDE { return 0; }
1227 double GetNormalizedValueFromStep(uint32_t /*iStep*/) const AAX_OVERRIDE { return 0.; }
1228 uint32_t GetStepValueFromNormalizedValue(double /*normalizedValue*/) const AAX_OVERRIDE { return 0; }
1229 void SetStepValue(uint32_t /*iStep*/) AAX_OVERRIDE {}
1231
1238 bool GetValueString(AAX_CString* valueString) const AAX_OVERRIDE { if (valueString) *valueString = mValueString; return true; }
1239 bool GetValueString(int32_t /*iMaxNumChars*/, AAX_CString* valueString) const AAX_OVERRIDE { return this->GetValueString(valueString); }
1240 bool GetNormalizedValueFromBool(bool /*value*/, double* normalizedValue) const AAX_OVERRIDE { if (normalizedValue) { *normalizedValue = 0.; } return true; }
1241 bool GetNormalizedValueFromInt32(int32_t /*value*/, double* normalizedValue) const AAX_OVERRIDE { if (normalizedValue) { *normalizedValue = 0.; } return true; }
1242 bool GetNormalizedValueFromFloat(float /*value*/, double* normalizedValue) const AAX_OVERRIDE { if (normalizedValue) { *normalizedValue = 0.; } return true; }
1243 bool GetNormalizedValueFromDouble(double /*value*/, double* normalizedValue) const AAX_OVERRIDE { if (normalizedValue) { *normalizedValue = 0.; } return true; }
1244 bool GetNormalizedValueFromString(const AAX_CString& /*valueString*/, double* normalizedValue) const AAX_OVERRIDE { if (normalizedValue) { *normalizedValue = 0.; } return true; }
1245 bool GetBoolFromNormalizedValue(double /*normalizedValue*/, bool* value) const AAX_OVERRIDE { if (value) { *value = false; } return true; }
1246 bool GetInt32FromNormalizedValue(double /*normalizedValue*/, int32_t* /*value*/) const AAX_OVERRIDE { return false; }
1247 bool GetFloatFromNormalizedValue(double /*normalizedValue*/, float* /*value*/) const AAX_OVERRIDE { return false; }
1248 bool GetDoubleFromNormalizedValue(double /*normalizedValue*/, double* /*value*/) const AAX_OVERRIDE { return false; }
1249 bool GetStringFromNormalizedValue(double /*normalizedValue*/, AAX_CString& valueString) const AAX_OVERRIDE { valueString = mValueString; return true; }
1250 bool GetStringFromNormalizedValue(double normalizedValue, int32_t /*iMaxNumChars*/, AAX_CString& valueString) const AAX_OVERRIDE { return this->GetStringFromNormalizedValue(normalizedValue, valueString); }
1251 bool SetValueFromString(const AAX_CString& newValueString) AAX_OVERRIDE { mValueString = newValueString; return true; }
1253
1258 bool GetValueAsBool(bool* value) const AAX_OVERRIDE { if (value) { *value = false; } return true; }
1259 bool GetValueAsInt32(int32_t* /*value*/) const AAX_OVERRIDE { return false; }
1260 bool GetValueAsFloat(float* /*value*/) const AAX_OVERRIDE { return false; }
1261 bool GetValueAsDouble(double* /*value*/) const AAX_OVERRIDE { return false; }
1262 bool GetValueAsString(AAX_IString* /*value*/) const AAX_OVERRIDE { return false; }
1263 bool SetValueWithBool(bool /*value*/) AAX_OVERRIDE { return true; }
1264 bool SetValueWithInt32(int32_t /*value*/) AAX_OVERRIDE { return false; }
1265 bool SetValueWithFloat(float /*value*/) AAX_OVERRIDE { return false; }
1266 bool SetValueWithDouble(double /*value*/) AAX_OVERRIDE { return false; }
1267 bool SetValueWithString(const AAX_IString& value) AAX_OVERRIDE { mValueString = value; return true; }
1269
1270 void SetType( AAX_EParameterType /*iControlType*/ ) AAX_OVERRIDE {};
1272
1275
1276 void SetTaperDelegate ( AAX_ITaperDelegateBase & /*inTaperDelegate*/, bool /*inPreserveValue*/ ) AAX_OVERRIDE {};
1277 void SetDisplayDelegate ( AAX_IDisplayDelegateBase & /*inDisplayDelegate*/ ) AAX_OVERRIDE {};
1278
1283 void UpdateNormalizedValue(double /*newNormalizedValue*/) AAX_OVERRIDE {};
1285
1286protected:
1291};
1292
1293
1294
1295
1296#endif //AAX_CParameter_H
A generic AAX string class with similar functionality to std::string.
AAX_EParameterType
FIC stuff that I can't include without DAE library dependence.
Definition: AAX_Enums.h:852
@ AAX_eParameterType_Discrete
Definition: AAX_Enums.h:853
@ AAX_eParameterType_Continuous
Definition: AAX_Enums.h:854
int32_t AAX_EParameterOrientation
Typedef for a bitfield of AAX_EParameterOrientationBits values.
Definition: AAX_Enums.h:885
@ AAX_eParameterOrientation_Default
Definition: AAX_Enums.h:864
Defines the display behavior for a parameter.
Defines the taper conversion behavior for a parameter.
Interface allowing an AAX plug-in to interact with the host's automation system.
const char * AAX_CParamID
Parameter identifier.
Definition: AAX.h:349
AAX_CONSTEXPR size_t kAAX_ParameterIdentifierMaxSize
Definition: AAX.h:364
#define AAX_OVERRIDE
override keyword macro
Definition: AAX.h:151
Declarations for cross-platform AAX_ASSERT, AAX_TRACE and related facilities.
#define AAX_ASSERT(condition)
Asserts that a condition is true and logs an error if the condition is false.
Definition: AAX_Assert.h:268
The base interface for all normalizable plug-in parameters.
Concrete implementation of AAX_IParameterValue.
Definition: AAX_CParameter.h:52
AAX_DEFAULT_MOVE_OPER(AAX_CParameterValue)
bool GetValueAsInt32(int32_t *value) const AAX_OVERRIDE
Retrieves the parameter's value as an int32_t.
Definition: AAX_CParameter.h:155
bool GetValueAsDouble(double *value) const AAX_OVERRIDE
Retrieves the parameter's value as a double.
Definition: AAX_CParameter.h:171
bool GetValueAsString(AAX_IString *value) const AAX_OVERRIDE
Retrieves the parameter's value as a string.
Definition: AAX_CParameter.h:179
Defaults
Definition: AAX_CParameter.h:54
@ eParameterDefaultMaxIdentifierLength
Definition: AAX_CParameter.h:56
@ eParameterDefaultMaxIdentifierSize
Definition: AAX_CParameter.h:55
void Set(const T &inValue)
Direct access to the template instance's value.
Definition: AAX_CParameter.h:95
bool GetValueAsBool(bool *value) const AAX_OVERRIDE
Retrieves the parameter's value as a bool.
Definition: AAX_CParameter.h:146
AAX_IParameterValue * Clone() const AAX_OVERRIDE
Clones the parameter object.
Definition: AAX_CParameter.h:99
AAX_DEFAULT_DTOR_OVERRIDE(AAX_CParameterValue)
bool GetValueAsFloat(float *value) const AAX_OVERRIDE
Retrieves the parameter's value as a float.
Definition: AAX_CParameter.h:163
AAX_CParameterValue(AAX_CParamID identifier)
Constructs an AAX_CParameterValue object.
Definition: AAX_CParameter.h:125
AAX_DELETE(AAX_CParameterValue &operator=(const AAX_CParameterValue &))
AAX_CParamID Identifier() const AAX_OVERRIDE
Returns the parameter's unique identifier.
Definition: AAX_CParameter.h:100
AAX_DEFAULT_MOVE_CTOR(AAX_CParameterValue)
const T & Get() const
Direct access to the template instance's value.
Definition: AAX_CParameter.h:92
Generic implementation of an AAX_IParameter.
Definition: AAX_CParameter.h:235
bool SetValueWithString(const AAX_IString &value) AAX_OVERRIDE
Sets the parameter's value as a string.
Definition: AAX_CParameter.h:790
AAX_CParameterValue< T > mValue
Definition: AAX_CParameter.h:483
Type
Definition: AAX_CParameter.h:238
@ eParameterTypeUndefined
Definition: AAX_CParameter.h:239
@ eParameterTypeInt32
Definition: AAX_CParameter.h:241
@ eParameterTypeCustom
Definition: AAX_CParameter.h:243
@ eParameterTypeFloat
Definition: AAX_CParameter.h:242
@ eParameterTypeBool
Definition: AAX_CParameter.h:240
bool GetBoolFromNormalizedValue(double normalizedValue, bool *value) const AAX_OVERRIDE
Converts a normalized parameter value to a bool representing the corresponding real value.
Definition: AAX_CParameter.h:995
AAX_EParameterType GetType() const AAX_OVERRIDE
Returns the type of this parameter as an AAX_EParameterType.
Definition: AAX_CParameter.h:904
const AAX_CString & Name() const AAX_OVERRIDE
Returns the parameter's display name.
Definition: AAX_CParameter.h:599
AAX_EParameterOrientation mOrientation
Definition: AAX_CParameter.h:477
AAX_EParameterType mControlType
Definition: AAX_CParameter.h:476
AAX_CStringAbbreviations mNames
Definition: AAX_CParameter.h:473
AAX_DELETE(AAX_CParameter())
T mDefaultValue
Definition: AAX_CParameter.h:484
bool SetValueWithBool(bool value) AAX_OVERRIDE
Sets the parameter's value as a bool.
Definition: AAX_CParameter.h:758
AAX_IAutomationDelegate * mAutomationDelegate
Definition: AAX_CParameter.h:480
AAX_CParameter(AAX_CParamID identifier, const AAX_IString &name, T defaultValue, const AAX_ITaperDelegate< T > &taperDelegate, const AAX_IDisplayDelegate< T > &displayDelegate, bool automatable=false)
Constructs an AAX_CParameter object using the specified taper and display delegates.
Definition: AAX_CParameter.h:494
const AAX_CString & ShortenedName(int32_t iNumCharacters) const AAX_OVERRIDE
Returns the parameter's shortened display name.
Definition: AAX_CParameter.h:611
bool mNeedNotify
Definition: AAX_CParameter.h:481
double GetNormalizedValue() const AAX_OVERRIDE
Returns the normalized representation of the parameter's current real value.
Definition: AAX_CParameter.h:929
T GetDefaultValue() const
Returns the parameter's default value.
Definition: AAX_CParameter.h:820
bool GetNormalizedValueFromFloat(float value, double *normalizedValue) const AAX_OVERRIDE
Converts a float to a normalized parameter value.
Definition: AAX_CParameter.h:965
uint32_t mNumSteps
Definition: AAX_CParameter.h:475
bool GetValueAsFloat(float *value) const AAX_OVERRIDE
Retrieves the parameter's value as a float.
Definition: AAX_CParameter.h:726
void SetValue(T newValue)
Initiates a host request to set the parameter's value.
Definition: AAX_CParameter.h:625
~AAX_CParameter() AAX_OVERRIDE
Virtual destructor used to delete all locally allocated pointers.
Definition: AAX_CParameter.h:566
void Release() AAX_OVERRIDE
Signals the automation system that a control has been released.
Definition: AAX_CParameter.h:1131
AAX_DEFAULT_MOVE_CTOR(AAX_CParameter)
bool GetNormalizedValueFromBool(bool value, double *normalizedValue) const AAX_OVERRIDE
Converts a bool to a normalized parameter value.
Definition: AAX_CParameter.h:949
const AAX_IDisplayDelegate< T > * DisplayDelegate() const
Returns a reference to the parameter's display delegate.
Definition: AAX_CParameter.h:1096
Defaults
Definition: AAX_CParameter.h:246
@ eParameterDefaultNumStepsDiscrete
Definition: AAX_CParameter.h:247
@ eParameterDefaultNumStepsContinuous
Definition: AAX_CParameter.h:248
bool GetNormalizedValueFromInt32(int32_t value, double *normalizedValue) const AAX_OVERRIDE
Converts an integer to a normalized parameter value.
Definition: AAX_CParameter.h:957
bool GetValueAsBool(bool *value) const AAX_OVERRIDE
Retrieves the parameter's value as a bool.
Definition: AAX_CParameter.h:714
void SetTaperDelegate(AAX_ITaperDelegateBase &inTaperDelegate, bool inPreserveValue=true) AAX_OVERRIDE
Sets the parameter's taper delegate.
Definition: AAX_CParameter.h:1064
bool SetValueWithDouble(double value) AAX_OVERRIDE
Sets the parameter's value as a double.
Definition: AAX_CParameter.h:782
void SetDisplayDelegate(AAX_IDisplayDelegateBase &inDisplayDelegate) AAX_OVERRIDE
Sets the parameter's display delegate.
Definition: AAX_CParameter.h:1079
AAX_IParameterValue * CloneValue() const AAX_OVERRIDE
Clone the parameter's value to a new AAX_IParameterValue object.
Definition: AAX_CParameter.h:578
bool GetValueAsString(AAX_IString *value) const AAX_OVERRIDE
Retrieves the parameter's value as a string.
Definition: AAX_CParameter.h:738
bool GetNormalizedValueFromDouble(double value, double *normalizedValue) const AAX_OVERRIDE
Converts a double to a normalized parameter value.
Definition: AAX_CParameter.h:973
void SetStepValue(uint32_t iStep) AAX_OVERRIDE
Returns the current step for the current value of the parameter.
Definition: AAX_CParameter.h:888
T GetValue() const
Returns the parameter's value.
Definition: AAX_CParameter.h:707
AAX_EParameterOrientation GetOrientation() const AAX_OVERRIDE
Returns the orientation of this parameter.
Definition: AAX_CParameter.h:916
void UpdateNormalizedValue(double newNormalizedValue) AAX_OVERRIDE
Sets the parameter's state given a normalized value.
Definition: AAX_CParameter.h:657
AAX_DEFAULT_MOVE_OPER(AAX_CParameter)
void SetName(const AAX_CString &name) AAX_OVERRIDE
Sets the parameter's display name.
Definition: AAX_CParameter.h:590
uint32_t GetStepValue() const AAX_OVERRIDE
Returns the current step for the current value of the parameter.
Definition: AAX_CParameter.h:848
double GetNormalizedDefaultValue() const AAX_OVERRIDE
Returns the normalized representation of the parameter's real default value.
Definition: AAX_CParameter.h:806
void SetOrientation(AAX_EParameterOrientation iOrientation) AAX_OVERRIDE
Sets the orientation of this parameter.
Definition: AAX_CParameter.h:910
void SetToDefaultValue() AAX_OVERRIDE
Restores the state of this parameter to its default value.
Definition: AAX_CParameter.h:826
AAX_DELETE(AAX_CParameter(const AAX_CParameter &other))
void SetType(AAX_EParameterType iControlType) AAX_OVERRIDE
Sets the type of this parameter.
Definition: AAX_CParameter.h:898
void SetNormalizedDefaultValue(double normalizedDefault) AAX_OVERRIDE
Sets the parameter's default value using its normalized representation.
Definition: AAX_CParameter.h:799
const AAX_ITaperDelegate< T > * TaperDelegate() const
Returns a reference to the parameter's taper delegate.
Definition: AAX_CParameter.h:1090
double GetNormalizedValueFromStep(uint32_t iStep) const AAX_OVERRIDE
Returns the normalized value for a given step.
Definition: AAX_CParameter.h:854
void AddShortenedName(const AAX_CString &name) AAX_OVERRIDE
Sets the parameter's shortened display name.
Definition: AAX_CParameter.h:605
bool SetValueFromString(const AAX_CString &newValueString) AAX_OVERRIDE
Converts a string to a real parameter value and sets the parameter to this value.
Definition: AAX_CParameter.h:1054
bool GetInt32FromNormalizedValue(double normalizedValue, int32_t *value) const AAX_OVERRIDE
Converts a normalized parameter value to an integer representing the corresponding real value.
Definition: AAX_CParameter.h:1004
bool GetDoubleFromNormalizedValue(double normalizedValue, double *value) const AAX_OVERRIDE
Converts a normalized parameter value to a double representing the corresponding real value.
Definition: AAX_CParameter.h:1020
bool SetValueWithInt32(int32_t value) AAX_OVERRIDE
Sets the parameter's value as an int32_t.
Definition: AAX_CParameter.h:766
void ClearShortenedNames() AAX_OVERRIDE
Clears the internal list of shortened display names.
Definition: AAX_CParameter.h:617
AAX_ITaperDelegate< T > * mTaperDelegate
Definition: AAX_CParameter.h:478
bool SetValueWithFloat(float value) AAX_OVERRIDE
Sets the parameter's value as a float.
Definition: AAX_CParameter.h:774
uint32_t GetStepValueFromNormalizedValue(double normalizedValue) const AAX_OVERRIDE
Returns the step value for a normalized value of the parameter.
Definition: AAX_CParameter.h:871
void SetNumberOfSteps(uint32_t numSteps) AAX_OVERRIDE
Sets the number of discrete steps for this parameter.
Definition: AAX_CParameter.h:832
void SetNormalizedValue(double newNormalizedValue) AAX_OVERRIDE
Sets a parameter value using it's normalized representation.
Definition: AAX_CParameter.h:922
void SetAutomationDelegate(AAX_IAutomationDelegate *iAutomationDelegate) AAX_OVERRIDE
Sets the automation delegate (if one is required)
Definition: AAX_CParameter.h:1108
AAX_DELETE(AAX_CParameter &operator=(const AAX_CParameter &other))
bool GetValueString(AAX_CString *valueString) const AAX_OVERRIDE
Serializes the parameter value into a string.
Definition: AAX_CParameter.h:937
bool GetStringFromNormalizedValue(double normalizedValue, AAX_CString &valueString) const AAX_OVERRIDE
Converts a normalized parameter value to a string representing the corresponding real value.
Definition: AAX_CParameter.h:1028
bool GetFloatFromNormalizedValue(double normalizedValue, float *value) const AAX_OVERRIDE
Converts a normalized parameter value to a float representing the corresponding real value.
Definition: AAX_CParameter.h:1012
bool GetValueAsDouble(double *value) const AAX_OVERRIDE
Retrieves the parameter's value as a double.
Definition: AAX_CParameter.h:732
bool Automatable() const AAX_OVERRIDE
Returns true if the parameter is automatable, false if it is not.
Definition: AAX_CParameter.h:1102
AAX_CParamID Identifier() const AAX_OVERRIDE
Returns the parameter's unique identifier.
Definition: AAX_CParameter.h:584
bool GetNormalizedValueFromString(const AAX_CString &valueString, double *normalizedValue) const AAX_OVERRIDE
Converts a given string to a normalized parameter value.
Definition: AAX_CParameter.h:981
AAX_IDisplayDelegate< T > * mDisplayDelegate
Definition: AAX_CParameter.h:479
void SetDefaultValue(T newDefaultValue)
Set the parameter's default value.
Definition: AAX_CParameter.h:813
bool mAutomatable
Definition: AAX_CParameter.h:474
bool GetValueAsInt32(int32_t *value) const AAX_OVERRIDE
Retrieves the parameter's value as an int32_t.
Definition: AAX_CParameter.h:720
void Touch() AAX_OVERRIDE
Signals the automation system that a control has been touched.
Definition: AAX_CParameter.h:1123
uint32_t GetNumberOfSteps() const AAX_OVERRIDE
Returns the number of discrete steps used by the parameter.
Definition: AAX_CParameter.h:842
A stateless parameter implementation.
Definition: AAX_CParameter.h:1153
bool SetValueWithDouble(double) AAX_OVERRIDE
Sets the parameter's value as a double.
Definition: AAX_CParameter.h:1266
uint32_t GetStepValueFromNormalizedValue(double) const AAX_OVERRIDE
Returns the step value for a normalized value of the parameter.
Definition: AAX_CParameter.h:1228
bool GetValueAsInt32(int32_t *) const AAX_OVERRIDE
Retrieves the parameter's value as an int32_t.
Definition: AAX_CParameter.h:1259
void ClearShortenedNames() AAX_OVERRIDE
Clears the internal list of shortened display names.
Definition: AAX_CParameter.h:1190
double GetNormalizedDefaultValue() const AAX_OVERRIDE
Returns the normalized representation of the parameter's real default value.
Definition: AAX_CParameter.h:1222
bool GetStringFromNormalizedValue(double, AAX_CString &valueString) const AAX_OVERRIDE
Converts a normalized parameter value to a string representing the corresponding real value.
Definition: AAX_CParameter.h:1249
double GetNormalizedValue() const AAX_OVERRIDE
Returns the normalized representation of the parameter's current real value.
Definition: AAX_CParameter.h:1220
double GetNormalizedValueFromStep(uint32_t) const AAX_OVERRIDE
Returns the normalized value for a given step.
Definition: AAX_CParameter.h:1227
void SetTaperDelegate(AAX_ITaperDelegateBase &, bool) AAX_OVERRIDE
Sets the parameter's taper delegate.
Definition: AAX_CParameter.h:1276
bool GetBoolFromNormalizedValue(double, bool *value) const AAX_OVERRIDE
Converts a normalized parameter value to a bool representing the corresponding real value.
Definition: AAX_CParameter.h:1245
void AddShortenedName(const AAX_CString &name) AAX_OVERRIDE
Sets the parameter's shortened display name.
Definition: AAX_CParameter.h:1188
bool GetValueString(int32_t, AAX_CString *valueString) const AAX_OVERRIDE
Serializes the parameter value into a string, size hint included.
Definition: AAX_CParameter.h:1239
uint32_t GetStepValue() const AAX_OVERRIDE
Returns the current step for the current value of the parameter.
Definition: AAX_CParameter.h:1226
bool GetInt32FromNormalizedValue(double, int32_t *) const AAX_OVERRIDE
Converts a normalized parameter value to an integer representing the corresponding real value.
Definition: AAX_CParameter.h:1246
AAX_CStringAbbreviations mNames
Definition: AAX_CParameter.h:1287
AAX_EParameterType GetType() const AAX_OVERRIDE
Returns the type of this parameter as an AAX_EParameterType.
Definition: AAX_CParameter.h:1271
bool GetNormalizedValueFromBool(bool, double *normalizedValue) const AAX_OVERRIDE
Converts a bool to a normalized parameter value.
Definition: AAX_CParameter.h:1240
void UpdateNormalizedValue(double) AAX_OVERRIDE
Sets the parameter's state given a normalized value.
Definition: AAX_CParameter.h:1283
void SetNumberOfSteps(uint32_t) AAX_OVERRIDE
Sets the number of discrete steps for this parameter.
Definition: AAX_CParameter.h:1224
void SetDisplayDelegate(AAX_IDisplayDelegateBase &) AAX_OVERRIDE
Sets the parameter's display delegate.
Definition: AAX_CParameter.h:1277
AAX_EParameterOrientation GetOrientation() const AAX_OVERRIDE
Returns the orientation of this parameter.
Definition: AAX_CParameter.h:1274
bool GetNormalizedValueFromInt32(int32_t, double *normalizedValue) const AAX_OVERRIDE
Converts an integer to a normalized parameter value.
Definition: AAX_CParameter.h:1241
void Release() AAX_OVERRIDE
Signals the automation system that a control has been released.
Definition: AAX_CParameter.h:1212
bool SetValueWithString(const AAX_IString &value) AAX_OVERRIDE
Sets the parameter's value as a string.
Definition: AAX_CParameter.h:1267
AAX_CStatelessParameter(const AAX_IString &identifier, const AAX_IString &name, const AAX_IString &inValueString)
Definition: AAX_CParameter.h:1163
bool GetNormalizedValueFromString(const AAX_CString &, double *normalizedValue) const AAX_OVERRIDE
Converts a given string to a normalized parameter value.
Definition: AAX_CParameter.h:1244
bool GetValueAsFloat(float *) const AAX_OVERRIDE
Retrieves the parameter's value as a float.
Definition: AAX_CParameter.h:1260
bool GetStringFromNormalizedValue(double normalizedValue, int32_t, AAX_CString &valueString) const AAX_OVERRIDE
Converts a normalized parameter value to a string representing the corresponding real,...
Definition: AAX_CParameter.h:1250
const AAX_CString & Name() const AAX_OVERRIDE
Returns the parameter's display name.
Definition: AAX_CParameter.h:1187
void Touch() AAX_OVERRIDE
Signals the automation system that a control has been touched.
Definition: AAX_CParameter.h:1211
void SetNormalizedValue(double) AAX_OVERRIDE
Sets a parameter value using it's normalized representation.
Definition: AAX_CParameter.h:1219
void SetNormalizedDefaultValue(double) AAX_OVERRIDE
Sets the parameter's default value using its normalized representation.
Definition: AAX_CParameter.h:1221
void SetToDefaultValue() AAX_OVERRIDE
Restores the state of this parameter to its default value.
Definition: AAX_CParameter.h:1223
bool Automatable() const AAX_OVERRIDE
Returns true if the parameter is automatable, false if it is not.
Definition: AAX_CParameter.h:1197
bool SetValueWithInt32(int32_t) AAX_OVERRIDE
Sets the parameter's value as an int32_t.
Definition: AAX_CParameter.h:1264
AAX_CParamID Identifier() const AAX_OVERRIDE
Returns the parameter's unique identifier.
Definition: AAX_CParameter.h:1179
bool GetDoubleFromNormalizedValue(double, double *) const AAX_OVERRIDE
Converts a normalized parameter value to a double representing the corresponding real value.
Definition: AAX_CParameter.h:1248
bool GetNormalizedValueFromFloat(float, double *normalizedValue) const AAX_OVERRIDE
Converts a float to a normalized parameter value.
Definition: AAX_CParameter.h:1242
bool SetValueWithBool(bool) AAX_OVERRIDE
Sets the parameter's value as a bool.
Definition: AAX_CParameter.h:1263
AAX_CString mID
Definition: AAX_CParameter.h:1288
AAX_CStatelessParameter(AAX_CParamID identifier, const AAX_IString &name, const AAX_IString &inValueString)
Definition: AAX_CParameter.h:1155
bool SetValueWithFloat(float) AAX_OVERRIDE
Sets the parameter's value as a float.
Definition: AAX_CParameter.h:1265
bool SetValueFromString(const AAX_CString &newValueString) AAX_OVERRIDE
Converts a string to a real parameter value and sets the parameter to this value.
Definition: AAX_CParameter.h:1251
bool GetNormalizedValueFromDouble(double, double *normalizedValue) const AAX_OVERRIDE
Converts a double to a normalized parameter value.
Definition: AAX_CParameter.h:1243
bool GetValueAsString(AAX_IString *) const AAX_OVERRIDE
Retrieves the parameter's value as a string.
Definition: AAX_CParameter.h:1262
void SetAutomationDelegate(AAX_IAutomationDelegate *iAutomationDelegate) AAX_OVERRIDE
Sets the automation delegate (if one is required)
Definition: AAX_CParameter.h:1198
bool GetValueString(AAX_CString *valueString) const AAX_OVERRIDE
Serializes the parameter value into a string.
Definition: AAX_CParameter.h:1238
void SetStepValue(uint32_t) AAX_OVERRIDE
Returns the current step for the current value of the parameter.
Definition: AAX_CParameter.h:1229
void SetType(AAX_EParameterType) AAX_OVERRIDE
Sets the type of this parameter.
Definition: AAX_CParameter.h:1270
AAX_CString mValueString
Definition: AAX_CParameter.h:1290
void SetName(const AAX_CString &name) AAX_OVERRIDE
Sets the parameter's display name.
Definition: AAX_CParameter.h:1180
bool GetFloatFromNormalizedValue(double, float *) const AAX_OVERRIDE
Converts a normalized parameter value to a float representing the corresponding real value.
Definition: AAX_CParameter.h:1247
const AAX_CString & ShortenedName(int32_t iNumCharacters) const AAX_OVERRIDE
Returns the parameter's shortened display name.
Definition: AAX_CParameter.h:1189
bool GetValueAsBool(bool *value) const AAX_OVERRIDE
Retrieves the parameter's value as a bool.
Definition: AAX_CParameter.h:1258
AAX_IAutomationDelegate * mAutomationDelegate
Definition: AAX_CParameter.h:1289
AAX_DEFAULT_DTOR_OVERRIDE(AAX_CStatelessParameter)
uint32_t GetNumberOfSteps() const AAX_OVERRIDE
Returns the number of discrete steps used by the parameter.
Definition: AAX_CParameter.h:1225
void SetOrientation(AAX_EParameterOrientation) AAX_OVERRIDE
Sets the orientation of this parameter.
Definition: AAX_CParameter.h:1273
AAX_IParameterValue * CloneValue() const AAX_OVERRIDE
Clone the parameter's value to a new AAX_IParameterValue object.
Definition: AAX_CParameter.h:1173
bool GetValueAsDouble(double *) const AAX_OVERRIDE
Retrieves the parameter's value as a double.
Definition: AAX_CParameter.h:1261
A generic AAX string class with similar functionality to std::string
Definition: AAX_CString.h:44
const char * CString() const
const char * Get() const AAX_OVERRIDE
Helper class to store a collection of name abbreviations.
Definition: AAX_CString.h:173
void Clear()
Definition: AAX_CString.h:207
void Add(const AAX_CString &inAbbreviation)
Definition: AAX_CString.h:184
const AAX_CString & Primary() const
Definition: AAX_CString.h:182
const AAX_CString & Get(int32_t inNumCharacters) const
Definition: AAX_CString.h:190
void SetPrimary(const AAX_CString &inPrimary)
Definition: AAX_CString.h:181
Interface allowing an AAX plug-in to interact with the host's event system.
Definition: AAX_IAutomationDelegate.h:44
virtual AAX_Result PostTouchRequest(AAX_CParamID iParameterID)=0
virtual AAX_Result RegisterParameter(AAX_CParamID iParameterID)=0
virtual AAX_Result PostReleaseRequest(AAX_CParamID iParameterID)=0
virtual AAX_Result UnregisterParameter(AAX_CParamID iParameterID)=0
virtual AAX_Result ParameterNameChanged(AAX_CParamID iParameterID)=0
Defines the display behavior for a parameter.
Definition: AAX_IDisplayDelegate.h:50
Definition: AAX_IDisplayDelegate.h:66
virtual AAX_IDisplayDelegate * Clone() const =0
Constructs and returns a copy of the display delegate.
An abstract interface representing a parameter value of arbitrary type.
Definition: AAX_IParameter.h:42
The base interface for all normalizable plug-in parameters.
Definition: AAX_IParameter.h:137
A simple string container that can be passed across a binary boundary. This class,...
Definition: AAX_IString.h:38
Defines the taper conversion behavior for a parameter.
Definition: AAX_ITaperDelegate.h:70
Definition: AAX_ITaperDelegate.h:86
virtual AAX_ITaperDelegate * Clone() const =0
Constructs and returns a copy of the taper delegate.