Main Page | Modules | Class List | File List | Class Members | File Members

ofxParam.h

Go to the documentation of this file.
00001 #ifndef _ofxParam_h_
00002 #define _ofxParam_h_
00003 
00004 /*
00005 Software License :
00006 
00007 Copyright (c) 2003-2004, The Foundry Visionmongers Ltd. All rights reserved.
00008 
00009 Redistribution and use in source and binary forms, with or without
00010 modification, are permitted provided that the following conditions are met:
00011 
00012     * Redistributions of source code must retain the above copyright notice,
00013       this list of conditions and the following disclaimer.
00014     * Redistributions in binary form must reproduce the above copyright notice,
00015       this list of conditions and the following disclaimer in the documentation
00016       and/or other materials provided with the distribution.
00017     * Neither the name The Foundry Visionmongers Ltd, nor the names of its 
00018       contributors may be used to endorse or promote products derived from this
00019       software without specific prior written permission.
00020 
00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
00022 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00023 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00024 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
00025 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00026 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00027 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
00028 ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00029 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00030 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
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,  // time in frames
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

Copyright 2003-2004 The Foundry Visonmongers Ltd. All rights reserved.
Copying and redistribution with or without modification, is permitted provided that the following conditions are met:
  1. Redistributions of the document must retain the above copyright notice and this list of conditions.
  2. Neither the name of The Foundry Visonmongers Ltd nor names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
Automatic documentation generated by DOxygen.