# Troi Grabber Plug-in FMP6 conversion note ## Grabber Plug-in 2.2.2 is FileMaker 7 native Troi Grabber Plug-in 2.0 was the first version to use the FileMaker 7 syntax or API (Application Program Interface) to do its work. NOTE 1 The API is the same for FileMaker Pro 7 to FileMaker Pro 12. NOTE 2 Below we will discuss Troi Grabber Plug-in 2.2, but this also applies to possible future versions with a higher number, like for example version 2.3. To make use of the new API you have to make sure the calls to the plug-in are done the right way. Below are some considerations when converting to Troi Grabber Plug-in 2.2 ### New function syntax The plug-in functions have a different syntax compared to the FileMaker Pro 6 plug-in. For example the Grab-StartPreview function has this syntax in the classic API: `External("Grab-StartPreview", "left|top|width|height|switches" )` The syntax in the new native API looks like this: `Grab_StartPreview( switches ; technologyName; previewBounds )` Note that functions look like a real function call, no longer a call to External(). Also a hyphen "-" is no longer allowed, so the hyphens have changed to underscores "_" instead. Note too that parameters don't have to be concatenated with a separator. Instead use a semicolon ";" to separate the parameters. For future enhancements we have added a new first parameter: switches. We also added a technology parameter. Below is an example how this function would appear in ScriptMaker: `Set Field [errorCode , Grab_StartPreview( "-Unused" ; "QuickTimeClassic"; "10 100 110 340" ) ]` TIP Function names are no longer case sensitive and will change to the correct case after you close the "Specify Calculation" dialog box. ### Multiple parameters and new switches As seen from the syntax, plug-in functions now can have multiple parameters. To make this plug-in more consistent, most functions now have a switches parameter as the first parameter. This makes enhancing the plug-in in the future easier. TIP Switches are not case sensitive. #### Omitting optional parameters It is now possible to have optional parameters, although Grabber Plug-in currently does not have a function that allows optional parameters. But in general, when you omit an optional parameter be sure to add an extra semicolon after the last one, otherwise FileMaker will show an alert that there are too few parameters in this function. For example, taken from our File Plug-in, below we omitted the 3rd parameter at the end (initialfolder). This is the correct way to do this: `Set Field [theFile, TrFile_SelectFileDialog("-Unused" ; "Select a file" ; )]` ### New parameter limits The plug-in functions now have a size limit of 1 Gb per parameter (up from the total of 64000 character limit for all parameters in FileMaker 6). The Troi Grabber Plug-in 2.2 can handle those bigger parameters, however, displaying the results in FileMaker 7 (or later) can take a long time. ### Converting the function call from FileMaker 6 When converting FileMaker does not change the plug-in call. So after conversion you need to do this manually. Here are the global steps: remove the `External("` at the beginning in the function name: change `-` to `_` and remove spaces, add a `(` at the end. change the name of the function (in some cases) add as first parameter: `"-Unused"` ( if no switch parameter is there) split the remaining parameters: separate each with a `;` Let's for example take this Grabber Plug-in 1.5 call: `External("Grab-GetTimecode", "-Unused " & "|" & FileSpec )` This needs to be changed to this Grabber Plug-in 2.2 call: `Grab_GetTimecode( "-Unused" ; gMoviefilePath)` TIP Just copy script or steps from the example files, they are all in the Grabber Plug-in 2.2 format! ## Specific functions notes ### Renamed functions The table below will help you figure out the new names for changed function names:
Old function name | New function name | Notes
Grab-CropClip | Grab_CropImage | Now directly uses containers; the rectangle bounds are now like FileMaker.
Grab-GetSettings | Grab_GetCurrentSettings | Now directly uses containers.
Grab-ImageToClip | Grab_GrabImage | Now directly uses containers.
Grab-Stop | Grab_StopPreview | More descriptive name.
### Specific functions notes The table below lists conversion issues with specific functions:
Function name | Notes
Grab_CropImage | Now directly uses containers; the rectangle bounds are now like FileMaker.
Grab_DisplayCropRect | Now has extra technologyName parameter; the rectangle bounds are now like FileMaker.
Grab_DoSettingsDialog | Now has extra technologyName parameter.
Grab_GetCurrentSettings | Renamed from Grab-GetSettings. Now has extra technologyName parameter, and returns a binary for a container.
Grab_GetDeviceInfo | New function!
Grab_GrabImage | Renamed from Grab-GrabImageToClip. Now has extra technologyName parameter, and returns an image container.
Grab_Initialise | Now has extra technologyName parameter.
Grab_OpenImageGrabWindow | New function!
Grab_OpenMovieGrabWindow | New function!
Grab_RecordMovie | Now has extra technologyName parameter.
Grab_SetRotation | Now has extra technologyName parameter.
Grab_SetSettings | Now has extra technologyName parameter. Now uses a container (binary) as input parameter for the settings.
Grab_SetWindowTitle | New function!
Grab_StartPreview | Now has extra technologyName parameter; the preview bounds are now like FileMaker.
Grab_StopPreview | Renamed from Grab-Stop. Now has extra technologyName parameter.
Grab_VersionAutoUpdate | New function for easy auto-update from FileMaker Server.
### Obsolete functions
Function name | Notes
Grab-AquireToClip | This function is not implemented (was Windows only).
### Please report problems and bugs If you find any other problems or bugs, not mentioned above, please send an email to: info@troi.com. Please do NOT send attachments unless specifically requested. Please include the FileMaker version, your platform and operating system in your comments.