TuttleOFX  1
General Properties
Collaboration diagram for General Properties:

Defines

#define kOfxPropAPIVersion   "OfxPropAPIVersion"
 Property on the host descriptor, saying what API version of the API is being implemented.
#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 its 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 kOfxPropVersion   "OfxPropVersion"
 Identifies a specific version of a host or plugin.
#define kOfxPropVersionLabel   "OfxPropVersionLabel"
 Unique user readable version string of a plugin or host.
#define kOfxPropPluginDescription   "OfxPropPluginDescription"
 Description of the plug-in to a user.
#define kOfxPropLabel   "OfxPropLabel"
 User visible name of an object.
#define kOfxPropIcon   "OfxPropIcon"
 If set this tells the host to use an icon instead of a label for some object in the interface.
#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 kOfxPropHostOSHandle   "OfxPropHostOSHandle"
 A pointer to an operating system specific application handle.
#define kOfxPropKeySym   "kOfxPropKeySym"
 Property used to indicate which a key on the keyboard or a button on a button device has been pressed.
#define kOfxPropKeyString   "kOfxPropKeyString"
 This property encodes a single keypresses that generates a unicode code point. The value is stored as a UTF8 string.

Detailed Description

These properties are general properties and apply to may objects across OFX


Define Documentation

#define kOfxPluginPropFilePath   "OfxPluginPropFilePath"

The file path to the plugin.

  • Type - C string X 1
  • Property Set - effect descriptor (read only)

This is a string that indicates the file path where the plug-in was found by the host. The path is in the native path format for the host OS (eg: UNIX directory separators are forward slashes, Windows ones are backslashes).

The path is to the bundle location, see InstallationLocation. eg: '/usr/OFX/Plugins/AcmePlugins/AcmeFantasticPlugin.ofx.bundle'

Definition at line 123 of file ofxCore.h.

Referenced by tuttle::host::ofx::imageEffect::OfxhImageEffectNodeDescriptor::OfxhImageEffectNodeDescriptor().

#define kOfxPropAPIVersion   "OfxPropAPIVersion"

Property on the host descriptor, saying what API version of the API is being implemented.

  • Type - int X N
  • Property Set - host descriptor.

This is a version string that will specify which version of the API is being implemented by a host. It can have multiple values. For example "1.0", "1.2.4" etc.....

If this is not present, it is safe to assume that the version of the API is "1.0".

Definition at line 90 of file ofxCore.h.

#define kOfxPropChangeReason   "OfxPropChangeReason"

Indicates why a plug-in changed.

  • Type - ASCII C string X 1
  • Property Set - the inArgs parameter on the kOfxActionInstanceChanged action.
  • Valid Values - this can be...
    • kOfxChangeUserEdited - the user directly edited the instance somehow and caused a change to something, this includes undo/redos and resets
    • kOfxChangePluginEdited - the plug-in itself has changed the value of the object in some action
    • kOfxChangeTime - the time has changed and this has affected the value of the object because it varies over time

Argument property for the kOfxActionInstanceChanged action.

Definition at line 252 of file ofxCore.h.

