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

ofxCore.h File Reference


Detailed Description

Contains the core OFX architectural struct and function definitions. For more details on the basic OFX architecture, see Architecture.

#include "stddef.h"

Go to the source code of this file.

Classes

struct  OfxHost
 Generic host structure passed to OfxPlugin::setHost function. More...
struct  OfxPlugin
 The structure that defines a plug-in to a host. More...
struct  OfxRangeI
 Defines one dimensional integer bounds. More...
struct  OfxRangeD
 Defines one dimensional double bounds. More...
struct  OfxPointI
 Defines two dimensional integer point. More...
struct  OfxPointD
 Defines two dimensional double point. More...
struct  OfxRectI
 Defines two dimensional integer region. More...
struct  OfxRectD
 Defines two dimensional double region. More...
struct  OfxRGBAColourB
 Defines an 8 bit per component RGBA pixel. More...
struct  OfxRGBAColourS
 Defines a 16 bit per component RGBA pixel. More...
struct  OfxRGBAColourF
 Defines a floating point component RGBA pixel. More...
struct  OfxRGBAColourD
 Defines a double precision floating point component RGBA pixel. More...
struct  OfxYUVAColourB
 Defines an 8 bit per component YUVA pixel. More...
struct  OfxYUVAColourS
 Defines an 16 bit per component YUVA pixel. More...
struct  OfxYUVAColourF
 Defines an floating point component YUVA pixel. More...

Defines

#define OfxExport   extern
 Platform independent export macro.
#define kOfxActionLoad   "OfxActionLoad"
 Action called just after a plug-in has been loaded, for more details see ArchitectureMainFunction and ActionsGeneralLoad.
#define kOfxActionDescribe   "OfxActionDescribe"
 Action called to have a plug-in describe itself to the host, for more details see ArchitectureMainFunction and ActionsGeneralDescribe.
#define kOfxActionUnload   "OfxActionUnload"
 Action called just before a plug-in is unloaded, for more details see ArchitectureMainFunction and ActionsGeneralUnload.
#define kOfxActionPurgeCaches   "OfxActionPurgeCaches"
 Action called to have a plug-in purge any temporary caches it may have allocated ArchitectureMainFunction and ActionsGeneralPurgeCaches.
#define kOfxActionSyncPrivateData   "OfxActionSyncPrivateData"
 Action called to have a plug-in sync any internal data structures into custom parameters.
#define kOfxActionCreateInstance   "OfxActionCreateInstance"
 Action called just after an instance has been created ArchitectureMainFunction and ActionsGeneralCreateInstance.
#define kOfxActionDestroyInstance   "OfxActionDestroyInstance"
 Action called just before an instance is destroyed and ActionsGeneralDestroyInstance.
#define kOfxActionInstanceChanged   "OfxActionInstanceChanged"
 Action indicating something in the instance has been changed, see ActionsGeneralInstanceChanged.
#define kOfxActionBeginInstanceChanged   "OfxActionBeginInstanceChanged"
 Action called before the start of a set of kOfxActionEndInstanceChanged actions, used with kOfxActionEndInstanceChanged to bracket a grouped set of changes, see ActionsGeneralInstanceChangedBeginEnd.
#define kOfxActionEndInstanceChanged   "OfxActionEndInstanceChanged"
 Action called after the end of a set of kOfxActionEndInstanceChanged actions, used with kOfxActionBeginInstanceChanged to bracket a grouped set of changes, see ActionsGeneralInstanceChangedBeginEnd.
#define kOfxActionBeginInstanceEdit   "OfxActionBeginInstanceEdit"
 Action called when an instance has the first editor opened for it.
#define kOfxActionEndInstanceEdit   "OfxActionEndInstanceEdit"
 Action called when an instance has the last editor closed.
#define kOfxPropTime   "OfxPropTime"
 General property used to get/set the time of something.
#define kOfxPropIsInteractive   "OfxPropIsInteractive"
 Indicates if a host is actively editing the effect with some GUI.
#define kOfxPluginPropFilePath   "OfxPluginPropFilePath"
 The file path to the plugin.
#define kOfxPropInstanceData   "OfxPropInstanceData"
 A private data pointer that the plug-in can store it's own data behind.
#define kOfxPropType   "OfxPropType"
 General property, used to identify the kind of an object behind a handle.
#define kOfxPropName   "OfxPropName"
 Unique name of an object.
#define kOfxPropLabel   "OfxPropLabel"
 User visible name of an object.
#define kOfxPropShortLabel   "OfxPropShortLabel"
 Short user visible name of an object.
#define kOfxPropLongLabel   "OfxPropLongLabel"
 Long user visible name of an object.
#define kOfxPropChangeReason   "OfxPropChangeReason"
 Indicates why a plug-in changed.
#define kOfxPropEffectInstance   "OfxPropEffectInstance"
 A pointer to an effect instance.
#define kOfxChangeUserEdited   "OfxChangeUserEdited"
 String used as a value to kOfxPropChangeReason to indicate a user has changed something.
