Setup Your Folders

Make a Folder for your Controller

Pre-installed controllers live in these folders:

  • On Windows: C:\Program Files\NewBlueFX\Titler Content\Resources\Service Handlers\HTML

  • On Mac: /Library/Application Support/NewBlue/Titler Content/Resources/Service Handlers/HTML

You may inspect our pre-installed controllers there and you can put your own controller folder there, but you can also install your controller folder in one of our “Shared” controller locations:

  • On Windows: C:/ProgramData/NewBlue/LiveEngine/DataControllers

  • On Mac: /Users/Shared/NewBlue/LiveEngine/DataControllers

If the same controller is defined in both locations, the one with the higher version attribute will be preferred.

Navigate to one of the controller folders and create a new folder. The folder name will determine where your inputs show up in the Data Controller menu in Captivate. In this example, Scoreboard Tool is the name of the folder and Baseball, Football, etc. are the names of the inputs defined by that controller.

There can be many input definitions for each controller, each one defined by a different XML file in that folder.

Understand the Controller File Structure

A controller can have multiple inputs. Each input is defined by an XML file in your controller’s folder. The XML document will define the input’s name and metadata, its initial variables along with their types and formats, and most importantly, the url to the HTML page where the user interface and JavaScript code lives.

Captivate reads all controller XML files only once when it launches, so even though you can change the HTML and Javascript anytime, if you change what’s in the XML file, you will need to restart Captivate to see the changes.

With your controller, you should also supply an icon. This icon should be identified in the XML file and should live right next to it in the file system. The icon will be displayed in Captivate next to the name of this input whenever it is used.

If the HTML file is to be served by Captivate’s built-in server, then it should be placed, with all related files, in the same folder as the XML definition. It could also be placed in a subfolder of that folder. These files will be hosted by the built-in web server and will be displayed in an embedded browser in the Captivate program.

Alternatively, you can host your Controller files anywhere on your local network or even on the public Internet. Just make sure your XML file accurately describes the url to the main HTML page for your input.

Note: The Captivate web server operates over insecure HTTP, but Captivate displays controllers using a modern browser engine with most security features enabled. As a result, any JavaScript features that require a secure context (e.g. web workers, javascript modules) will not be available to you when you are using the built-in web server.

Here is the simplest file structure for a controller named My Controller.

C:/ProgramData/NewBlue/LiveEngine/DataControllers/
    My Controller/
        controller.xml
        controller.html
        controller_icon.png

Only the xml file and the png file need to go in the main controller folder. You can put the html file and other assets in any subfolder structure you want. For exmample:

C:/ProgramData/NewBlue/LiveEngine/DataControllers/
    My Controller/
        controller.xml
        controller_icon.png
        controller/
            controller.html
            images/
                other_image.png
            css/
                style.css
            js/
                app.js

Last updated