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 XM Receiver 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 XM Receivers have common controls such as PLAY, STOP, PAUSE and FAST FORWARD. The disc changer proxy allows for a common user interface to control all disc changers. 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 XM Receiver Control Proxy in conjunction with O.S. Release 3.4.2.
What’s New in 3.4.1
There were no modifications to the XM Receiver Control Proxy in conjunction with O.S. Release 3.4.1.
What’s New in 3.4.0
There were no modifications to the XM Receiver Control Proxy in conjunction with O.S. Release 3.4.0.
What’s New in 3.3.2
There were no modifications to the XM Receiver Control Proxy in conjunction with O.S. Release 3.3.2.
What’s New in 3.3.1
There were no modifications to the XM Receiver Control Proxy in conjunction with O.S. Release 3.3.1.
What’s New in 3.3.0
There were no modifications to the XM Receiver Control Proxy in conjunction with O.S. Release 3.3.0.
What’s New in 3.2.3
There were no modifications to the XM Receiver Control Proxy in conjunction with O.S. Release 3.2.3.
What’s New in 3.2.2
There were no modifications to the XM Receiver Control Proxy in conjunction with O.S. Release 3.2.2.
What’s New in 3.2.1
There were no modifications to the XM Receiver Control Proxy in conjunction with O.S. Release 3.2.1.
What’s New in 3.2.0
There were no modifications to the XM Receiver Control Proxy in conjunction with O.S. Release 3.2.0.
What was New in 3.1.2
There were no modifications to the XM Receiver Control Proxy in conjunction with O.S. Release 3.1.2.
What was New in 3.1.0
There were no modifications to the XM Receiver Control Proxy in conjunction with O.S. Release 3.1.0.
What was New in O.S.3
There were no modifications to the XM Receiver Control Proxy in conjunction with O.S. Release 3.0.0.
XM Tuner Protocol Notifications
AVAILABLE_CHANNEL_MAP
Displays current artist.
Name
AVAILBLE_CHANNEL_MAP ()
Parameter | Type | Description |
---|---|---|
MAP HALF | INT | MAP HALF: 1 is used for channels 0-127. 0 is used for channels 128 - 255. |
MAP STRING | STR | MAP STRING: 32 character (hex values) string representing the binary (1 = available or 0 = not) state of each of the channels in all possible combinations. Each hex digit covers all the possible available combinations of 4 channels. |
Example
00000000000000000000000000000001 indicates that channel 0 (or 128) is the only channel available.
00000000000000000000000000000002 indicates that channel 1 (or 129) is the only channel available.
00000000000000000000000000000003 indicates that channels 0 & 1 (or 128 & 129) are the only channels available.
00000000000000000000000000000004 indicates that channel 2 (or 130) is the only channel available.
00000000000000000000000000000005 indicates that channels 0 & 2 (or 128 & 130) are the only channels available.
00000000000000000000000000000006 indicates that channels 1 & 2 (or 129 & 130) are the only channels available.
00000000000000000000000000000007 indicates that channels 0, 1 & 2 (or 128, 129 & 130) are the only channels available.
00000000000000000000000000000008 indicates that channel 3 (or 131) is the only channel available.
00000000000000000000000000000009 indicates that channels 0 & 3 (or 128 & 131) are the only channels available.
0000000000000000000000000000000A indicates that channels 1 & 3 (or 129 & 131) are the only channels available.
0000000000000000000000000000000B indicates that channels 0, 1 & 3 (or 128, 129 & 131) are the only channels available.
0000000000000000000000000000000C indicates that channels 2 & 3 (or 130 & 131) are the only channels available.
0000000000000000000000000000000D indicates that channels 0, 2 & 3 (or 128, 130 & 131) are the only channels available.
0000000000000000000000000000000E indicates that channels 1, 2 & 3 (or 129, 130 & 131) are the only channels available.
0000000000000000000000000000000F indicates that channels 0, 1, 2 & 3 (or 128, 129, 130 & 131) are the only channels available.
SIGNAL_STRENGTH
Displays strength of signal.
Name
SIGNAL_STRENGTH ()
Parameter | Type | Description |
---|---|---|
INT | 0 = “None”, 1 = “Weak”, 2 = “Fair”, 3 = “Good” |
Returns
None
SONG_INFO_CHANGED
Displays current song information.
Name
SONG_INFO_CHANGED ()
Parameter | Type | Description |
---|---|---|
STR | ARTIST, TITLE, CATEGORY, CHANNEL, NAME |
Returns
None
XMARDS_ID
Satellite Digital Audio Radio Service
Name
XMARDS_ID ()
Parameter | Type | Description |
---|---|---|
ID TEXT | STR | Value representing the XM SDARS value of the satellite device. |
Returns
None
XM_CATEGORY_NAME_CHANGE
Displays current station name.
Name
XM_CATEGORY_NAME_CHANGE ()
Parameter | Type | Description |
---|---|---|
NUMBER | INT | Channel |
NAME | STR | Channel name |
Returns
None
XM_GET_AVAILABLE_CHANNELS
Displays available XM channels.
Name
XM_GET_AVAILABLE_CHANNELS ()
Parameter | Type | Description |
---|---|---|
MAP HALF | INT | MAP HALF: 1 is used for channels 0-127. 0 is used for channels 128 - 255. |
Returns
None
Example
00000000000000000000000000000001 indicates that channel 0 (or 128) is the only channel available. 00000000000000000000000000000002 indicates that channel 1 (or 129) is the only channel available. 00000000000000000000000000000003 indicates that channels 0 & 1 (or 128 & 129) are the only channels available. 00000000000000000000000000000004 indicates that channel 2 (or 130) is the only channel available. 00000000000000000000000000000005 indicates that channels 0 & 2 (or 128 & 130) are the only channels available. 00000000000000000000000000000006 indicates that channels 1 & 2 (or 129 & 130) are the only channels available. 00000000000000000000000000000007 indicates that channels 0, 1 & 2 (or 128, 129 & 130) are the only channels available. 00000000000000000000000000000008 indicates that channel 3 (or 131) is the only channel available. 00000000000000000000000000000009 indicates that channels 0 & 3 (or 128 & 131) are the only channels available. 0000000000000000000000000000000A indicates that channels 1 & 3 (or 129 & 131) are the only channels available. 0000000000000000000000000000000B indicates that channels 0, 1 & 3 (or 128, 129 & 131) are the only channels available. 0000000000000000000000000000000C indicates that channels 2 & 3 (or 130 & 131) are the only channels available. 0000000000000000000000000000000D indicates that channels 0, 2 & 3 (or 128, 130 & 131) are the only channels available. 0000000000000000000000000000000E indicates that channels 1, 2 & 3 (or 129, 130 & 131) are the only channels available. 0000000000000000000000000000000F indicates that channels 0, 1, 2 & 3 (or 128, 129, 130 & 131) are the only channels available.
XM_GET_CHANNEL_DETAILS_CHANGED
Displays current channel details.
Name
XM_GET_CHANNEL_DETAILS_CHANGED ()
Parameter | Type | Description |
---|---|---|
CHANNEL | INT | Channel |
CATEGORY | STR | Channel category |
NAME | STR | Channel name |
Returns
None