#define kOfxChangePluginEdited   "OfxChangePluginEdited"
 String used as a value to kOfxPropChangeReason to indicate the plug-in itself has changed something.
#define kOfxChangeTime   "OfxChangeTime"
 String used as a value to kOfxPropChangeReason to a time varying object has changed due to a time change.
#define kOfxFlagInfiniteMax   ((int)((1 << (sizeof(int)*8 - 1)) - 1))
 Used to flag infinite rects. Set minimums to this to indicate infinite.
#define kOfxFlagInfiniteMin   ((int)(-kOfxFlagInfiniteMax - 1))
 Used to flag infinite rects. Set minimums to this to indicate infinite.
#define kOfxBitDepthNone   "OfxBitDepthNone"
 String used to label unset bitdepths.
#define kOfxBitDepthByte   "OfxBitDepthByte"
 String used to label unsigned 8 bit integer samples.
#define kOfxBitDepthShort   "OfxBitDepthShort"
 String used to label unsigned 16 bit integer samples.
#define kOfxBitDepthFloat   "OfxBitDepthFloat"
 String used to label signed 32 bit floating point samples.
#define kOfxStatOK   0
 Status code indicating all was fine.
#define kOfxStatFailed   ((int)1)
 Status error code for a failed operation.
#define kOfxStatErrFatal   ((int)2)
 Status error code for a fatal error.
#define kOfxStatErrUnknown   ((int)3)
 Status error code for an operation on or request for an unknown object.
#define kOfxStatErrMissingHostFeature   ((int) 4)
 Status error code returned by plug-ins when they are missing host functionality, either an API or some optional functionality (eg: custom params).
#define kOfxStatErrUnsupported   ((int) 5)
 Status error code for an unsupported feature/operation.
#define kOfxStatErrExists   ((int) 6)
 Status error code for an operation attempting to create something that exists.
#define kOfxStatErrFormat   ((int) 7)
 Status error code for an incorrect format.
#define kOfxStatErrMemory   ((int) 8)
 Status error code indicating that something failed due to memory shortage.
#define kOfxStatErrBadHandle   ((int) 9)
 Status error code for an operation on a bad handle.
#define kOfxStatErrBadIndex   ((int)10)
 Status error code indicating that a given index was invalid or unavailable.
#define kOfxStatErrValue   ((int) 11)
 Status error code indicating that something failed due an illegal value.
#define kOfxStatReplyYes   ((int) 12)
 OfxStatus returned indicating a 'yes'.
#define kOfxStatReplyNo   ((int) 13)
 OfxStatus returned indicating a 'no'.
#define kOfxStatReplyDefault   ((int) 14)
 OfxStatus returned indicating that a default action should be performed.

Typedefs

typedef OfxPropertySetStruct * OfxPropertySetHandle
 Blind data structure to manipulate sets of properties through.
typedef int OfxStatus
 OFX status return type.
typedef OfxHost OfxHost
 Generic host structure passed to OfxPlugin::setHost function.
typedef OfxStatusOfxPluginEntryPoint )(const char *action, const void *handle, OfxPropertySetHandle inArgs, OfxPropertySetHandle outArgs)
 Entry point for plug-ins.
typedef OfxPlugin OfxPlugin
 The structure that defines a plug-in to a host.
typedef double OfxTime
 How time is specified within the OFX API.
typedef OfxRangeI OfxRangeI
 Defines one dimensional integer bounds.
typedef OfxRangeD OfxRangeD
 Defines one dimensional double bounds.
typedef OfxPointI OfxPointI
 Defines two dimensional integer point.
typedef OfxPointD OfxPointD
 Defines two dimensional double point.
typedef OfxRectI OfxRectI
 Defines two dimensional integer region.
typedef OfxRectD OfxRectD
 Defines two dimensional double region.
typedef OfxRGBAColourB OfxRGBAColourB
 Defines an 8 bit per component RGBA pixel.
typedef OfxRGBAColourS OfxRGBAColourS
 Defines a 16 bit per component RGBA pixel.
typedef OfxRGBAColourF OfxRGBAColourF
 Defines a floating point component RGBA pixel.
typedef OfxRGBAColourD OfxRGBAColourD
 Defines a double precision floating point component RGBA pixel.
typedef OfxYUVAColourB OfxYUVAColourB
 Defines an 8 bit per component YUVA pixel.
typedef OfxYUVAColourS OfxYUVAColourS
 Defines an 16 bit per component YUVA pixel.
typedef OfxYUVAColourF OfxYUVAColourF
 Defines an floating point component YUVA pixel.

Functions

OfxExport OfxPluginOfxGetPlugin (int nth)
 Returns the 'nth' plug-in implemented inside a binary.
OfxExport int OfxGetNumberOfPlugins (void)
 Defines the number of plug-ins implemented inside a binary.


Define Documentation

#define kOfxBitDepthByte   "OfxBitDepthByte"
 

String used to label unsigned 8 bit integer samples.

#define kOfxBitDepthFloat   "OfxBitDepthFloat"
 

String used to label signed 32 bit floating point samples.

#define kOfxBitDepthNone   "OfxBitDepthNone"
 

