Introduction
When creating pins and naming them, there are options that can help you make them more user-friendly. This document discusses the special pin naming options and their practical use.
You can create pins by exposing them in a compound or using a Pin Collector.
Special Naming Options
There are 4 special naming options when naming a pin:
Button names can create buttons, toggles, or drop-boxes on panels in the Control Board.
List names like Name List, Submod List, and Sm Seq List (Submod Sequence List) create drop-downs at the value of a pin. Based on the selected value (item) they can display additional pins.
Lists work both on the Control Board and in the Flow Editor.
This documentation will go through each of these options and detail how to use them.
Buttons
Buttons appear only on Control Board panels. You can create and add them to Control Boards using a Pin Collector or a Compound.
The Text determines the text that will be written over the button in the Control Board:
Trigger Button
Trigger buttons work with █ Trigger pin data type.
We could for example use such buttons to start playing back a video with a Video Player module:
This will make a button like this on the Control Board:
When pressing the button down, it will start playing the video.
On/Off Button
On/Off buttons work with █ Logical pin data type.
We could for example use such buttons to turn on or off a module:
These buttons have two states, Off and On:
Radio Button
Radio buttons work with █ Integer pin data type.
A Radio button is a line of buttons from which only one can be active at a time.
NOTE: You can add more pins with button names to the Pin Collector or Compound and this way have more than one button active on a panel. Or use the Bit Flags Button.
We could for example use such buttons to switch between different Zoom levels of a Camera:
NOTE: We set no text for the first button in the above example. This is because the first button will give back a 0 integer value and we don't want to use the 0 value in the above example. The return integer value is also displayed in the Value column. Leaving the text empty will not display any button for that value.
NOTE: The Switch Scalar module doesn't define switch scalars for the value 0, so it would give back a 0 Zoom Factor of the Camera module.
This will result in a line of buttons on the Control Board:
Add Buttons
It is possible to add, insert, and delete buttons using the + and x:
And changing the button's position by dragging them at their Value:
Bit Flags Button
Bit Flags buttons work with █ Integer pin data type.
Unlike Radio buttons Bit Flag buttons can have more than one button active.
Each button represents a bit, and their index starts from 1. The bit values are displayed in the Value column:
NOTE: Using the Bit Test module you can check one by one which button is active. The Bit Test module will return true when its Index pin is the same as an active Button's value.
The following active buttons will give back the integer value of 13 (1+4+8):
Video Button
Video buttons work with █ Integer pin data type.
A Video button is a line of buttons from which only one can be active at a time.
Video files can be dragged and dropped into Video buttons:
The Video buttons are automatically generated after each pin under the Video Button pin (#$Name,).
For this to happen, these pins must be connected to an input pin that defines a file's location:
Normal buttons added in the Video Button pin will appear before the actual Video buttons.
If you remove all normal buttons (x) and set no Text for the last button, then only the Video buttons will be visible.
The Video Button pin will give back values according to their order plus the value of the last normal button.
NOTE: In the above logic with the Switch Video Mini module, if there is one normal button before the Video buttons, then it will function as an OFF button, which will display no videos as it will return the value 0.
NOTE: You can also drag images into the Video buttons. Because Video pins also work as static image pins.
NOTE: You can actually use any module's file location defining pin, for example, you could use a Text File module and connect its Text File pin under a Video Button pin.
NOTE: You can also drag files from File Explorer applications into the Video buttons.
Add Gaps for Buttons
It is possible to space buttons out with the Gap column:
The above Gap values will leave 1 unit of space before the first button and 3 units of space before the second button:
NOTE: You can leave gaps like this between multiple Pins that use the button naming.
Add Icons for Buttons
Use the icon▼ to display icons on the buttons instead of text:
Here for example the Audio, Pause, Play, and Playing icons were used:
Additional user icon library folders can be added in the Compound Settings...
The library will be available in all Control Boards that reside in or below the compound.
We recommend using images in the 128x128 pixel resolution in PNG format.
Add Select Panel for Buttons
Select panel is a tricky way to associate buttons with different Control Board panels. It is also a way to force users to select panels.
When a button is pressed and its Select panel is the same as the name of a panel on the Control Board, then that panel is selected.
For example the following buttons' Select panels:
Will select the following Control Board panels when its button is pressed:
This is also how the keying MONITOR buttons in camera compounds work:
Lists
List pins appear both in Control Board and in the Flow Editor.
List pins work with █ Integer pin data type.
Name List
Name List is the simplest drop-down list.
You can add new items to the drop-down list using the + :
Unlike buttons, lists have their Values starting from 1.
So selecting Option 1 in this example will give back an integer value of 1:
Lists are not restricted to Control Boards or Pin Collectors. It is possible to add such pins to compounds:
Submod List
Submod Lists only work when the pin is exposed on a Compound.
NOTE: Just like any other node in the Flow Editor, Compounds can be added to Control Boards too.
Submod List pins make it possible to select between nodes within the compound and edit their input pin values. This makes it possible to only show the relevant pins to the selected setting, and hide pins that would be relevant when choosing a different setting.
NOTE: For example, the same type of pin name is used when selecting between keyers in the camera compound's Control Board. This makes it possible to only show the keyer settings for the type of keyer in use and not show keyer settings for other types of keyers. This compound can be found at [Common_Studio]:Compounds\Keyers\Keyer__All.xcomp.
In the following example compound, we can select between the 3 nodes (Copy Scalar, Keyer_CleanPlateGenerator, and Pin Collector) using the Name pin:
The compound contains the 3 nodes that we can select from, they are defined in the Submodule names:
Sm Seq List
Sm Seq List stands for Submod Sequence List. Sm Seq List pins work similarly to the Submod List. However, the Sm Seq List can also display the pins of the previous items in the list.
For example, when 3 is selected here, the Sequence Selector also displays the same pins as when 2 or 1 are selected:
Sm Seq List will make a list of nodes based on the Submodule prefix. Here "Mon 1", "Mon 2", and "Mon 3" compounds will be on the list as they all start with Mon and follow it with a number. The Amount column determines how many of these nodes are to be displayed:
NOTE: The items were not named in the above example so the Amounts are used as the item names.
NOTE: The node numbering after the Submodule prefix can not have gaps, for example, if there is no node with "Mon 2", just "Mon 1" and "Mon 3", then "Mon 3" won't be selected.
If you give -1 for Amount, then only the node with that exact item name will be selected. The Submodule prefix will be disregarded. And no other node's pins will be displayed. This is similar to how the normal Submod List works:
Unique Names
Each pin must have a unique name.
For example, below I cannot name a pin to "In" or "Video". As these names are already taken.
Even when renaming "Video", it must have a different Pin name than "Video". Otherwise, it will be marked with a red color:
In List names, the following field must be unique:
Commas cannot be used in special pin names, as they are used as markers in the Full Pin Names.
NOTE: You can rename pins by right-clicking on pins in the Flow Editor and choosing the Rename.. option. Or right-clicking on buttons in the Control Board and choosing the Modify... option.
Full Pin Names
Special Pin names generate a full Pin name which also defines all the buttons or list items:
This full Pin name is only used when you want to dynamically create a pin name with the Auto Pin Name module.