Referenced by tuttle::host::ofx::imageEffect::OfxhImageEffectNode::beginInstanceChangedAction(), OFX::Private::beginInstanceChangedAction(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::clipInstanceChangedAction(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::endInstanceChangedAction(), OFX::Private::endInstanceChangedAction(), OFX::Private::instanceChangedAction(), and tuttle::host::ofx::imageEffect::OfxhImageEffectNode::paramInstanceChangedAction().

#define kOfxPropEffectInstance   "OfxPropEffectInstance"

A pointer to an effect instance.

  • Type - pointer X 1
  • Property Set - on an interact instance (read only)

This property is used to link an object to the effect. For example if the plug-in supplies an openGL overlay for an image effect, the interact instance will have one of these so that the plug-in can connect back to the effect the GUI links to.

Definition at line 262 of file ofxCore.h.

Referenced by tuttle::host::ofx::interact::OfxhInteract::initArgProp(), tuttle::host::ofx::interact::OfxhInteract::OfxhInteract(), and OFX::retrieveEffectFromInteractHandle().

#define kOfxPropHostOSHandle   "OfxPropHostOSHandle"

A pointer to an operating system specific application handle.

  • Type - pointer X 1
  • Property Set - host descriptor.

Some plug-in vendor want raw OS specific handles back from the host so they can do interesting things with host OS APIs. Typically this is to control windowing properly on Microsoft Windows. This property returns the appropriate 'root' window handle on the current operating system. So on Windows this would be the hWnd of the application main window.

Definition at line 271 of file ofxCore.h.

#define kOfxPropIcon   "OfxPropIcon"

If set this tells the host to use an icon instead of a label for some object in the interface.

  • Type - string X 2
  • Property Set - various descriptors in the API
  • Default - ""
  • Valid Values - ASCII string

The value is a path is defined relative to the Resource folder that points to an SVG or PNG file containing the icon.

The first dimension, if set, will the name of an SVG file, the second a PNG file.

Definition at line 219 of file ofxCore.h.

#define kOfxPropInstanceData   "OfxPropInstanceData"

A private data pointer that the plug-in can store its own data behind.

  • Type - pointer X 1
  • Property Set - plugin instance (read/write),
  • Default - NULL

This data pointer is unique to each plug-in instance, so two instances of the same plug-in do not share the same data pointer. Use it to hang any needed private data structures.

Definition at line 133 of file ofxCore.h.

Referenced by BOOST_AUTO_TEST_CASE(), OFX::ImageEffect::ImageEffect(), tuttle::host::ofx::interact::OfxhInteract::initArgProp(), OFX::Interact::Interact(), OFX::Private::retrieveImageEffectPointer(), OFX::Private::retrieveInteractPointer(), and OFX::ImageEffect::~ImageEffect().

#define kOfxPropIsInteractive   "OfxPropIsInteractive"

Indicates if a host is actively editing the effect with some GUI.

  • Type - int X 1
  • Property Set - effect instance (read only)
  • Valid Values - 0 or 1

If false the effect currently has no interface, however this may be because the effect is loaded in a background render host, or it may be loaded on an interactive host that has not yet opened an editor for the effect.

The output of an effect should only ever depend on the state of its parameters, not on the interactive flag. The interactive flag is more a courtesy flag to let a plugin know that it has an interface. If a plugin want's to have its behaviour dependant on the interactive flag, it can always make a secret parameter which shadows the state of the flag.

Definition at line 110 of file ofxCore.h.

Referenced by tuttle::host::ofx::imageEffect::OfxhImageEffectNode::beginSequenceRenderAction(), OFX::Private::beginSequenceRenderAction(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::endSequenceRenderAction(), OFX::Private::endSequenceRenderAction(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::initHook(), OFX::ImageEffect::isInteractive(), and tuttle::host::ofx::imageEffect::OfxhImageEffectNode::OfxhImageEffectNode().

#define kOfxPropKeyString   "kOfxPropKeyString"

This property encodes a single keypresses that generates a unicode code point. The value is stored as a UTF8 string.

This property represents the UTF8 encode value of a single key press by a user in an OFX interact.

This property is associated with a kOfxPropKeySym which represents an integer value for the key press. Some keys (for example arrow keys) have no UTF8 equivalant, in which case this is set to the empty string "", and the associate kOfxPropKeySym is set to the equivilant raw key press.

Some keys, especially on non-english language systems, may have a UTF8 value, but not a keysym values, in these cases, the keysym will have a value of kOfxKey_Unknown, but the kOfxPropKeyString property will still be set with the UTF8 value.

Definition at line 71 of file ofxKeySyms.h.

Referenced by OFX::KeyArgs::KeyArgs(), and tuttle::host::ofx::interact::OfxhInteract::setKeyArgProps().

#define kOfxPropKeySym   "kOfxPropKeySym"

Property used to indicate which a key on the keyboard or a button on a button device has been pressed.

This property represents a raw key press, it does not represent the 'character value' of the key.

This property is associated with a kOfxPropKeyString property, which encodes the UTF8 value for the keypress/button press. Some keys (for example arrow keys) have no UTF8 equivalant.

Some keys, especially on non-english language systems, may have a UTF8 value, but not a keysym values, in these cases, the keysym will have a value of kOfxKey_Unknown, but the kOfxPropKeyString property will still be set with the UTF8 value.

Definition at line 54 of file ofxKeySyms.h.

Referenced by OFX::KeyArgs::KeyArgs(), and tuttle::host::ofx::interact::OfxhInteract::setKeyArgProps().

#define kOfxPropLabel   "OfxPropLabel"
#define kOfxPropLongLabel   "OfxPropLongLabel"

Long user visible name of an object.

  • Type - UTF8 C string X 1
  • Property Set - on many objects (descriptors and instances), see PropertiesByObject. Typically readable and writable in most cases.
  • Default - initially kOfxPropName, but will be reset if kOfxPropLabel is changed.

This is a longer version of the label, typically 32 character glyphs or so. Hosts should use this if they have mucg display space for their object labels.

Definition at line 239 of file ofxCore.h.

Referenced by OFX::Clip::getLabels(), OFX::Param::getLabels(), tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::getLongLabel(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::getLongLabel(), OFX::ParamDescriptor::setLabels(), OFX::ClipDescriptor::setLabels(), OFX::ImageEffectDescriptor::setLabels(), OFX::Param::setLabels(), and tuttle::host::ofx::attribute::OfxhAttributeAccessor::setLongLabel().

#define kOfxPropPluginDescription   "OfxPropPluginDescription"

Description of the plug-in to a user.

  • Type - string X 1
  • Property Set - plugin descriptor (read/write) and instance (read only)
  • Default - ""
  • Valid Values - UTF8 string
  • API >= 1.2

This is a string giving a potentially verbose description of the effect.

Definition at line 194 of file ofxCore.h.

Referenced by displayNodeHelp(), and OFX::ImageEffectDescriptor::setDescription().

#define kOfxPropShortLabel   "OfxPropShortLabel"

Short user visible name of an object.

  • Type - UTF8 C string X 1
  • Property Set - on many objects (descriptors and instances), see PropertiesByObject. Typically readable and writable in most cases.
  • Default - initially kOfxPropName, but will be reset if kOfxPropLabel is changed.

This is a shorter version of the label, typically 13 character glyphs or less. Hosts should use this if they have limitted display space for their object labels.

Definition at line 229 of file ofxCore.h.

Referenced by OFX::Clip::getLabels(), OFX::Param::getLabels(), tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::getShortLabel(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::getShortLabel(), OFX::ParamDescriptor::setLabels(), OFX::ClipDescriptor::setLabels(), OFX::ImageEffectDescriptor::setLabels(), OFX::Param::setLabels(), and tuttle::host::ofx::attribute::OfxhAttributeAccessor::setShortLabel().

#define kOfxPropVersion   "OfxPropVersion"

Identifies a specific version of a host or plugin.

  • Type - int X N
  • Property Set - host descriptor (read only), plugin descriptor (read/write)
  • Default - "0"
  • Valid Values - positive integers

This is a multi dimensional integer property that represents the version of a host (host descriptor), or plugin (plugin descriptor). These represent a version number of the form '1.2.3.4', with each dimension adding another 'dot' on the right.

A version is considered to be more recent than another if its ordered set of values is lexicographically greater than another, reading left to right. (ie: 1.2.4 is smaller than 1.2.6). Also, if the number of dimensions is different, then the values of the missing dimensions are considered to be zero (so 1.2.4 is greater than 1.2).

Definition at line 170 of file ofxCore.h.

#define kOfxPropVersionLabel   "OfxPropVersionLabel"

Unique user readable version string of a plugin or host.

  • Type - string X 1
  • Property Set - host descriptor (read only), plugin descriptor (read/write)
  • Default - none, the host needs to set this
  • Valid Values - ASCII string

This is purely for user feedback, a plugin or host should use kOfxPropVersion if they need to check for specific versions.

Definition at line 182 of file ofxCore.h.