String used to label unset bitdepths.

#define kOfxBitDepthShort   "OfxBitDepthShort"
 

String used to label unsigned 16 bit integer samples.

#define kOfxChangePluginEdited   "OfxChangePluginEdited"
 

String used as a value to kOfxPropChangeReason to indicate the plug-in itself has changed something.

#define kOfxChangeTime   "OfxChangeTime"
 

String used as a value to kOfxPropChangeReason to a time varying object has changed due to a time change.

#define kOfxChangeUserEdited   "OfxChangeUserEdited"
 

String used as a value to kOfxPropChangeReason to indicate a user has changed something.

#define kOfxFlagInfiniteMax   ((int)((1 << (sizeof(int)*8 - 1)) - 1))
 

Used to flag infinite rects. Set minimums to this to indicate infinite.

This is effectively INT_MAX.

#define kOfxFlagInfiniteMin   ((int)(-kOfxFlagInfiniteMax - 1))
 

Used to flag infinite rects. Set minimums to this to indicate infinite.

This is effectively INT_MIN

#define OfxExport   extern
 

Platform independent export macro.

This macro is to be used before any symbol that is to be exported from a plug-in. This is OS/compiler dependent.


Typedef Documentation

typedef struct OfxHost OfxHost
 

Generic host structure passed to OfxPlugin::setHost function.

This structure contains what is needed by a plug-in to bootstrap it's connection to the host.

typedef struct OfxPlugin OfxPlugin
 

The structure that defines a plug-in to a host.

This structure is the first element in any plug-in structure using the OFX plug-in architecture. By examining it's members a host can determine the API that the plug-in implements, the version of that API, it's name and version.

For details see Architecture.

typedef OfxStatus( OfxPluginEntryPoint)(const char *action, const void *handle, OfxPropertySetHandle inArgs, OfxPropertySetHandle outArgs)
 

Entry point for plug-ins.

  • action - ASCII c string indicating which action to take
  • instance - object to which action should be applied, this will need to be cast to the appropriate blind data type depending on the action
  • inData - handle that contains action specific properties
  • outData - handle where the plug-in should set various action specific properties
This is how the host generally communicates with a plug-in. Entry points are used to pass messages to various objects used within OFX. The main use is within the OfxPlugin struct.

The exact set of actions is determined by the plug-in API that is being implemented, however all plug-ins can perform several actions. For the list of actions consult OFX Actions.

typedef struct OfxPointD OfxPointD
 

Defines two dimensional double point.

typedef struct OfxPointI OfxPointI
 

Defines two dimensional integer point.

typedef struct OfxPropertySetStruct* OfxPropertySetHandle
 

Blind data structure to manipulate sets of properties through.

typedef struct OfxRangeD OfxRangeD
 

Defines one dimensional double bounds.

typedef struct OfxRangeI OfxRangeI
 

Defines one dimensional integer bounds.

typedef struct OfxRectD OfxRectD
 

Defines two dimensional double region.

Regions are x1 <= x < x2

Infinite regions are flagged by setting

  • x1 = kOfxFlagInfiniteMin
  • y1 = kOfxFlagInfiniteMin
  • x2 = kOfxFlagInfiniteMax
  • y2 = kOfxFlagInfiniteMax

typedef struct OfxRectI OfxRectI
 

Defines two dimensional integer region.

Regions are x1 <= x < x2

Infinite regions are flagged by setting

  • x1 = kOfxFlagInfiniteMin
  • y1 = kOfxFlagInfiniteMin
  • x2 = kOfxFlagInfiniteMax
  • y2 = kOfxFlagInfiniteMax

typedef struct OfxRGBAColourB OfxRGBAColourB
 

Defines an 8 bit per component RGBA pixel.

typedef struct OfxRGBAColourD OfxRGBAColourD
 

Defines a double precision floating point component RGBA pixel.

typedef struct OfxRGBAColourF OfxRGBAColourF
 

Defines a floating point component RGBA pixel.

typedef struct OfxRGBAColourS OfxRGBAColourS
 

Defines a 16 bit per component RGBA pixel.

typedef int OfxStatus
 

OFX status return type.

typedef double OfxTime
 

How time is specified within the OFX API.

typedef struct OfxYUVAColourB OfxYUVAColourB
 

Defines an 8 bit per component YUVA pixel.

typedef struct OfxYUVAColourF OfxYUVAColourF
 

Defines an floating point component YUVA pixel.

typedef struct OfxYUVAColourS OfxYUVAColourS
 

Defines an 16 bit per component YUVA pixel.


Function Documentation

OfxExport int OfxGetNumberOfPlugins void   ) 
 

Defines the number of plug-ins implemented inside a binary.

A host calls this to determine how many plug-ins there are inside a binary it has loaded. A function of this type must be implemented in and exported from each plug-in binary.

OfxExport OfxPlugin* OfxGetPlugin int  nth  ) 
 

Returns the 'nth' plug-in implemented inside a binary.

Returns a pointer to the 'nth' plug-in implemented in the binary. A function of this type must be implemented in and exported from each plug-in binary.


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.