License, Copyright, and Trademark
The content contained in this repository is the intellectual property of Snap One, LLC, (formerly known as Wirepath Home Systems, LLC), and use without a valid license from Snap One is strictly prohibited. The user of this repository shall keep all content contained herein confidential and shall protect this content in whole or in part from disclosure to any and all third parties except as specifically authorized in writing by Snap One.
License and Intellectual Property Disclaimer
The content in this repository is provided in connection with Snap One products. No license, express or implied, by estoppal or otherwise, to any intellectual property rights is granted by this document or in this repository. Except as provided in Snap Oneʼs terms and conditions for the license of such products, Snap One and its affiliates assume no liability whatsoever and disclaim any express or implied warranty, relating to the sale and/or use of Snap One products including liability or warranties relating to fitness for a particular purpose, merchantability, or infringement of any patent, copyright or other intellectual property right. Snap One products are not intended for use in medical, lifesaving, or life sustaining applications.
Information regarding third-party products is provided solely for educational purposes. Snap One is not responsible for the performance or support of third-party products and does not make any representations or warranties whatsoever regarding the quality, reliability, functionality or compatibility of these products. The reader is advised that third parties can have intellectual property rights that can be relevant to this repository and the technologies discussed herein, and is advised to seek the advice of competent legal counsel regarding the intellectual property rights of third parties, without obligation of Snap One.
Snap One retains the right make changes to this repository or related product specifications and descriptions in this repository, at any time, without notice. Snap One makes no warranty for the use of this repository and assumes no responsibility for any errors that can appear in the repository nor does it make a commitment to update the content contained herein.
Copyright
Copyright 2024 Snap One, LLC. All rights reserved.
The above copyright notice applies to all content in this repository unless otherwise stated explicitly herein that a third-party’s copyright applies.
No part of this publication may be reproduced, photocopied, stored on a retrieval system, or transmitted without the express written consent of the publisher.
Trademarks
Snap One and Snap One Logo, Control4 and the Control4 logo, and DriverWorks are trademarks or registered trademarks of Snap One, LLC. Other product and company names mentioned in this repository may be the trademarks or registered trademarks of their respective owners.
Derivative Works
To the extent that you create any “Derivative Work” (meaning any work that is based upon one or more preexisting versions of the work provided to you in this repository, such as an enhancement or modification, revision, translation, abridgement, condensation, expansion, collection, compilation or any other form in which such preexisting works may be recast, modified, transformed or adapted, explicitly including without limitation, any updates or changes to Snap One, LLC’s software code or intellectual property) such Derivative Work shall be owned by Snap One, LLC and all right, title and interest in and to each such Derivative Work shall automatically vest in Snap One, LLC. To the extent any Derivative Work does not automatically vest in Snap One, LLC by operation of law, you hereby assign such Derivative Work to Snap One, LLC with full title guarantee. Snap One, LLC shall have no obligation to grant you any right in any such Derivative Work.
Contact Us
Snap One, LLC 11734 S. Election Road Salt Lake City, UT 84020 USA
Introduction
This documentation includes content that details the functions that make up the Audio/Video Switch Control Proxy which is supported in the DriverWorks Software Development Kit.
Proxies (Commands)
A proxy driver is an interface to the Control4 system for a set of devices that share common functionality. For instance, most AV Switches have common controls such as SET INPUT, DISCONNECT OUTPUT and LOUDNESS ON. The audio video switch proxy allows for a common user interface to control all AV Switches. The Control4 system (Director) sends information to and receives information from the proxy drivers. The proxy drivers send information to and receives information from the protocol drivers. Remember, your DriverWorks driver interacts with the proxy driver which then interacts with the system. As a driver developer you will be relying on this proxy to provide status (notification) to the Control4 system for the device you are controlling. You will also receive commands from the system that you will act on to control the device. These commands and notifications are at the heart of what you will be implementing in your driver. Essentially your driver is becoming the go-between from the Control4 system and your device with the proxy driver giving structure to the commands and notifications which you will be implementing. Your driver can facilitate communications with multiple types of proxies for a single device. As an example, a Security System driver will utilize both the Security proxy and the Contacts proxy. These additional proxies are configured in the <connections> section of the .c4z.
Protocol (Notifications)
Two similar devices may have the same functionality but utilize a very different command set. A protocol driver provides the device-specific information needed to communicate with the Control4 system. In the case of DriverWorks, the DriverWorks driver is the protocol driver. When combined with the device-specific.c4Z file it provides the custom code necessary to implement the 2-way device driver. In the case of DriverWorks, the DriverWorks driver is the protocol driver. When combined with the device-specific.c4Z file it provides the custom code necessary to implement the 2-way device driver.
What’s New
What’s New in 3.4.2
There were no modifications to the AV Switch Proxy in conjunction with O.S. Release 3.4.2.
What’s New in 3.4.1
There were no modifications to the AV Switch Proxy in conjunction with O.S. Release 3.4.2.
What’s New in 3.4.0
There were no modifications to the AV Switch Proxy in conjunction with O.S. Release 3.4.0.
What’s New in 3.3.2
There were no modifications to the AV Switch Proxy in conjunction with O.S. Release 3.3.2.
What’s New in 3.3.1
There were no modifications to the AV Switch Proxy in conjunction with O.S. Release 3.3.1.
What’s New in 3.3.0
There were no modifications to the AV Switch Proxy in conjunction with O.S. Release 3.3.0.
What’s New in 3.2.3
Audio Equalization available on Navigators
The AV Switch Proxy have been enhanced to support the ability to display audio EQ functions on devices running Navigator. The enhancement includes a set of new Proxy Commands, Notifications and Capabilities to support this functionality.
What’s New in 3.2.2
There were no modifications to the AV Switch Proxy in conjunction with O.S. Release 3.2.2.
What’s New in 3.2.1
There were no modifications to the AV Switch Proxy in conjunction with O.S. Release 3.2.1
What’s New in 3.2.0
There were no modifications to the AV Switch Proxy in conjunction with O.S. Release 3.2.0.
What was New in 3.1.2
There were no modifications to the AV Switch Proxy in conjunction with O.S. Release 3.1.2.
What was New in 3.1.0
There were no modifications to the AV Switch Proxy in conjunction with O.S. Release 3.1.0.
What was New in O.S.3
There were no modifications to the AV Switch Proxy in conjunction with O.S. Release 3.0.0.
Audio Video Switch Capabilities
audio_consumer_count
Count of number of audio consumers (inputs) of the device. This value must match the number of connections in the driver.
Signature
<audio_consumer_count></audio_consumer_count>
Parameter | Description |
---|---|
int | Number of audio consumers. |
Example
<capabilities>
<audio_consumer_count>8</audio_consumer_count>
</capabilities>
audio_provider_count
Count of number of audio providers (outputs) of the device. This value must match the number of connections in the driver.
Signature
<audio_provider_count></audio_provider_count>
Parameter | Description |
---|---|
int | Number of audio providers. |
Example
<capabilities>
<audio_provider_count>8</audio_provider_count>
</capabilities>
can_ downclass
Specifies if the A/V switch can down convert. For example: S-Video -> Composite
Signature
<can_downclass></can_downclass>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<can_downclass>true</can_downclass>
</capabilities>
can_switch_separately
Device specific capability that must be set to True to in order for an AV Switch’s Composer Pro interface reflecting independent audio and video signal switching.
Signature
<can_switch_separately></can_switch_separately>
Parameter | Description |
---|---|
bool | True/False |
Usage Note
This capability is not related with the requires separate switching capability. A setting of True or False will have no impact on requires separate switching.
Example
<capabilities>
<can_switch_separately>true</can_switch_separately>
</capabilities>
can_upclass
Specifies if the A/V switch can up convert. For example: Composite -> S-Video
Signature
<can_upclass></can_upclass>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<can_upclass>true</can_upclass>
</capabilities>
has_audio_signal_sense
Specifies AV switching is capable of sensing audio on an input. This is useful in triggering programming in ComposerPro based on the this setting.
Signature
<has_audio_signal_sense></has_audio_signal_sense>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_audio_signal_sense>true</has_audio_signal_sense>
</capabilities>
has_ discrete_balance_control
Capable of directly specifying a balance setting.
Signature
<has_discrete_balance_control></has_discrete_balance_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_balance_control>true</has_discrete_balance_control>
</capabilities>
has_discrete_bass_control
Capable of directly specifying a bass setting.
Signature
<has_discrete_bass_control></has_discrete_bass_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_bass_control>true</has_discrete_bass_control>
</capabilities>
has_discrete_loudness_control
Capable of directly specifying a loudness setting.
Signature
<has_discrete_loudness_control></has_discrete_loudness_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_loudness_control>true</has_discrete_loudness_control>
</capabilities>
has_discrete_mute_control
Capable of directly specifying mute ON or OFF setting.
Signature
<has_discrete_ mute_control></has_discrete_ mute_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_mute_control>true</has_discrete_mute_control>
</capabilities>
has_discrete_treble_control
Capable of directly specifying a treble setting.
Signature
<has_discrete_treble_control></has_discrete_treble_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_treble_control>true</has_discrete_treble_control>
</capabilities>
has_discrete_volume_control
Capable of directly specifying a volume setting.
Signature
<has_discrete_volume_control></has_discrete_volume_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_volume_control>true</has_discrete_volume_control>
</capabilities>
has_discrete_loudness_control
Capable of handling ON/OFF loudness control.
Signature
<has_discrete_loudness_control></has_discrete_loudness_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_loudness_control>true</has_discrete_loudness_control>
</capabilities>
has_toggle_mute_control
Capable of handling ON/OFF mute control.
Signature
<has_toggle_mute_control></has_toggle_mute_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_toggle_mute_control>true</has_toggle_mute_control>
</capabilities>
has_up_down_balance_control
Capable of directly specifying a balance setting.
Signature
<has_up_down_balance_control></has_up_down_balance_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_balance_control>true</has_up_down_balance_control>
</capabilities>
has_up_down_bass_control
Capable of directly specifying a bass setting.
Signature
<has_up_down_bass_control></has_up_down_bass_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_bass_control>true</has_up_down_bass_control>
</capabilities>
has_up_down_treble_control
Capable of directly specifying a treble setting.
Signature
<has_up_down_treble_control></has_up_down_treble_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_treble_control>true</has_up_down_treble_control>
</capabilities>
has_up_down_volume_control
Has capability of handling volume UP and DOWN adjustments.
Signature
<has_up_down_volume_control></has_up_down_volume_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_volume_control>true</has_up_down_volume_control>
</capabilities>
has_video_signal_sense
Specifies AV switching is capable of sensing video on an input. This is useful in triggering programming in ComposerPro based on the this setting.
Signature
<has_video_signal_sense></has_video_signal_sense>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_video_signal_sense>true</has_video_signal_sense>
</capabilities>
requires_ separate_switching
Device specific capability that when set to True notifies Director of the existence of individual audio and video paths. This capability has no impact on Composer Pro user interface. For that reason, when set to True it is recommended that the capability can switch separately be set to True as well.
Signature
<requires_separate_switching></requires_separate_switching>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<requires_separate_switching>true</requires_separate_switching>
</capabilities>
video_consumer_count
Count of number of video consumers (inputs) of the device. This value must match the number of connections in the driver.
Signature
<video_consumer_count></video_consumer_count>
Parameter | Description |
---|---|
int | Number of video consumers. |
Example
<capabilities>
<video_consumer_count>8</video_consumer_count>
</capabilities>
video_provider_count
Count of number of video providers (outputs) of the device. This value must match the number of connections in the driver.
Signature
<video_provider_count></video_provider_count>
Parameter | Description |
---|---|
int | Number of audio providers. |
Example
<capabilities>
<video_provider_count>8</video_provider_count>
</capabilities>
Audio Video Switch Protocol Notifications
AUDIO_PARAMETER_CHANGED
Audio parameter has changed
Name
AUDIO_PARAMETER_CHANGED ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output Binding ID |
Returns
None
BALANCE_LEVEL_CHANGED
Selected balance level has changed.
Name
BALANCE_LEVEL_CHANGED ()
Parameter | Type | Description |
---|---|---|
LEVEL | INT | Level |
OUTPUT | INT | Output Binding ID |
Returns
None
BASS_LEVEL_CHANGED
Selected bass level has changed
Name
BASS_LEVEL_CHANGED ()
Parameter | Type | Description |
---|---|---|
LEVEL | INT | Level |
OUTPUT | INT | Output Binding ID |
Returns
None
INPUT_OUTPUT_CHANGED
Selected inputs & outputs have changed.
Name
INPUT_OUTPUT_CHANGED ()
Parameter | Type | Description |
---|---|---|
INPUT | INT | Input Binding ID |
OUTPUT | INT | Output Binding ID |
Returns
None
LOUDNESS_CHANGED
Loudness state (On/Off) has changed.
Name
LOUDNESS_CHANGED ()
Parameter | Type | Description |
---|---|---|
LOUDNESS | BOOL | True/False |
OUTPUT | INT | Indicates a change in loudness for the specified output binding ID. |
Returns
None
MUTE_CHANGED
MUTE state (On/Off) has changed.
Name
MUTE_CHANGED ()
Parameter | Type | Description |
---|---|---|
MUTE | BOOL | True/False |
OUTPUT | INT | Indicates a change in mute state for the specified output binding ID. |
Returns
None
OFF
Device has turned off.
Name
OFF ()
Parameter
None
Returns
None
ON
Device has turned on.
Name
ON ()
Parameter
None
Returns
None
TREBLE_LEVEL_CHANGED
Selected treble level has changed.
Name
TREBLE_LEVEL_CHANGED ()
Parameter | Type | Description |
---|---|---|
LEVEL | INT | Level |
OUTPUT | INT | Output Binding ID |
Returns
None
VOLUME_LEVEL_CHANGED
Selected volume level has changed.
Name
VOLUME_LEVEL_CHANGED ()
Parameter | Type | Description |
---|---|---|
LEVEL | INT | Level |
OUTPUT | INT | Output Binding ID |
Returns
None
Audio Video Switch Navigator EQ
Introduction
The ability to display audio equalization controls on devices running Navigator was added in conjunction with Operating System 3.2.3. Currently, the only Proxies that support Navigator EQ controls are the Amplifier and AV Switch Proxies.
The majority of the of the commands, notifications and capabilities defined here must be implemented in your driver to display EQ controls. Several commands are optional including SET_AUDIOMODE_BYPASS, SET_AUDIOMODE_EQ and SET_AUDIOMODE_TONECONTROL as these have been included to suspect legacy Audio Matrix Switches.
Note that this functionality is disabled by default. The HIDE EQ FROM NAVS CHANGED notification must be sent with a value of False to enable the EQ functionality in Navigator.
Navigator EQ Proxy Commands
LOUDNESS_OFF
Navigator EQ command called to set the loudness off for indicated output. The driver should notify proxy with the LOUDNESS_CHANGED notification of the new value.
Name
LOUDNESS_OFF
Parameter | Description | Description |
---|---|---|
OutputBindingID | INT | Output Binding ID |
Returns
None
LOUDNESS_ON
Navigator EQ command called to set the loudness on for indicated output. The driver should notify proxy with the LOUDNESS_CHANGED notification of the new value.
Name
LOUDNESS_ON
Parameter | Description | Description |
---|---|---|
OutputBindingID | INT | Output Binding ID |
Returns
None
SET_AUDIOMODE_BYPASS
Navigator EQ command called to change the output's mode to BYPASS. This is an optional command and should be used only if your device needs to switch modes.
Name
SET_AUDIOMODE_BYPASS
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
Returns
None
SET_AUDIOMODE_EQ
Navigator EQ command called to change the output's mode to EQUALIZER. This is an optional command and should be used only if your device needs to switch modes.
Name
SET_AUDIOMODE_EQ
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
Returns
None
SET_AUDIOMODE_TONECONTROL
Navigator EQ command called to change the output's mode to TONE_CONTROL. This is an optional command and should be used only if your device needs to switch modes.
Name
SET_AUDIOMODE_TONECONTROL
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
Returns
None
SAVE_EQ_TO_CUSTOM_PRESET
Navigator EQ command called to save the current EQ values to a custom preset with a name. The driver should notify proxy with the EQ_NAMES_CHANGED notification with the updated name.
Name
SAVE_EQ_TO_CUSTOM_PRESET
Parameter | Type | Description |
---|---|---|
INT | Zero based custom preset index value used to save the custom preset. The index range is from 0 to the number of custom presets defined in the <eq_preset_nav_count> capability, minus one due to the range being zero-based. |
|
STR | Name for the new custom index. Base64 encoded. | |
OutputBindingID | INT | OutputBindingID |
Returns
None
SET_BASS_LEVEL
Navigator EQ command called to set the bass level for tone control. The driver should notify proxy with the BASS_LEVEL_CHANGED notification of the new value.
Name
SET_BASS_LEVEL
Parameter | Type | Description |
---|---|---|
OutputBindingID | INT | Output Binding ID |
Level | INT | LEVEL: Bass level. range is -12 to 12 |
Returns
None
SET_EQPRESET
Navigator EQ command called to change the selected preset for an output.
Name
SET_EQPRESET
Parameter | Description | Description |
---|---|---|
int | INT | Index for the selected preset. |
Output Binding ID | INT | Output Binding ID |
Returns
None
SET_EQ_GAIN_VALUES
Navigator EQ command called to set the current equalizer’s gain values.
Name
SET_EQ_GAIN_VALUES
Parameter | Type | Description |
---|---|---|
STR | Comma delimited string of updated numeric gain values, one value per band. |
Returns
None
SET_TREBLE_LEVEL
Navigator EQ command called to set the treble level for tone control. The driver should notify the proxy with TREBLE_LEVEL_CHANGED notification of the new value.
Name
SET_TREBLE_LEVEL
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
int | LEVEL: Treble level. Range is -12 to 12. |
Returns
None
Navigator EQ Protocol Notifications
AUDIOMODE_CHANGED
Navigator EQ notification that the output's audio mode has changed to either Tone Control or Equalizer for the output. This is an optional notification and should be used only if your device has audio modes.
Name
AUDIOMODE_CHANGED
Parameter | Type | Description |
---|---|---|
OutputBindingID | INT | Output Binding ID |
INT | 1 = TONE_CONTROL: This is sent when a Tone Control value is changed. 2 = EQUALIZER: This is sent when a EQ value is changed such as Treble or Bass. |
Returns
None
BALANCE_LEVEL_CHANGED
Navigator EQ notification that the balance has changed.
Name
BALANCE_LEVEL_CHANGED
Parameter | Type | Description |
---|---|---|
OutputBindingID | INT | Output Binding ID |
Level | INT | Range is 0 to 100 |
Returns
None
Example
-- Notify Balance level is set to 'Full Left' for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "BALANCE_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = 0 }, "NOTIFY")
-- Notify Balance level is set to 'Center' for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "BALANCE_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = 50 }, "NOTIFY")
-- Notify Balance level is set to 'Full Right' for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "BALANCE_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = 100 }, "NOTIFY")
BASS_LEVEL_CHANGED
Navigator EQ notification that the bass has changed.
Name
BASS_LEVEL_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
int | LEVEL: New bass level. Range is -12 to 12. |
Returns
None
Example
-- Notify Bass Level is at -6 for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "BASS_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = -6 }, "NOTIFY")
-- Notify Bass Level is at +6 for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "BASS_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = 6 }, "NOTIFY")
EQ_DISPLAY_ORDER_CHANGED
Navigator EQ notification of the order that the names from EQ_NAMES_CHANGED should be presented to the user.
Name
EQ_DISPLAY_ORDER_CHANGED
Parameter | Type | Description |
---|---|---|
OutputBindingID | INT | OutputBindingID |
Table of indexes | Table of indexes that represents display order of the names. Note that any programming for selecting a preset will be INDEX based, not name based. Hence the names can be changed but the programming will be tied to the index at time of creation. |
Returns
None
Example
C4:SendToProxy(5001, "EQ_DISPLAY_ORDER_CHANGED", { [1] = 1, [2] = 2, [3] = 3, [4] = 4, [5] = 5, OUTPUT = "4002" }, "NOTIFY")
C4:SendToProxy(5001, "EQ_DISPLAY_ORDER_CHANGED", { 1, 2, 3, 4, 5, OUTPUT = "4002" }, "NOTIFY")
EQ_NAMES_CHANGED
Navigator EQ notification of the current names for the equalizer presets.
Name
EQ_NAMES_CHANGED
Parameter | Type | Description |
---|---|---|
OutputBindingID | INT | OutputBindingID |
Table of names | Table of names |
Returns
None
Example
C4:SendToProxy(5001, "EQ_NAMES_CHANGED", { [1] = "FLAT", [2] = "CLASSICAL", [3] = "JAZZ", [4] = "POP", [5] = "ROCK", OUTPUT = "4002" }, "NOTIFY")
C4:SendToProxy(5001, "EQ_NAMES_CHANGED", {"FLAT", "CLASSICAL", "JAZZ", "POP", "ROCK", OUTPUT = 4002}, "NOTIFY")
EQ_FREQS_CHANGED
Navigator EQ notification that the frequencies of a equalizer have been modified.
Name
EQFREQS_CHANGED
Parameter | Type | Description |
---|---|---|
OutputBindingID | INT | OutputBindingID |
Table of comma delimited frequencies. |
Returns
None
Example
-- Notify Gains and Frequencies for EQ Bands for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "EQGAINS_CHANGED", { OUTPUT = "4002", VALUES = "7.5,3.8,5.4,4.59,7.8,7.4" }, "NOTIFY")_
C4:SendToProxy(5001, "EQFREQS_CHANGED", { OUTPUT = "4002", VALUES = "33,125,750,3000,8000,16000" }, "NOTIFY")
EQ_GAINS_CHANGED
Navigator EQ notification that the gains of an equalizer have been modified.
Name
EQGAINS_CHANGED
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output Binding ID. Notifies that the EQ band gain values have been updated for the specified output. |
VALUES | STR | VALUES: Comma delimited list of current equalizer values. |
Returns
None
Example
-- Notify Gains and Frequencies for EQ Bands for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "EQGAINS_CHANGED", { OUTPUT = "4002", VALUES = "7.5,3.8,5.4,4.59,7.8,7.4" }, "NOTIFY")_
C4:SendToProxy(5001, "EQFREQS_CHANGED", { OUTPUT = "4002", VALUES = "33,125,750,3000,8000,16000" }, "NOTIFY")
EQ_PRESET_CHANGED
Navigator EQ notification used when a different preset is selected for an output. Should be called after SET_EQPRESET is sent or if the preset is changed from a different event.
Name
EQPRESET_CHANGED
Parameter | Type | Description |
---|---|---|
Output | INT | Output Binding ID. Selects a specific EQ preset for the associated output. |
EQPRESET | INT | QPRESET: Newly selected equalizer index. Range is 0 to maximum number defined in the <eq_preset_nav_count> capability. |
Returns
None
Example
-- Notify change of current EQ Preset for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "EQPRESET_CHANGED", { OUTPUT = "4002", EQPRESET = 2 }, "NOTIFY")
HIDE_EQ_FROM _NAVS_CHANGED
Navigator EQ notification that the equalizer should be shown or hidden from Navigator. This must be sent with a value of False to enable the EQ functionality in Navigator.
Name
HIDEEQFROMNAVS_CHANGED
Parameter | Type | Description |
---|---|---|
Output | INT | OutputBinding ID |
ENABLED | BOOL | ENABLED: True to hide this output from Navigators. False to allow output eq controls to be shown. Default is True. |
Returns
None
Example
-- Notify Hide (or show) Navigator EQ for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "HIDEEQFROMNAVS_CHANGED", { OUTPUT = "4002", ENABLED = false }, "NOTIFY")
LOUDNESS_CHANGED
Navigator EQ notification that the loudness has changed.
Name
LOUDNESS_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
bool | ENABLED: LOUDNESS: True for loudness on, False for loudness off. |
Returns
None
TREBLE_LEVEL_CHANGED
Navigator EQ notification that the treble level has changed.
Name
TREBLE_LEVEL_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
int | LEVEL: LOUDNESS: New treble level. Range is -12 to 12. |
Returns
None
Example
-- Notify Treble Level is at -6 for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "TREBLE_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = -6 }, "NOTIFY")
-- Notify Treble Level is at +6 for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "TREBLE_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = 6 }, "NOTIFY")
Navigator EQ Capabilities
<has_eq_preset_control></has_eq_preset_control>: Boolean capability where True indicates this device supports the navigator equalizer interface and should allow navigators to interact with equalizers.
<eq_preset_nav_count></eq_preset_nav_count>: Capability that requires a count (integer) of the number of presets to be presented to the Navigators.
<eq_band_nav_count></<eq_band_nav_count>: Capability that requires a count (integer) of the number of adjustable bands for equalizer control.
<use_tone_max_value></use_tone_max_value>: Capability that requires the max value (integer) for tone controls.
<use_tone_min_value></use_tone_min_value>: Capability that requires the minimum value (integer) for tone controls.
Audio Output Bindings and Proxy Events
Note: Audio Output binding ID values defined in drivers written in conjunction with this Proxy must start with a binding value of 4000. The acceptable range for Audio Outputs is 4000 - 4999. However, if the first output binding ID value is not 4000, issues with Proxy Events firing correctly can be encountered.
For a list of valid Binding ID values please see the Connections section of the DriverWorks Fundamentals Guide.
Display Adjustable AV Switch Bindings
O.S. releases 3.3.0 and later provides the ability to hide AV Switch Bindings that are not in use. This feature has been provided to better manage the UI display in ComposerPro. This is especially useful for AV Switch devices that have a large number of bindings. Displaying all of the bindings for these devices can make the use of UI cumbersome.
Assumptions:
- All applicable bindings are correctly defined in the driver’s XML.
- Driver developers already have the ability to create control bindings using C4:AddDynamicBinding()
- The driver file specifies bindings to be hidden by the proxy through the use of a new XML element delivered in O.S. 3.3.0:
<ExtraInfo>D2</ExtraInfo>
See below for more information. - Resizing of the bindings list is possible only if a new capability delivered in O.S. 3.3.0 is set to true:
<allow_dynamic_resize>
See below for more information.
AV Switch Proxy Functionality Using Display Adjustable Bindings
- Bindings that are bound and then unbound in ComposerPro will only be hidden after a Director restart.
- The Proxy will increase the amount of displayed bindings based on the last unhidden, bound binding. For example, bindings 1 through 10 are all bound and unhidden. ComposerPro will display all of those bindings and in addition, binding 11 through 13 assuming they are also unhidden.
- The largest Binding amount will be shown ACROSS ALL SECTIONS at the same time. For example, RX, TX, Audio, Video will all be expanded to the largest bound set of any of the section. If RX has 10 bound connections that means Audio will also display 10, regardless of binding status.
- The driver developer is responsible for handling the configuration use case of virtual director or when the device is not available and ensuring that the solution is documented and appropriate for these scenarios.
Driver XML to Support Hidden Bindings
To allow the AV Switch Proxy to auto hide/unhide a binding, the driver needs to have a new XML tag included in the each connection in the driver’s XML: <ExtraInfo>D2</ExtraInfo>
.
The ExtraInfo tag must include the value of D2
as the parameter for each connection. For example, see the XML for connection 3096 to the right.
<connection>
<id>3096</id>
<type>6</type>
<ExtraInfo>D2</ExtraInfo>
<connectionname>TX 96</connectionname>
<consumer>True</consumer>
</connection>
Capability to Support Hidden Bindings
allow_dynamic_resize
Capability that allows for AV Switch bindings to be hidden in ComposerPro. Defaults to false.
Signature
<allow_dynamic_resize>false</allow_dynamic_resize>
Additional Information and Expected Limitations
- The driver developer is responsible for persisting and recreating any non-binding connections when director starts up.
- The driver developer must recreate the bindings in the proper order before director loads and creates the connection. This is done by the driver developer by persisting the binding information and creating the bindings on execution of the main driver code.
- The driver must handle the "virtual" or device not available case appropriately based on the expected use case for configuring the device. If the connections aren't defined in xml, and the device isn't available, the installer may have a limited experience. The driver developer needs to take this into consideration.
Audio Video Switch Proxy Commands
BACK
Pulse Back button.
Name
BACK ()
Parameters
None
Returns
None
CANCEL
Pulse Cancel button
Name
CANCEL ()
Parameters
None
Returns
None
CONNECT_OUTPUT
Numerical value of the output. Switch the output to passed ID.
Name
CONNECT OUTPUT ()
Parameter | Type | Description |
---|---|---|
Output Binding ID | int | Optional. Output Binding ID - should be in the BindingID range in the usage note below. |
PATH DEV LIST | str | Value of the devices directly upstream in the AV path. |
Returns
None
Usage Note
Preface band width tuner capability must be used in the driver for the CONNECT OUTPUT command to be set.
DASH
Pulses the ‘-’ button.
Name
DASH ()
Parameter
None
Returns
None
DISCONNECT_OUTPUT
Disconnect (turn off) selected output on device.
Name
DISCONNECT_OUTPUT ()
Parameter | Type | Description |
---|---|---|
Output Binding ID | int | Optional. Output Binding ID - should be in the BindingID range in the usage note below. |
PREV DEV LIST | str | Value of the device directly upstream in the AV path. |
Returns
None
EMIT_CODE
Emit IR/Serial code (used by AVGen IR/Serial Proxy).
Name
EMIT_CODE ()
Parameter | Type | Description |
---|---|---|
ID | STR | ID OF IR Code |
Returns
None
EMIT_MACRO
Emit IR/Serial code macro (used by AVGen IR/Serial Proxy)
Name
EMIT_MACRO ()
Parameter | Description |
---|---|
str | MacroCodeName |
Returns
None
GET_AUDIO_INPUTS
Command sent to the protocol during the proxy initialization. Returns available audio inputs from the protocol device.
Name
GET_AUDIO_INPUTS ()
Parameters
None
Returns
None
HYPHEN
Pulse ‘-’ button
Name
HYPHEN ()
Parameters
None
Returns
None
INFO
Pulse Info button
Name
INFO ()
Parameters
None
Returns
None
LOUDNESS_OFF
Turn loudness off.
Name
LOUDNESS_OFF ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output BindingID |
Returns
None
LOUDNESS_ON
Turn loudness on.
Name
LOUDNESS_ON ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output BindingID |
Returns
None
LOUDNESS_TOGGLE
Toggle loudness on/off.
Name
LOUDNESS_TOGGLE ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output BindingID |
Returns
None
MUTE_OFF
Turn muting off.
Name
MUTE_OFF ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output BindingID |
Returns
None
MUTE_ON
Turn muting on.
Name
MUTE_ON ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output BindingID |
Returns
None
MUTE_TOGGLE
Toggle muting on/off.
Name
MUTE_TOGGLE ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output BindingID |
Returns
None
NUMBER_0
Pulse ‘0’ button
Name
Number_0 ()
Parameters
None
Returns
None
NUMBER_1
Pulse ‘1’ button
Name
Number_1 ()
Parameters
None
Returns
None
NUMBER_2
Pulse ‘2’ button
Name
Number_2 ()
Parameters
None
Returns
None
NUMBER_3
Pulse ‘3’ button
Name
Number_3 ()
Parameters
None
Returns
None
NUMBER_4
Pulse ‘4’ button
NameSignature
Number_4 ()
Parameters
None
Returns
None
NUMBER_5
Pulse ‘5’ button
Name
Number_5 ()
Parameters
None
Returns
None
NUMBER_6
Pulse ‘6’ button
Name
Number_6 ()
Parameters
None
Returns
None
NUMBER_7
Pulse ‘7’ button
Name
Number_7 ()
Parameters
None
Returns
None
NUMBER_8
Pulse ‘8’ button
Name
Number_8 ()
Parameters
None
Returns
None
NUMBER_9
Pulse ‘9’ button
Name
Number_9 ()
Parameters
None
Returns
None
OFF
Turn device Off.
Name
OFF ()
Parameters
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
ON
Turn device On.
Name
ON ()
Parameters
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
POUND
Pulse ‘#’ button
Name
POUND ()
Parameters
None
Returns
None
PULSE_BALANCE_DOWN
Pulse balance down (Left)
Name
PULSE_BALNCE_DOWN ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output BindingID |
Returns
None
PULSE_BALANCE_UP
Pulse balance up (Right)
Name
PULSE_BALNCE_UP ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output BindingID |
Returns
None
PULSE_BASS_DOWN
Pulse bass down (Left)
Name
PULSE_BASS_DOWN ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output BindingID |
Returns
None
PULSE_BASS_UP
Pulse bass up (Right)
Name
PULSE_BASS_UP ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output BindingID |
Returns
None
PULSE_INPUT
Toggle (cycle through) input selection on device.
Name
PULSE_INPUT
Parameters
None
Returns
None
PULSE_SUR_UP
Toggle (cycle through) surround mode presets on device.
Name
PULSE_SUR_UP
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output BindingID |
Returns
None
PULSE_VOL_DOWN
Pulse volume level down.
Name
PULSE_VOL_DOWN
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output BindingID |
Returns
None
PULSE_VOL_UP
Pulse volume level up.
Name
PULSE_VOL_UP
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output BindingID |
Returns
None
PULSE_TREBLE_DOWN
Pulse treble down.
Name
PULSE_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE_TREBLE_UP
Pulse treble up.
Name
PULSE_TREBLE_UP ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output BindingID |
Returns
None
RECALL
Pulse Recall button
Name
RECALL ()
Parameters
None
Returns
None
SET_BALANCE
Set balance to a specified position.
Name
SET_BALANCE ()
Parameter | Type | Description |
---|---|---|
LEVEL | INT | Balance Level |
OUTPUT | INT | Output BindingID |
Returns
None
SET_BALANCE_UP
Set balance to a specified position.
Name
SET_BALANCE_UP ()
Parameter | Type | Description |
---|---|---|
LEVEL | INT | Balance Level |
OUTPUT | INT | Output BindingID |
Returns
None
SET_BASS_LEVEL
Set bass to a specified level.
Name
SET_BASS_LEVEL
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output BindingID |
Returns
None
SET_DIGI_OFF
Used with the v.3 amp to turn digital inputs off.
Name
SET_DIGI_OFF ()
Parameters
None
Returns
None
SET_DIGI_ON
Used with the v.3 amp to turn digital inputs on.
Name
SET_DIGI_ON ()
Parameters
None
Returns
None
SET_INPUT
Specify input selection of device.
Name
SET_INPUT ()
Parameter | Type | Description |
---|---|---|
Input Binding ID | int | Binding ID in the BindingID range below. |
PREV DEV LIST | str | Value of the device directly upstream in the AV path. |
Output Binding ID | int | Optional. Output Binding ID - should be in the BindingID range in the usage note below. |
Returns
None
Usage Note
- Control Bindings = 1 -> 999
- Video Inputs = 1000 -> 1099
- Video Outputs = 2000 -> 2999
- Audio Inputs = 3000 -> 3099
- Audio Outputs = 4000 -> 4999
- Proxy Bindings = 5000 -> 5999
- Network Bindings = 6000 -> 6999
- Room Bindings = 7000 -> 7999
- Power Manager = 8000 -> 8999
SET_LOUDNESS
Turn loudness on.
Name
SET_LOUDNESS ()
Parameter | Type | Description |
---|---|---|
INPUT | INT | Input Binding ID - should be in the BindingID range below. |
OUTPUT | INT | Output Binding ID |
Returns
None
SET_OUTPUT_INPUT
Specify input and output selection of device.
Name
SET_OUTPUT_INPUT ()
Parameter | Type | Description |
---|---|---|
INPUT | INT | Input Binding ID - should be in the BindingID range below. |
OUTPUT | INT | Output Binding ID |
Returns
None
SET_SURROUND_MODE
Select specified surround mode preset on device.
Name
SET_SURROUND_MODE ()
Parameter | Type | Description |
---|---|---|
SURROUND\_MODE | INT | Surround Mode preset value. |
OUTPUT | INT | Output Binding ID |
Returns
None
SET_TREBLE_LEVEL
Set treble to a specified level.
Name
SET_TREBLE_LEVEL ()
Parameter | Type | Description |
---|---|---|
LEVEL | INT | Treble Level |
OUTPUT | INT | Output Binding ID |
Returns
None
SET_UP_DOWN_SWAP
Swap page UP/DOWN buttons (used by AVGen)
Name
SET_UP_DOWN_SWAP ()
Parameter | Type | Description |
---|---|---|
SWAPFLAG | BOOL | Swap page UP/DOWN buttons (used by AVGen). TRUE to enable swap, FALSE to disable. |
Returns
None
STOP_VOL_DOWN
Stop ramping volume down.
Name
SET_VOL_DOWN ()
Parameter | Type | Description |
---|---|---|
LEVEL | INT | Level |
OUTPUT | INT | Output Binding ID |
Returns
None
SET_VOLUME_LEVEL
Set volume to a specified level.
Name
SET_VOLUME_LEVEL ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
STAR
Pulse *
button
Name
STAR ()
Parameters
None
Returns
None
START_BALANCE_DOWN
Start ramping balance down (left).
Name
START_BALANCE_DOWN ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output Binding ID |
Returns
None
START_BASS_DOWN
Start ramping bass down.
Name
START_BASS_DOWN ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output Binding ID |
Returns
None
START_BASS_UP
Start ramping bass up.
Name
START_BASS_UP ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output Binding ID |
Returns
None
START_TREBLE_DOWN
Start ramping treble down.
Name
START_TREBLE_DOWN ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output Binding ID |
Returns
None
START_TREBLE_UP
Start ramping treble up.
Name
START_TREBLE_UP ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output Binding ID |
Returns
None
START_VOL_DOWN
Start ramping volume down.
Name
START_TREBLE_DOWN ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output Binding ID |
Returns
None
START_VOL_UP
Start ramping volume up.
Name
START_VOL_UP ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output Binding ID |
Returns
None
STOP_BALANCE_DOWN
Start ramping balance.
Name
STOP_BALANCE_DOWN ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output Binding ID |
Returns
None
STOP_BASS_DOWN
Stop ramping bass
Name
STOP_BALANCE_UP ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output Binding ID |
Returns
None
STOP_BASS_DOWN
Stop ramping bass
Name
STOP_BASS_DOWN ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output Binding ID |
Returns
None
STOP_BASS_UP
Stop ramping bass
Name
STOP_BASS_UP ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output Binding ID |
Returns
None
STOP_TREBLE_DOWN
Stop ramping the treble down
Name
STOP_TREBLE_DOWN ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output Binding ID |
Returns
None
STOP_TREBLE_UP
Stop ramping the treble up.
Name
STOP_TREBLE_UP ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output Binding ID |
Returns
None
STOP_VOL_DOWN
Stop ramping the volume down
Name
STOP_VOL_DOWN ()
Parameter | Type | Description |
---|---|---|
OUTPUT | INT | Output Binding ID |
Returns
None