Host Info Structure
FxFactory lets you designate one of the structure inputs of your Quartz composition to receive a Host Info Structure. This mapping is available under the Inputs section of the plug-in development UI.
The value fed to the selected input is a dictionary with the following keys and values that describe the host in which the plug-in has been loaded:
- hostName contains the human-readable name of the host as a string value (e.g. “Motion”, “Final Cut Pro”)
- hostVersion contains the human-readable version of the host as a string value (e.g. “6.0.4”, “3.0.1”)
- hostVersionMajor, hostVersionMinor and hostVersionRevision contain the numeric components of the host version. For instance, if the host is Final Cut Pro and the version is “6.0.4”, these values will be 6, 0 and 4, respectively. These numeric components can more readily be used in comparisons within your composition, so that the composition need not parse the version string itself.
- hostIdentifier contains a numeric value that identifies the host as uniquely as possible. The following values are supported:
- 0 = Unknown host
- 1 = Motion
- 2 = Final Cut Pro
- 3 = Final Cut Express
- 4 = Compressor
- 5 = DVD Studio Pro
- 99 = Unknown FxPlug-compatible host
- 100 = After Effects
- 101 = After Effects Render Core
- 102 = Premiere Pro
- 199 = Unknown After Effects-compatible host.
- hostArchitecture contains a numeric value that identifies the plug-in architecture. A value of 1 means that the host uses the FxPlug plug-in architecture. A value of 2 means that the host uses the After Effects plug-in architecture.
- hostBundleID contains the Core Foundation bundle identifier (e.g. “com.apple.Motion”)
Although it is certainly possible to extract values from a Host Info structure using multiple “Structure Key Member” patches in Quartz Composer, it is recommended that you use the “FxFactory Host Info” patch instead. This patch has been designed to make this job easier for you: