Customizing the fmw.json File
Background
The starter kit includes the core framework as well as various applications. These applications can be used by different broadcasters for test and integration purposes.
A file called index.html acts as the starting point for the framework initiation. This file can be found at the following location:
/public/run3tv-common/index.html
Linked to this index.html file is another file called fmw.json. This file can be found at the following location:
/public/run3tv-common/conf/fmw.json
fmw.json file acts as the core configuration file for the framework. Below is an example of the default fmw.json file provided in the Starter Kit.
{
"ampPoster": "data:image/png;base64,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",
"vid": "vid",
"iot": ["ArrowLeft", "ArrowLeft", "ArrowLeft", "ArrowUp", "ArrowUp"],
"iotOld": true,
"debug": ["ArrowLeft", "ArrowLeft", "ArrowDown", "ArrowDown", "ArrowDown"],
"gtag-debug": false,
"console": {
"nav": "nav",
"log": "log",
"max": 1000,
"pin": ["ArrowLeft", "ArrowLeft", "ArrowLeft", "ArrowDown", "ArrowDown"],
"show": false
},
"app": {
"open": true,
"wsPath": "atscCmd",
"dynamic": {
"iframe": "ifr",
"delay": 1,
"bridge": "/bridge-conf/1.0/bridge.json",
"exception": {
"appRoot": "apps",
"appEntry": "/run3tv-exception.html",
"appVersion": "1.0.0",
"appId": "G-LG9QZ89357",
"properties": {
"ga-id": "G-LG9QZ89357"
}
}
}
},
"popUp": {
"element": "pop",
"popStyle": {
"pop": "font-size: x-large;display: none;background-color: #ddd;background-color: rgba(221,221,221,0.9);position: fixed;top: 40%;width: 30%;height: 20%;border: 1px solid black;",
"img": "display: inline;margin-top: 20px;margin-left: 20px;height: 80px;",
"title": "color: white;padding: 6px;padding-left: 14px;background-color: #737373;border-bottom: 1px solid black;",
"txt": "display: inline;position: absolute;margin-top: 18px;margin-left: 14px;",
"btn": "position: absolute;right: 20px;bottom: 20px;",
"button": "right: 10px;margin-left: 10px;font-size: x-large;",
"code": "position: absolute;left: 20px;bottom: 20px;"
}
},
"msg": "conf/msg.json",
"dtz": "conf/dtz.json",
"token": "2ZxqUgCmUJMfHkg9LjFpZmQ4TFSeGk7uCuYwqEXumJUDkgAqngQxxqtaxRBaXRuLK49qmUz8i8o7KdM1x8DXmrMW.6bDXSe9fzuNZPwN58roGkRBdLAnBPsko9YXMs3MW"
}
Explanation of individual parameters
Let us now look at various properties that are defined and used within this fmw.json file.
"ampPoster"
This is a placeholder image with a black background and a LOADING message. This image appears when user attempts to play any VOD video. This placeholder image is displayed while the video content is being fetched. The image is Base64 encoded and can be replaced by Broadcasters wishing to display a different placeholder image.
“vid”
This property is the element ID for the amp video. The actual object is defined in index.html file (See line 24 in index.html file)
“iot”
This property defines the key sequence that is used for displaying ioT client ID on the screen. This key press sequence can be modified if needed.
”debug”
This property defines the key sequence that is used for displaying special debug messages. These notification messages are for development purposes only and are used by Yotta during test and integration activities.
“gtag-debug”
The value of this property is set to FALSE by default. If set to TRUE, any data pushed back to GA data layer will be marked with ‘DEBUG’ label.
“console”
This property defines the key sequence that is used for displaying console on the screen. This key press sequence can be modified if needed. Users of framework may have already noticed a green console which is overlaid on live video. This console displays various messages in real time.
“app”
“open”
When the framework initiates and this property is set to true, it will enable / open the web socket.
“wsPath”
This property defines the path to the web socket.
“dynamic”
“iframe”
There are two layers defined in the framework. The top layer is where the framework runs and second layer is where the application is displayed.
This property is the actual element ID of the i-frame itself. (See line 25 in index.html file)
“delay”
This property defines the time delay when moving from one application to another. The default value is set to 1 second.
“bridge”
This property points to the actual bridge file to be used by the framework. It is possible to create another bridge file for test and integration purposes. This test bridge file can then be used by defining its location under this property.
“exception”
This property defines the configuration of the actual EXCEPTION application. Although all application are generally defined and contained within appsList.json file, the EXCEPTION application is a special case. This is because if appsList.json file is corrupt or missing, the framework then needs to be able to use this EXCEPTION application in order to display any relevant on-screen notifications.
“popUp”
“popStyle”
This property defines the styling of the on-screen notification / message window.
“msg”
This property points to the top level messages which are part of the framework. It should be noted that there are also secondary level messages linked to individual applications. The location of those secondary level messages is defined for each application within appsList.json file
“dtz”
This property points to the date / timezone information file used by the framework.
“token”
This property contains a combination of signature and message pair. The information contained in this property can be used for identifying individual Broadcasters. This feature is intended to be deployed in future and will allow better visibility of the framework and any applications running on it.