00001 #ifndef _ofxParam_h_
00002 #define _ofxParam_h_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #include "ofxCore.h"
00034 #include "ofxProperty.h"
00035
00036 #ifdef __cplusplus
00037 extern "C" {
00038 #endif
00039
00041 #define kOfxParameterSuite "OfxParameterSuite"
00042
00044 #define kOfxTypeParameter "OfxTypeParameter"
00045
00047 #define kOfxTypeParameterInstance "OfxTypeParameterInstance"
00048
00052 typedef struct OfxParamStruct *OfxParamHandle;
00053
00057 typedef struct OfxParamSetStruct *OfxParamSetHandle;
00058
00059
00066
00068 #define kOfxParamTypeInteger "OfxParamTypeInteger"
00069
00070 #define kOfxParamTypeDouble "OfxParamTypeDouble"
00071
00072 #define kOfxParamTypeBoolean "OfxParamTypeBoolean"
00073
00074 #define kOfxParamTypeChoice "OfxParamTypeChoice"
00075
00076 #define kOfxParamTypeRGBA "OfxParamTypeRGBA"
00077
00078 #define kOfxParamTypeRGB "OfxParamTypeRGB"
00079
00080 #define kOfxParamTypeDouble2D "OfxParamTypeDouble2D"
00081
00082 #define kOfxParamTypeInteger2D "OfxParamTypeInteger2D"
00083
00084 #define kOfxParamTypeDouble3D "OfxParamTypeDouble3D"
00085
00086 #define kOfxParamTypeInteger3D "OfxParamTypeInteger3D"
00087
00088 #define kOfxParamTypeString "OfxParamTypeString"
00089
00090 #define kOfxParamTypeCustom "OfxParamTypeCustom"
00091
00092 #define kOfxParamTypeGroup "OfxParamTypeGroup"
00093
00094 #define kOfxParamTypePage "OfxParamTypePage"
00095
00096 #define kOfxParamTypePushButton "OfxParamTypePushButton"
00097
00109
00116 #define kOfxParamHostPropSupportsCustomAnimation "OfxParamHostPropSupportsCustomAnimation"
00117
00124 #define kOfxParamHostPropSupportsStringAnimation "OfxParamHostPropSupportsStringAnimation"
00125
00132 #define kOfxParamHostPropSupportsBooleanAnimation "OfxParamHostPropSupportsBooleanAnimation"
00133
00140 #define kOfxParamHostPropSupportsChoiceAnimation "OfxParamHostPropSupportsChoiceAnimation"
00141
00148 #define kOfxParamHostPropSupportsCustomInteract "OfxParamHostPropSupportsCustomInteract"
00149
00157 #define kOfxParamHostPropMaxParameters "OfxParamHostPropMaxParameters"
00158
00168 #define kOfxParamHostPropMaxPages "OfxParamHostPropMaxPages"
00169
00177 #define kOfxParamHostPropPageRowColumnCount "OfxParamHostPropPageRowColumnCount"
00178
00185 #define kOfxParamPageSkipRow "OfxParamPageSkipRow"
00186
00193 #define kOfxParamPageSkipColumn "OfxParamPageSkipColumn"
00194
00204 #define kOfxParamPropInteractV1 "OfxParamPropInteractV1"
00205
00213 #define kOfxParamPropInteractSize "OfxParamPropInteractSize"
00214
00224 #define kOfxParamPropInteractSizeAspect "OfxParamPropInteractSizeAspect"
00225
00235 #define kOfxParamPropInteractMinimumSize "OfxParamPropInteractMinimumSize"
00236
00246 #define kOfxParamPropInteractPreferedSize "OfxParamPropInteractPreferedSize"
00247
00255 #define kOfxParamPropType "OfxParamPropType"
00256
00266 #define kOfxParamPropAnimates "OfxParamPropAnimates"
00267
00275 #define kOfxParamPropCanUndo "OfxParamPropCanUndo"
00276
00285 #define kOfxParamPropIsAnimating "OfxParamPropIsAnimating"
00286
00296 #define kOfxParamPropPluginMayWrite "OfxParamPropPluginMayWrite"
00297
00307 #define kOfxParamPropPersistant "OfxParamPropPersistant"
00308
00318 #define kOfxParamPropEvaluateOnChange "OfxParamPropEvaluateOnChange"
00319
00331 #define kOfxParamPropSecret "OfxParamPropSecret"
00332
00342 #define kOfxParamPropScriptName "OfxParamPropScriptName"
00343
00360 #define kOfxParamPropCacheInvalidation "OfxParamPropCacheInvalidation"
00361
00363 #define kOfxParamInvalidateValueChange "OfxParamInvalidateValueChange"
00364
00366 #define kOfxParamInvalidateValueChangeToEnd "OfxParamInvalidateValueChangeToEnd"
00367
00369 #define kOfxParamInvalidateAll "OfxParamInvalidateAll"
00370
00377 #define kOfxParamPropHint "OfxParamPropHint"
00378
00402 #define kOfxParamPropDefault "OfxParamPropDefault"
00403
00425 #define kOfxParamPropDoubleType "OfxParamPropDoubleType"
00426
00428 #define kOfxParamDoubleTypePlain "OfxParamDoubleTypePlain"
00429
00431 #define kOfxParamDoubleTypeScale "OfxParamDoubleTypeScale"
00432
00434 #define kOfxParamDoubleTypeAngle "OfxParamDoubleTypeAngle"
00435
00437 #define kOfxParamDoubleTypeTime "OfxParamDoubleTypeTime"
00438
00440 #define kOfxParamDoubleTypeAbsoluteTime "OfxParamDoubleTypeAbsoluteTime"
00441
00443 #define kOfxParamDoubleTypeNormalisedX "OfxParamDoubleTypeNormalisedX"
00444
00446 #define kOfxParamDoubleTypeNormalisedY "OfxParamDoubleTypeNormalisedY"
00447
00449 #define kOfxParamDoubleTypeNormalisedXAbsolute "OfxParamDoubleTypeNormalisedXAbsolute"
00450
00452 #define kOfxParamDoubleTypeNormalisedYAbsolute "OfxParamDoubleTypeNormalisedYAbsolute"
00453
00455 #define kOfxParamDoubleTypeNormalisedXY "OfxParamDoubleTypeNormalisedXY"
00456
00458 #define kOfxParamDoubleTypeNormalisedXYAbsolute "OfxParamDoubleTypeNormalisedXYAbsolute"
00459
00471 #define kOfxParamPropShowTimeMarker "OfxParamPropShowTimeMarker"
00472
00482 #define kOfxPluginPropParamPageOrder "OfxPluginPropParamPageOrder"
00483
00495 #define kOfxParamPropPageChild "OfxParamPropPageChild"
00496
00508 #define kOfxParamPropParent "OfxParamPropParent"
00509
00519 #define kOfxParamPropEnabled "OfxParamPropEnabled"
00520
00529 #define kOfxParamPropDataPtr "OfxParamPropDataPtr"
00530
00539 #define kOfxParamPropChoiceOption "OfxParamPropChoiceOption"
00540
00549 #define kOfxParamPropMin "OfxParamPropMin"
00550
00559 #define kOfxParamPropMax "OfxParamPropMax"
00560
00569 #define kOfxParamPropDisplayMin "OfxParamPropDisplayMin"
00570
00579 #define kOfxParamPropDisplayMax "OfxParamPropDisplayMax"
00580
00590 #define kOfxParamPropIncrement "OfxParamPropIncrement"
00591
00601 #define kOfxParamPropDigits "OfxParamPropDigits"
00602
00612 #define kOfxParamPropDimensionLabel "OfxParamPropDimensionLabel"
00613
00622 #define kOfxParamPropIsAutoKeying "OfxParamPropIsAutoKeying"
00623
00633 #define kOfxParamPropCustomInterpCallbackV1 "OfxParamPropCustomCallbackV1"
00634
00648 #define kOfxParamPropStringMode "OfxParamPropStringMode"
00649
00659 #define kOfxParamPropStringFilePathExists "OfxParamPropStringFilePathExists"
00660
00663 #define kOfxParamStringIsSingleLine "OfxParamStringIsSingleLine"
00664
00667 #define kOfxParamStringIsMultiLine "OfxParamStringIsMultiLine"
00668
00671 #define kOfxParamStringIsFilePath "OfxParamStringIsFilePath"
00672
00675 #define kOfxParamStringIsDirectoryPath "OfxParamStringIsDirectoryPath"
00676
00679 #define kOfxParamStringIsLabel "OfxParamStringIsLabel"
00680
00681
00687 #define kOfxParamPropCustomValue "OfxParamPropCustomValue"
00688
00697 #define kOfxParamPropInterpolationTime "OfxParamPropInterpolationTime"
00698
00707 #define kOfxParamPropInterpolationAmount "OfxParamPropInterpolationAmount"
00708
00711
00733 typedef OfxStatus (OfxCustomParamInterpFuncV1)(OfxParamSetHandle instance,
00734 OfxPropertySetHandle inArgs,
00735 OfxPropertySetHandle outArgs);
00736
00737
00740 typedef struct OfxParameterSuiteV1 {
00762 OfxStatus (*paramDefine)(OfxParamSetHandle paramSet,
00763 const char *paramType,
00764 const char *name,
00765 OfxPropertySetHandle *propertySet);
00766
00781 OfxStatus (*paramGetHandle)(OfxParamSetHandle paramSet,
00782 const char *name,
00783 OfxParamHandle *param,
00784 OfxPropertySetHandle *propertySet);
00785
00798 OfxStatus (*paramSetGetPropertySet)(OfxParamSetHandle paramSet,
00799 OfxPropertySetHandle *propHandle);
00800
00813 OfxStatus (*paramGetPropertySet)(OfxParamHandle param,
00814 OfxPropertySetHandle *propHandle);
00815
00839 OfxStatus (*paramGetValue)(OfxParamHandle paramHandle,
00840 ...);
00841
00842
00857 OfxStatus (*paramGetValueAtTime)(OfxParamHandle paramHandle,
00858 OfxTime time,
00859 ...);
00860
00879 OfxStatus (*paramGetDerivative)(OfxParamHandle paramHandle,
00880 OfxTime time,
00881 ...);
00882
00902 OfxStatus (*paramGetIntegral)(OfxParamHandle paramHandle,
00903 OfxTime time1, OfxTime time2,
00904 ...);
00905
00923 OfxStatus (*paramSetValue)(OfxParamHandle paramHandle,
00924 ...);
00925
00942 OfxStatus (*paramSetValueAtTime)(OfxParamHandle paramHandle,
00943 OfxTime time,
00944 ...);
00945
00946
00960 OfxStatus (*paramGetNumKeys)(OfxParamHandle paramHandle,
00961 unsigned int *numberOfKeys);
00962
00974 OfxStatus (*paramGetKeyTime)(OfxParamHandle paramHandle,
00975 unsigned int nthKey,
00976 OfxTime *time);
00977
00978
00994 OfxStatus (*paramGetKeyIndex)(OfxParamHandle paramHandle,
00995 OfxTime time,
00996 int direction,
00997 int *index);
00998
01009 OfxStatus (*paramDeleteKey)(OfxParamHandle paramHandle,
01010 OfxTime time);
01011
01023 OfxStatus (*paramDeleteAllKeys)(OfxParamHandle paramHandle);
01024
01045 OfxStatus (*paramCopy)(OfxParamHandle paramTo, OfxParamHandle paramFrom, OfxTime dstOffset, OfxRangeD *frameRange);
01046
01047
01064 OfxStatus (*paramEditBegin)(OfxParamSetHandle paramSet, const char *name);
01065
01081 OfxStatus (*paramEditEnd)(OfxParamSetHandle paramSet);
01082 } OfxParameterSuiteV1;
01083
01084 #ifdef __cplusplus
01085 }
01086 #endif
01087
01088
01097 #endif