IGO Scripting
Flexibility
The power of IGO scripting combined with it's flexible event model makes for an extremely powerful system. Lets take a look at a couple of examples of IGO in action:
Creating, stacking and transmission
This example is taken from the IGO implementation that drives the BBC's Chancellors Budget coverage. The editorial team need to get budget headlines to air as quickly and as accurately as possible, and then have the option of using the same copy in summary graphics later in the program.
As the Chancellor makes his budget statement, a journalist keys in the salient points.
Note the red guides which indicate how much screen "real-estate" is available for text, and the pick list of templated text for swift input.
The moment the graphic is saved, script in the "onAfterSaveGraphic" handler automatically stacks the graphic in the headlines transmission stack.
Note the in-place editor in the stack - the transmission operator is able to correct any typos just seconds before the graphic goes to air.
Net result? We have the graphic on air in seconds, with full editorial control over every stage.
But there's more - in addition to stacking the headline graphic, the onAfterSaveGraphic script automatically creates a new version of the same graphic, this time to be run as part of a summary crawl later in the program.
And the copy is also instantly available for incorporation into full form summary graphics!
Graphics from wires feeds
Here we respond to the "onCreateData" event, which occurs when an XML message is received by the IGODataLink component.
We inspect the content of the message (using the high-level XML parsing functions within the IGO binary), and if it's a message that we are interested in, we can opt to save it in an "IGOData" object. Saving the object fires the "onBeforeSaveData" event, and it's here that we parse and calculate the properties that we are interested in for easy access later. The "onAfterSaveData" event then fires - this gives us an opportunity to create a graphic object (which associates an IGOData instance with a pre-defined template).
If required, we can then respond to the "onAfterSaveGraphic" event to autostack the graphic and use the IGO AutoRun stack to output the graphic straight to air.