take

UI Components

Take Component

Description

This is a simple control to show take sources and destinations and provide take and undo events for another component to make routes. It doesn't make any routes itself.

There is "lock" inhibit - which disables the lock button when the destination is locked. Lock is simply a 0 or 1 in a slot directly corresponding to the destination number. When targeted with instance and index this control goes off and polls for the lock state.

Undo is only available immediately after pressing the take button and disables when the next index value is set.

Commands

Name | Use
instance | Instance of the device to take router names from
dest | The destination index - this is used to put the router dest name in the pre-select label
source | The source index - this is used to put the router source name in the pre-select label
lock_instance | The instance of the device to get lock information from

Notifications

Name | Use
take.= | when the take button is pressed
undo | when the undo button is pressed

Stylesheets

Name | Use
dest_selected | Shown on the dest pre-select tally when the destination is set
dest_deselected | When the destination is not set
source_selected | Shown on the source pre-select tally when the source is set
source_deselected | When the source is not set
takeBackground | Background to the take button
groupbox | background to the control
take_preset | Style of the source/dest names

Version History

Version | Notes
1.0.0.1 | First release from core
Build: trunk 4125 Atos © 2017


_template

UI Components

Example Component Documentation

This is a one liner to tell you concisely what it does, followed by an image to make it bleedin' obvious:
lock
If the image contains many items (to show the context you might use the component, then it should be highlighted as shown.

Commands

What things you can send to this control, whether they're runtime or design-time, whether mandatory or optional

Command | Mandatory | Notes
instance | Y | what to target this control at

Notifications

What this control can tell you

Notification | Notes
locked | 0=unlocked 1=locked

Stylesheets

What entries in the system-wide stylesheet this control needs.

Name | Runtime | Use
enum_unknown | Y | When a control is targeted but the value has not been returned from the device
dest_locked | Y | When the destination is locked (1)
dest_unlocked | Y | When the destination is not locked (0)

Customising the UI

what options are available to configure/modify/customise the UI (button naming conventions)

Database

How the component uses BNCS router databases

Object/workstation settings or other configuration

What other settings may be required to get this component configured

Version History

This is the master copy of the version history - KEEP IT UP TO DATE.

Perhaps also note where the component originated from.

Version history should be of the format:

<major change>.<feature change>.<bugfix>.<branch>
Version | Notes
1.0.1.0 | First release
1.0.2.0 | Important Bugfix


adjust

UI Components

Adjust Component

This is a simple control to take either name or index, determine if it's an "adjustable" thing (which means the name exists in "instances.xml" and there is a type handler in "typehandlers.xml" for that type of device)
You can supply either a name directly or three parameters index, instance and database to look up a router name.

Example
This example shows three adjust buttons on a router panel driven from source and destination selection

UI is just a single button that is enabled/disabled appropriately depending upon whether the name used is adjustable or not.
An adjustment name derived from BNCS databases when "index" parameter is supplied is split on # character so that the same instance can appear multiple times with context information appended.

e.g. in dev_xxx.db7

[Database_7]
...
0383=26/PROC001#1
0384=26/PROC001#2
...

both are treated as instance 26/PROC001

This control is optimised for use with connections.

Commands

instance

Instance of the device to take router names from

index

The index number indication the source or destination that this button will be assigned to
Index must have database and instance configured too

database

The source or destination index to retrieve the targeting information from

name

The instance of a device to be adjusted

This can be used without configuring instance/index/database

Notifications

None

Stylesheets

None used


audio_dest

Audio Destination Component

Description

This is a custom tally component to router mono, stereo or surround (5.1) audio where these are consecutive destinations on an infodriver-based router controller.

The image below shows 4 possible presentations for this control - though the exact layout is determined by the UI file loaded:

Tallies are shown as either normal state or mixed depending upon certain business rules defined elsewhere.
There are three possible modes for tally - single line for mono destinations, two line for stereo, 6 line for 5.1 and single line/double height for certain stereo routes.
Note: This control works with global destination numbers. The instance (and lock instance) supplied defined the base infodriver number from which the appropriate device number is calculated. In practice this is an easy calculation

device = base_device + ( global_dest / 4096 )
destination = global_dest % 4096

This control is optimised for use with UI "connections".

Commands

Name | Type | Use
instance | mandatory | Instance of the device to take router source names from The destination device is calculated by offset from this number (see above)
lock_instance | optional | The instance of the device to get lock information from. If it isn't supplied then the take button is always enabled with valid source/dest/take mode
global_dest=dest_index | mandatory | The destination index e.g. global_dest=57382
take. global_dest_index . mask = source_index | runtime | when the take button is pressed dest_index is optional and checked if present or ignored if not supplied mask is "how" to make the route for the given indices source_index is the source number e.g. take.57381.M-M=12345
undo |  | when the undo button is pressed
panel | mandatory | name of the ".bncs_ui" file to load (note that only the name is required - the ".bncs_ui" bit is not needed and should not be provided
initially_selected | optional | if true the dest button is created selected and the dest event is sent
selected= global_dest_index | runtime | Incoming notification of dest button selection changed. If the dest index matches ours then we'll show ourselves as selected. Otherwise we'll show ourselves as deselected. This is to allow for multiple dest controls working as a group.
default | runtime | Routes the default sources
defaultSourceList | optional | Comma delimited source list - this must contain exactly the right number of sources for the dest type (1 for mono, 2 for stereo and 6 for surround)

Notifications

Name | Use
global_dest= global_dest_index | notification this button has been selected and the current destination

Stylesheets

Name | Use
dest_selected | Shown on the dest pre-select tally when the destination is set
dest_deselected | When the destination is not set
groupbox | background to the control
tally_audio_normal | shown on the tallies if it's been determined this is in "normal" state
tally_audio_mixed | shown on the tallies if it's been determined this is in "mixed" state

Developers Notes

There are two sets of tally components - 2 x single height, and 1 double height. Both are written to but which is shown is determined by source/dest type and defined business rules.


audio_list

A layout configurable source or destination list component for use with mapping buttons on audio router panels.
Sorting can be alphabetical or by numeric index.

This component was originally developed with a namespace function which allows named grouping of sources or destinations. That functionality has been disabled in this version as it is not required.

Commands

Name | Type | Use
instance | Mandatory | Sets the instance of the router
DB_index | Mandatory | Sets the BNCS database number, 0 for sources and 1 for dests
DB_index_names | Mandatory | Sets the BNCS database number for names in the listbox
DB_index_areas | Unused | Not used
DB_audio_leg | Mandatory | Sets the BNCS database number for audio leg information
Listed_Namespaces | Unused | Not used
Selected_Namespace | Unused | Not used
Useable_Legs | Mandatory | A comma deliminated list of the audio legs that can be used in the selection
Show_Unused_Ports | Mandatory | If set to false then any source or destination with a blank database name (length of 0 or starts with "N_U_" or contains "---" or "!!!") will not show in the list
Alpha_Sorted | Mandatory | If set to true then the source or destination list will be ordered alphabetically otherwise in numerical index order
Silence_Index | Mandatory | Sets the index for silence
selected | Mandatory Nominal at runtime | Controls the selected index Valid options are "next", "previous" or "none" and will action that selection in the listbox

Commands

Name | Use
selected=next | Select the next item in the list
selected=previous | Select the previous item in the list
selected=none | Deselect the item in the list

Notifications

Name | Use
index=<Router Index> | currently selected index or 0 if nothing is selected

Developer Notes

Timers are used after values are set to allow the component to load correctly with all parameters present


audio_lock

UI Components

Audio_Lock Component

Description

This is a simple control to set and show the audio lock state.

The control takes base instance, the base lock instance and global index and displays the current audio_lock state (using the stylesheet entries below). On pressing the button on this control the audio_lock state is toggled.

The control understands audio levels and will display locked if any of the audio slots is locked on sending unlock will set all audio slots to unlocked

Commands

Name | Use
instance | Base Audio Instance
lock_instance | Base Audio Lock Instance
index | The global index of on the audio_lock

Notifications

None

Stylesheets

Name | Use
enum_unknown | When a control is targeted but the value has not been returned from the device
dest_locked | When the destination is locked (1)
dest_unlocked | When the destination is not locked (0)


audio_take

Audio Take Component

Description

This is a custom take component to route mono, stereo or surround (5.1) audio.

This actually uses age-old BNCS principles of "route with mask" where the mask defines how the route should be made. You'll see various references to "mask" in the code for this reason.

This is the default presentation (with source and destination values having been set to "5.1" sources.

...and this a sample set of "Take Special" options:

This control uses router databases to determine whether a source/destination is mono, stereo, 5.1 or 7/8.

This control does not make routes itself, but it does provide a "take" event for other controls to make routes.

Note: This control works with global destination numbers. The instance (and lock instance) supplied defined the base infodriver number from which the appropriate device number is calculated. In practice this is an easy calculation

device = base_device + ( global_dest / 4096 );
destination = global_dest % 4096

This control is optimised for use with UI "connections".

Commands

Name | Type | Use
instance | mandatory | Instance of the device to take router source names from This is also used to determine the destination device which is calculated as above
lock_instance | optional | The base instance of the device to get lock information from. If it isn't supplied then the take button is always enabled with valid source/dest/take mode. This isn't an absolute device - device number is determined by the current destination
global_dest | runtime | The global destination index - this is used to put the router dest name in the pre-select label
source | runtime | The source index - this is used to put the router source name in the pre-select label

Notifications

Name | Use
take.<global_dest_index.= | when the take button is pressed is the global dest index is "how" to make the route for the given indices is the source index
undo | when the undo button is pressed

Stylesheets

Name | Use
dest_selected | Shown on the dest pre-select tally when the destination is set
dest_deselected | When the destination is not set
source_selected | Shown on the source pre-select tally when the source is set
source_deselected | When the source is not set
takeBackground | Background to the take button
groupbox | background to the control

Developers Notes

Internally the control makes consistent use of the "mask" - so that the value passed as "mask" is also the name of the buttons on the popup window.


axonIdentity

UI Components

Axon Identity Component

Description

This is a read only display of the common identification parameters for any Axon Synapse card.

The image below shows an example of the component in use:

The component displays the following fields:

  • Card Name - as reported by the "Card name" parameter
  • Card Description - as reported by the "Card description" parameter
  • Software Revision - as reported by the "Software rev" parameter
  • Hardware Revision - as reported by the "Hardware rev" parameter
  • Serial Number - as reported by the "Serial number" parameter
  • User Label - as reported by the "User label" parameter
  • BNCS Comms - displays current comms status (OK or Fail)
  • Location - displays the location attribute of the card instance to which the component has been targeted

This control is optimised for use with UI "connections".

Commands

Name | Type | Use
instance | mandatory | Instance of the device to be shown

Notifications

None

Stylesheets

Name | Use
paramlabel | style for parameter name labels
groupbox | background to the control
enum_alarm | shown on the BNCS Comms labels in "Fail" state
enum_ok | shown on the BNCS Comms labels in "OK" state

Developers Notes

All parameters should be present in the devicetype.xml file for each Axon Synapse card.


checklist

UI Components

Component Publication Checklist

This is something you should run though when publishing a component:

  • a terse one-line description
  • a screenshot
  • a fundamental type (UI building, custom popup editor, hidden)
  • commands: whether design or runtime
  • events
  • what BNCS databases are used
  • what object/workstation settings are required
  • what instances/types
  • what options are available to configure/modify/customise the UI (button naming conventions)
  • #pragma message about not using modified versions of core_components (but feel free to copy and mod)
  • add "Core: " header to the description (the FileDescription in the version resources).
  • correct company name, no colledia references, correct copyright
  • a version history (and perhaps note where they originate from)
  • an entry in an index or sampler page
  • breadcrumbs linked at top of page to system root (the top level doc), section root (e.g. panels\core_components\index.html)


globalxy

UI Components

Global XY

A list box style X/Y panel

  • Sources and destinations can be sorted alpha or index
  • Sources and destinations can be addressed by entry of their index number
  • Route is actioned by a double press of the take button
  • There is also an undo facility

Modifications

This panel has been slimmed down from its original incarnation.
It was originally designed to handle up to 3 routers and switch between them 'in panel'. This feature has been deprecated by removing the switching buttons but the config arrangement and code remains.
The rename source/dest buttons have been dragged to one side as this feature is also not relevant. Subsequent popup panels triggered by this (keyboards/rename) are therefore also not used.

Commands

Name | Type | Use
instance | Mandatory | Sets the instance of the router as the index within "router_list" to maintain compatability set to the instance of the router
router_list | Mandatory | List of router instances to be used With this component, only the first instance is valid to maintain compatability set to the instance of the router
return | Mandatory | Persistant settings return

How to use

To use this component create a blank bncs_ui file, slap a "script" control on it and point it at this globalxy component. Then set the router_list to the instance of the router to use


index

UI Components

Audio Routing Components - Overview

These follow pretty simple rules. Simply that an audio destination is not a single router destination but six sequential destinations that may be routed in parallel to make a 5.1.

A coherent route is where the six elements of a source match the six tallies of a destination.

Ports are configured using database 6 and 7 using the following convention:

Entry | Use
L | Left
R | Right
M | Mono
1 2 3 4 5 6 | Surround

For example:

[Database_7]
0017=L
0018=R
0019=L
0020=R
0021=M
0022=M
0023=M
0024=M
0025=1
0026=2
0027=3
0028=4

The audio components make allowances for incompatible source/destination types.

These components were written assuming a very large router spanning multiple BNCS infodriver devices - i.e. dests 1 to 4096 are on the first device, dest 4097 is dest 1 on a second device etc. etc.

Component | Description
Audio Take | Audio Take Button
Audio Dest | Audio Destination Button
Audio List | Audio List Control
Audio Lock | Audio Lock Button


lock

UI Components

Lock Component

This is a simple control to set and show lock.
lock

The control takes instance and index and displays the current lock state (using the stylesheet entries below). On pressing the button on this control the lock state is toggled. "Locked" state simply means an infodriver slot with a 0 or 1 in it.

Commands

Name | Use
instance | Normal instance targeting
index | The index on the lock device

Notifications

None

Stylesheets

Name | Use
enum_unknown | When a control is targeted but the value has not been returned from the device
dest_locked | When the destination is locked (1)
dest_unlocked | When the destination is not locked (0)


router_dest

UI Components

Router Dest

Description

This component has a button and optional monitor image for selecting sources to its assigned destination.

Commands

Name | Type | Use
instance | mandatory | Instance information - this will be resolved to a device number in order to load the names
dest_database | manadatory | Which BNCS router database to load
dest_instance_database | designtime |
dest_index | mandatory | The destination to be routed to when this button and a source is selected
default_source | designtime | Used by the route_default command
Alias | optional | Design time alternative that overrides the router destination name put on the button
tally_database | optional | Comma delimited list of databases to use for the tally. Multiple entries are concatenated with a dash between them
initially_selected | optional | Causes a host notification when true
select.<instance>=<dest> | runtime | Set the selected state if we are configured for the specified dest. Instance is optional and is checked if provided
take.<instance> | runtime | Make the route for the previously defined source/dest. Instance is optional and is checked if provided
undo | runtime | Undo the last route made

Notifications

Name | Use
selected.<instance>=<index> | Current selection
locked=<lock_state> | 0 = unlocked 1 = locked derived from lock infodriver status
dest_index=<index> | Notification of index on change of dest instance (or on startup)
instance=<index> | Notification of instance on change of dest instance (or on startup)

Stylesheets

This component uses the following hopefully fairly self-explanatory stylesheet entries:

Entry
dest_selected
dest_deselected
dest_locked
dest_unlocked


router_pti

UI Components

Router PTI Component

Description

This is a router PTI component to show which destinations the selected source is currently routed to.
When the PTI button on the router panel is pressed a popup dialog shows the index and name of the selected source and a list of destinations to which the source is routed:

The listview can be sorted in Index or Name order by pressing on the column headers.
If the current source is replaced by another source on a destination that is in the list while the list is visible the item will be removed from the list. Similarly if the source is routed to a new destination while the list is visible this new destination will be added to the list.
If a destination is a wrapped resource (i.e. it's output is re-presented back on to the matrix as a source, then the PTI? column will contain a "Y", otheriwse an "N". If the column contains "Y", then clicking anywhere on that row will re-target the PTI component with the index of the wrapped resource output, thereby facilitating a step by step forward trace.
If the component is given the design-time parameter of a packager instance, then it will display additional information about which Source Packages the SDI source index is used in. Each Package will appear on a seperate row, with the hard and soft names displayed, along with a PTI count of Source Package usage

This control is optimised for use with UI "connections".

Commands

Name | Type | Use
instance | mandatory | Instance of the router device to register for crosspoint changes
source= | run-time method | The source index e.g. source=38
packager_instance | optional | Controls the appearance of the popup panel (as above). If instance is invalid (or blank), then the plain PTI popup will display

Notifications

There are no notifications from this component.

Stylesheets

Name | Use
groupbox | used on the main group of the popup to show the index and name of the source
listbox_default | used by the listview control to show the list of destinations

Developers Notes

The PTI button is a single control that fills the main layout of the component and the stretch option can be used to change the size of the button as required.

The forward trace uses the dest adjust database (7) to calculate the instance name of a corresponding source. It supports multi-output devices e.g. 32/SHUF005#1 by stripping the #1.