The JSON interface is a UDP based protocol in Dragonframe, that uses the JSON format for messages.

You can send commands to Dragonframe and receive notifications from it. It may be a useful integration point for using Dragonframe with other devices or applications.

After creating a device that sends/receives these messages, use the program’s Scene | Connections and add a connection of type JSON.

Note: The optional ‘view frame updates’ feature can be turned on with command = ‘viewFrameUpdates’. This instructs Dragonframe to send a ‘viewFrame’ message every time the user toggles to a different frame.

We provide a sample Qt application that implements this interface. You can find the sample JSON project here. You must compile it with Qt 5.3 or newer.

Messages to Control Dragonframe

Shoot { "command" : "shoot", "frames" : 1 }
Delete { "command" : "delete" }
Play/Stop { "command" : "play" }
Go to Live { "command" : "live" }
Mute { "command" : "mute" }
Toggle Play to black { "command" : "black" }
Toggle Looping { "command" : "loop" }
Opacity Down { "command" : "opacityDown" }
Opacity Up { "command" : "opacityUp" }
Step Forward { "command" : "stepForward" }
Step Backward { "command" : "stepBackward" }
Short Play { "command" : "shortPlay" }
Live Toggle (Press) { "command" : "liveToggle", "state" : "pressed" }
Live Toggle (Release) { "command" : "liveToggle", "state" : "released" }
Auto Toggle { "command" : "autoToggle" }
Toggle High-Res/Video-Assist { "command" : "highResToggle" }
Set View Frame Updates { "command" : "viewFrameUpdates", "active" : true|false }

 

Messages from Dragonframe

Shooting Frame { "event" : "shoot",
"production" : "[PRODUCTION]",
"scene" : "[SCENE]",
"take" : "[TAKE]",
"frame" : [FRAME],
"exposure" : [EXPOSURE],
"exposure" : "[EXPOSURE NAME]",
"stereoIndex" : [INDEX] }
Deleting Frame { "event" : "delete",
"production" : "[PRODUCTION]",
"scene" : "[SCENE]",
"take" : "[TAKE]" }
Position Frame (Move to Frame) { "event" : "position",
"production" : "[PRODUCTION]",
"scene" : "[SCENE]",
"take" : "[TAKE]",
"frame" : [FRAME],
"mocoFrame" : [MOCO FRAME],
"exposure" : [EXPOSURE],
"exposure" : "[EXPOSURE NAME]",
"stereoIndex" : [INDEX] }
Capture Complete { "event" : "captureComplete",
"production" : "[PRODUCTION]",
"scene" : "[SCENE]",
"take" : "[TAKE]",
"frame" : [FRAME],
"exposure" : [EXPOSURE],
"exposure" : "[EXPOSURE NAME]",
"stereoIndex" : [INDEX],
"imageFileName" : "[IMAGE FILE NAME]" }
Frame Complete { "event" : "frameComplete",
"production" : "[PRODUCTION]",
"scene" : "[SCENE]",
"take" : "[TAKE]",
"frame" : [FRAME],
"exposure" : [EXPOSURE],
"exposure" : "[EXPOSURE NAME]",
"stereoIndex" : [INDEX],
"imageFileName" : "[IMAGE FILE NAME]" }
View Frame { "event" : "viewFrame",
"frame" : [FRAME],
"exposure" : [EXPOSURE] }