Home AMX User Forum NetLinx Studio

MSP8 Softwire Panel

Guys,

I am having issues with a MSP8 Softwire Panel. I have 8 regular MSP8 Keypads and 1 MSP8 Softwire Panel. The programming works perfectly on the regular MSP8's but im not getting any kind of control via the softwire panel. It says the device is online. Any ideas? I will post the code if you guys think it will help solve the problem. Just let me know. Thanks as always

Chris

Comments

  • ericmedleyericmedley Posts: 4,177
    ondrovic wrote:
    Guys,

    I am having issues with a MSP8 Softwire Panel. I have 8 regular MSP8 Keypads and 1 MSP8 Softwire Panel. The programming works perfectly on the regular MSP8's but im not getting any kind of control via the softwire panel. It says the device is online. Any ideas? I will post the code if you guys think it will help solve the problem. Just let me know. Thanks as always

    Chris
    Yeah, post the code. I have a bunch of those softwire keypads right here at my desk. I can plug one up and see what happens.

    ejm
  • [code]
    PROGRAM_NAME='Head End'
    (***********************************************************)
    (***********************************************************)
    (* FILE_LAST_MODIFIED_ON: 04/05/2006 AT: 09:00:25 *)
    (***********************************************************)
    (* System Type : NetLinx *)
    (***********************************************************)
    (* REV HISTORY: *)
    (***********************************************************)
    (*
    $History: $

    8.30.2007 - Started on reprogramming
    Defined audio devices
    Defined video devices
    Defined virtual devices
    Defined control devices
    Defined keypads
    Defined Touch Panels
    Defined Source Constatns
    Defined Place Holder Constants
    Defined TP Offset
    Defined Room Buttons
    Defined Source Buttons
    Defined External Buttons
    Defined Power Buttons
    Defined XM Preset Buttons
    Defined CD Buttons
    Defined Source Inputs
    Defined Display Devices
    Defined Rooms Structure
    Defined Rooms
    Setup Room Button Pop-ups
    Setup Source Button Page Filps
    Setup System Variables For Tracking
    Setup Touch Panel Arrays
    Setup Mutually Exclusive Buttons For Rooms
    Setup Debug Function
    Started Display On Function
    Started Display Off Function

    8.31.2007 - Continued on reprogramming
    Defined SunRoom Devices
    Defined Cd Player Buttons
    Defined Cable Buttons
    Defined Dvd Player Buttons
    Wrote Code to send proper ir channel for cd player
    Wrote Code to send proper ir channel for cable box
    Wrote Code to send proper ir channel for dvd player
    Added Code for Ada Suite 16 Switcher; Module
    Added Code for Ada Tune Suite Tuner; Module
    Added Code for IPort; Module
    Added Code for External Button Push; Push & Hold
    Added Code for MSP8; Module
    Added Source Selection For MSP8
    Added Volume Control For MSP8
    Added Power Off For MSP8
    Add Source Function For MSP8
    Added Feedback For MSP8


    9.4.2007 - Started reuploading code & panel files
    updated firmware on both masters & touch panel
    NI 900 - Dropped offline & isnt coming back online
    Power Off button not switching room off - fixed power off issue
    XM & AM FM - no feedback
    Volume Levels different between differenet sources
    IPod Testing MVP7500 - Works :)
    AM / FM Testing MVP7500 - Controls Fine; No Feedback; working on feedback; feedback corrected
    XM Testing MVP7500 - Controls Fine; No Feedback; working on feedback; feedback corrected
    CD Testing MVP7500 - no cd will test tommorrow

    IPod Testing Keypad - will test tommorrow
    AM / FM Testing Keypad - will test tommorrow
    XM Testing Keypad - will test tommorrow
    CD Testing Keypad - will test tommorrowy

    Added Mute Toggle Button; Added Mute Toggle Code - Tested - :)

    Working on Video Equipment
    Worked out issue where source mapping was incorrect
    Added power on / off commands to correct calls
    Testing Calls; On; Source; Off; - All Working correctly - :)

    9.5.2007 - Testing Cable Box Functions; channel up / down & cursor buttons not working, keypad not working - fixed
    Testing Dvd Player Functions; next / previous chapter & cursor buttons not working - fixed
    Cable Cursor Up / Down Hold ( Page Up / Page Down ) not working - fixed
    DVD Menu Button Not Working - fixed
    Fixed Source Switching Error
    Testing Cd Functions MVP7500 - Functions not working; - fixed
    Testing Keypad functions for Cable; added buffer, and string parsing for the cable entry
    Adding Favorites to cable page; Added correct icons to touch panel; added cable favorites to program; working fine - :)
    Tested Radio & XM Keypad Input - works fine -:)

    Working On MSP8's
    Sources Are Switching Correctly
    Feedback is working correctly
    Power Off is working correctly
    Source Functions aren't working correctly; iPod only thing thats not working
    Source Function isn't working correctly; iPod only thing thats not working
    *)
    (***********************************************************)
    (* DEVICE NUMBER DEFINITIONS GO BELOW *)
    (***********************************************************)
    DEFINE_DEVICE

    //
    //
    //System : Equipment
    //
    //

    dvADA_PORT = 5001:1:1 /// Serial Port For ADA-Bus adapter

    dvIPod = 5001:3:1 /// iPod Device Control

    dvCd = 5001:9:1 /// Denon DCM 280 - IR port # 2

    dvSunRoom_TV = 5002:2:2 /// Sun Room Tv On System # 2
    dvSunRoom_Cable = 5002:3:2 /// Sun Room Cable On System # 2
    dvSunRoom_Dvd = 5002:4:2 /// Sun Room DVD On System # 2

    dvSunRoom_IO = 5002:5:2 /// I.O Port - Cable Sense

    //
    //
    //System : Virtual Devices
    //
    //

    vdvADA_BUS = 33001:1:1 /// Bus Communication Driver
    vdvADA_BUS2 = 33002:1:1 /// Bus Communication Driver

    vdvADA_Suite16 = 33003:1:1 /// Virtual Switcher


    vdvTuner1 = 33004:1:1 ///
    vdvTuner2 = 33005:1:1 ///
    vdvTuner3 = 33006:1:1 ///
    vdvTuner4 = 33007:1:1 ///

    vdvIPod = 41000:1:1 /// IPod Communication Driver

    //
    //
    //System : Control Devices
    //
    //

    dvRelay = 5001:8:1 /// Relay to turn on amps

    //
    //
    //System : Keypads
    //
    //

    dvKeypad_1 = 6001:1:1 /// Living / Dining Room
    dvKeypad_2 = 6002:1:1 /// Sunroom
    dvKeypad_3 = 6003:1:1 /// Master Bedroom
    dvKeypad_4 = 6004:1:1 /// Master Bathroom
    dvKeypad_5 = 6005:1:1 /// Bedroom # 2
    dvKeypad_6 = 6006:1:1 /// Kitchen
    dvKeypad_7 = 6007:1:1 /// Office
    dvKeypad_8 = 6008:1:1 /// Bedroom # 5
    dvKeypad_9 = 169:1:1 /// Bathroom # 2

    vdvKeypad_1 = 33021:1:1
    vdvKeypad_2 = 33022:1:1
    vdvKeypad_3 = 33023:1:1
    vdvKeypad_4 = 33024:1:1
    vdvKeypad_5 = 33025:1:1
    vdvKeypad_6 = 33026:1:1
    vdvKeypad_7 = 33027:1:1
    vdvKeypad_8 = 33028:1:1
    vdvKeypad_9 = 33029:1:1

    //
    //
    //System : Touch Panels
    //
    //

    dvPanel_1a = 10001:1:1 /// System Control Port
    dvPanel_1b = 10001:2:1 /// TuneSuite Control Port
    dvPanel_1c = 10001:3:1 /// iPod Control Port
    dvPanel_1d = 10001:4:1 /// CD Control Port
    dvPanel_1e = 10001:5:1 /// Cable Control Port
    dvPanel_1f = 10001:6:1 /// DVD Control Port


    //
    //
    //System : Virtual Panels for MSP8
    //
    //

    //
    //
    //System : Virtual Panel : MSP8 : Living Room
    //
    //


    dvPanel_2a = 10002:1:1 /// System Control Port
    dvPanel_2b = 10002:2:1 /// TuneSuite Control Port
    dvPanel_2c = 10002:3:1 /// iPod Control Port
    dvPanel_2d = 10002:4:1 /// CD Control Port

    //
    //
    //System : Virtual Panel : MSP8 : Sun Room
    //
    //

    dvPanel_3a = 10003:1:1 /// System Control Port
    dvPanel_3b = 10003:2:1 /// TuneSuite Control Port
    dvPanel_3c = 10003:3:1 /// iPod Control Port
    dvPanel_3d = 10003:4:1 /// CD Control Port

    //
    //
    //System : Virtual Panel : MSP8 : Master Bedroom
    //
    //

    dvPanel_4a = 10004:1:1 /// System Control Port
    dvPanel_4b = 10004:2:1 /// TuneSuite Control Port
    dvPanel_4c = 10004:3:1 /// iPod Control Port
    dvPanel_4d = 10004:4:1 /// CD Control Port

    //
    //
    //System : Virtual Panel : MSP8 : Master Bathroom
    //
    //

    dvPanel_5a = 10005:1:1 /// System Control Port
    dvPanel_5b = 10005:2:1 /// TuneSuite Control Port
    dvPanel_5c = 10005:3:1 /// iPod Control Port
    dvPanel_5d = 10005:4:1 /// CD Control Port

    //
    //
    //System : Virtual Panel : MSP8 : Bedroom # 2
    //
    //

    dvPanel_6a = 10006:1:1 /// System Control Port
    dvPanel_6b = 10006:2:1 /// TuneSuite Control Port
    dvPanel_6c = 10006:3:1 /// iPod Control Port
    dvPanel_6d = 10006:4:1 /// CD Control Port

    //
    //
    //System : Virtual Panel : MSP8 : Kitchen
    //
    //

    dvPanel_7a = 10007:1:1 /// System Control Port
    dvPanel_7b = 10007:2:1 /// TuneSuite Control Port
    dvPanel_7c = 10007:3:1 /// iPod Control Port
    dvPanel_7d = 10007:4:1 /// CD Control Port

    //
    //
    //System : Virtual Panel : MSP8 : Office
    //
    //

    dvPanel_8a = 10008:1:1 /// System Control Port
    dvPanel_8b = 10008:2:1 /// TuneSuite Control Port
    dvPanel_8c = 10008:3:1 /// iPod Control Port
    dvPanel_8d = 10008:4:1 /// CD Control Port

    //
    //
    //System : Virtual Panel : MSP8 : Bedroom # 5
    //
    //

    dvPanel_9a = 10009:1:1 /// System Control Port
    dvPanel_9b = 10009:2:1 /// TuneSuite Control Port
    dvPanel_9c = 10009:3:1 /// iPod Control Port
    dvPanel_9d = 10009:4:1 /// CD Control Port

    //
    //
    //System : Virtual Panel : MSP8 : Bathroom # 2
    //
    //

    dvPanel_10a = 10010:1:1 /// System Control Port
    dvPanel_10b = 10010:2:1 /// TuneSuite Control Port
    dvPanel_10c = 10010:3:1 /// iPod Control Port
    dvPanel_10d = 10010:4:1 /// CD Control Port

    (***********************************************************)
    (* CONSTANT DEFINITIONS GO BELOW *)
    (***********************************************************)
    DEFINE_CONSTANT

    //
    //
    //System : Touch Panel Offset
    //
    //

    TP_Offset = 10000

    TP_Offset_2 = 10001

    //
    //
    //System : Place Holders
    //
    //

    Temp_Port = 0
    Temp_Channel = 0

    Temp_Dev = 0

    //
    //
    //System : Source Input Constants
    //
    //

    AM_FM = 1
    XM = 3
    iPod = 4
    CD = 2

    Satellite = 0
    Cable = 12
    DVD = 13

    //
    //
    //System : Source Constants
    //
    //

    SC_IPOD = 1000
    SC_XM = 1001
    SC_AM_FM = 1002
    SC_CD = 1003

    //
    //
    //System : Room Buttons
    //
    //

    INTEGER nRoom_Buttons[]=
    {
    1101, /// Living Room / Dining Room
    1102, /// Sun Room
    1103, /// Master Bedroom
    1104, /// Master Bathroom
    1105, /// Bedroom # 2
    1106, /// Kitchen
    1107, /// Office
    1108, /// Bedroom # 5
    1109 /// Bathroom # 2
    }

    ///
    //
    //System : Source Buttons
    //
    //

    INTEGER nSource_Buttons[]=
    {
    1000, /// AM / FM
    1001, /// CD
    1002, /// XM
    1003, /// iPod
    1004, /// ReQuest
    1005, /// <OPEN>
    1006, /// <OPEN>
    1107, /// <OPEN>
    1108, /// <OPEN>
    1109, /// <OPEN>
    1010, /// Satellite
    1011, /// Cable
    1012 /// DVD
    }

    //
    //
    //System : Touch Panel Display Buttons
    //
    //


    //
    //
    //System : Touch Panel External Buttons
    //
    //

    INTEGER nExternal_Buttons[]=
    {
    2010, /// 1st Left Button
    2011, /// 2nd Left Button
    2012, /// 3rd Left Button
    2013, /// 4th Left Button
    2014, /// Up Button
    2015, /// Down Button
    2016, /// Left Button
    2017, /// Right Button
    2018 /// Center Button
    }

    //
    //
    //System : Powere Off Button
    //
    //

    INTEGER nPower_Buttons[]=
    {
    2000 /// Power Off
    }

    //
    //
    //MSP8 : Keypads
    //
    //

    INTEGER nKeypad_Source_Buttons[]=
    {
    1, //Source 1
    2, //Source 2
    3, //Source 3
    4 //Source 4
    }

    INTEGER nKeypad_Volume_Buttons[]=
    {
    6, //Volume Up
    7 //Volume Down
    }

    INTEGER nKeypad_Power_Buttons[]=
    {
    5 //Power off - **
    }

    INTEGER nKeypad_Function_Buttons[]=
    {
    8 //Function
    }

    //
    //
    //TuneSuite : Preset Buttons
    //
    //


    INTEGER nTuneSuite_Presets[]=
    {
    38, /// Preset 1
    39, /// Preset 2
    40, /// Preset 3
    41, /// Preset 4
    42, /// Preset 5
    43 /// Preset 6
    }


    //
    //
    //CD Player : Buttons
    //
    //

    INTEGER nCD_Buttons[]=
    {
    //-- uses nButton
    1, /// Play
    2, /// Stop
    3, /// Pause
    4, /// Skip >>
    5, /// Skip <<
    6, /// Scan >>
    7, /// Scan <<
    //-- uses nButton + 2
    8, /// 10
    9, /// 1
    10, /// 2
    11, /// 3
    12, /// 4
    13, /// 5
    14, /// 6
    15, /// 7
    16, /// 8
    17, /// 9
    18, /// 10+
    //-- uses nButton + 5
    19, /// Volume +
    20, /// Volume -
    //-- uses nButton + 29
    21, /// Disc Skip +
    22, /// Disc Skip -
    23, /// Disc Select
    //-- uses nButton + 31
    24, /// Repeat
    25, /// Random
    26, /// Prog/Direct
    27, /// Time
    //-- uses nButton + 40
    28, /// Open/Close
    //-- uses nButton + 91
    29 /// Call
    }

    INTEGER nCD_Disc_Buttons[]=
    {
    30, /// Disc 1
    31, /// Disc 2
    32, /// Disc 3
    33, /// Disc 4
    34 /// Disc 5
    }

    //
    //
    //Cable Box : Buttons
    //
    //

    INTEGER nCable_Buttons[]=
    {
    //-- uses nButton
    1, /// Play
    2, /// Stop
    3, /// Pause
    4, /// Forward
    5, /// Rewind
    //-- uses nButton + 2
    6, /// Record
    7, /// Power (TOG)
    8, /// 0
    9, /// 1
    10, /// 2
    11, /// 3
    12, /// 4
    13, /// 5
    14, /// 6
    15, /// 7
    16, /// 8
    17, /// 9
    //-- uses nButton + 4
    18, /// Channel +
    19, /// Channel -
    //-- uses nButton + 24
    20, /// Menu
    21, /// Cursor Up
    22, /// Cursor Dn
    23, /// Cursor Lf
    24, /// Cursor Rg
    25, /// Cursor Sel
    //-- uses nButton + 30
    26, /// Live
    27, /// Replay
    //-- uses nButton + 94
    28, /// Guide
    29, /// Info
    30, /// Page Up
    31, /// Page Dn
    32, /// Exit
    33, /// Settings
    34, /// A
    35, /// B
    36, /// C
    37, /// Last
    38, /// PIP On/Off
    39, /// Pip Swap
    40, /// Pip Move
    41, /// PIP Channel +
    42, /// PIP Channel -
    43, /// Video Source
    44, /// *
    45, /// #
    46, /// List
    47 /// Fav
    }

    //
    //
    //Cable Box : Favorites
    //
    //

    Integer nCable_Favorites[]=
    {
    51, /// Preset 1
    52, /// Preset 2
    53, /// Preset 3
    54, /// Preset 4
    55, /// Preset 5
    56, /// Preset 6
    57, /// Preset 7
    58, /// Preset 8
    59, /// Preset 9
    60, /// Preset 10
    61, /// Preset 11
    62 /// Preset 12
    }

    //
    //
    //Dvd Player : Buttons
    //
    //

    INTEGER nDvd_Buttons[]=
    {
    //-- uses nButton
    1, /// Play
    2, /// Stop
    3, /// Pause
    4, /// Skip >>
    5, /// Skip <<
    6, /// Forward >>
    7, /// Rewind <<
    //-- uses nButton + 2
    8, /// 0
    9, /// 1
    10, /// 2
    11, /// 3
    12, /// 4
    13, /// 5
    14, /// 6
    15, /// 7
    16, /// 8
    17, /// 9
    18, /// 10+
    //-- uses nButton + 8
    19, /// Power On
    20, /// Power Off
    //-- uses nButton + 21
    21, /// A/B
    //-- uses nButton + 22
    22, /// Menu
    23, /// Cursor Up
    24, /// Cursor Dn
    25, /// Cursor Lf
    26, /// Cursor Rg
    27, /// Cursor Sel
    //-- uses nButton + 23
    28, /// Title Menu
    //-- uses nButton + 24
    29, /// Clear
    30, /// Return
    31, /// Angle
    32, /// Subtitle
    //-- uses nButton + 25
    33, /// Display On Screen
    //-- uses nButton + 44
    34, /// Zoom
    //-- uses nButton + 45
    35, /// Open / Close
    //-- uses nButton + 46
    36, /// Random; Shiffle
    //-- uses nButton + 47
    37 /// Setup; Action
    }

    //
    //
    //ADA Suite 16 Digital Switcher
    //
    //

    VOLATILE INTEGER NX_NO_BUTTON = 256


    //
    //
    //XM Guide : Preset Buttons
    //
    //

    Integer XM_GUIDE_BUTTONS[]=
    {
    100, /// Preset 1
    101, /// Preset 2
    102, /// Preset 3
    103, /// Preset 4
    104, /// Preset 5
    105, /// Preset 6
    106, /// Preset 7
    107, /// Preset 8
    108, /// Preset 9
    109, /// Preset 10
    110, /// Preset 11
    111, /// Preset 12
    112, /// Preset 13
    113, /// Preset 14
    114, /// Preset 15
    115, /// Preset 16
    116, /// Preset 17
    117, /// Preset 18
    118, /// Preset 19
    119, /// Preset 20
    120, /// Preset 21
    121, /// Preset 22
    122, /// Preset 23
    123, /// Preset 24
    124, /// Preset 25
    125, /// Preset 26
    126, /// Preset 27
    127, /// Preset 28
    128, /// Preset 29
    129, /// Preset 30
    130, /// Preset 31
    131, /// Preset 32
    132, /// Preset 33
    133, /// Preset 34
    134, /// Preset 35
    135, /// Preset 36
    136, /// Preset 37
    137, /// Preset 38
    138, /// Preset 39
    139, /// Preset 40
    140, /// Preset 41
    141, /// Preset 42
    142, /// Preset 43
    143, /// Preset 44
    144, /// Preset 45
    145, /// Preset 46
    146, /// Preset 47
    147, /// Preset 48
    148, /// Preset 49
    149, /// Preset 50
    150, /// Preset 51
    151, /// Preset 52
    152, /// Preset 53
    153, /// Preset 54
    154, /// Preset 55
    155, /// Preset 56
    156, /// Preset 57
    157, /// Preset 58
    158, /// Preset 59
    159, /// Preset 60
    160, /// Preset 61
    161, /// Preset 62
    162, /// Preset 63
    163, /// Preset 64
    164, /// Preset 65
    165, /// Preset 66
    166, /// Preset 67
    167, /// Preset 68
    168, /// Preset 69
    169, /// Preset 70
    170, /// Preset 71
    171, /// Preset 72
    172, /// Preset 73
    173, /// Preset 74
    174, /// Preset 75
    175, /// Preset 76
    176, /// Preset 77
    177, /// Preset 78
    178, /// Preset 79
    179, /// Preset 80
    180, /// Preset 81
    181, /// Preset 82
    182, /// Preset 83
    183, /// Preset 84
    184, /// Preset 85
    185, /// Preset 86
    186, /// Preset 87
    187, /// Preset 88
    188, /// Preset 89
    189, /// Preset 90
    190, /// Preset 91
    191, /// Preset 92
    192, /// Preset 93
    193, /// Preset 94
    194, /// Preset 95
    195, /// Preset 96
    196, /// Preset 97
    197, /// Preset 98
    198, /// Preset 99
    199, /// Preset 100
    200, /// Preset 101
    201, /// Preset 102
    202, /// Preset 103
    203, /// Preset 104
    204, /// Preset 105
    205, /// Preset 106
    206, /// Preset 107
    207, /// Preset 108
    208, /// Preset 109
    209, /// Preset 110
    210, /// Preset 111
    211, /// Preset 112
    212, /// Preset 113
    213, /// Preset 114
    214, /// Preset 115
    215, /// Preset 116
    216, /// Preset 117
    217, /// Preset 118
    218, /// Preset 119
    219, /// Preset 120
    220, /// Preset 121
    221, /// Preset 122
    222, /// Preset 123
    223, /// Preset 124
    224, /// Preset 125
    225, /// Preset 126
    226, /// Preset 127
    227, /// Preset 128
    228, /// Preset 129
    229, /// Preset 130
    230, /// Preset 131
    231, /// Preset 132
    232, /// Preset 133
    233, /// Preset 134
    234, /// Preset 135
    235, /// Preset 136
    236, /// Preset 137
    237, /// Preset 138
    238, /// Preset 139
    239, /// Preset 140
    240, /// Preset 141
    241, /// Preset 142
    242, /// Preset 143
    243, /// Preset 144
    244, /// Preset 145
    245, /// Preset 146
    246, /// Preset 147
    247, /// Preset 148
    248, /// Preset 149
    249, /// Preset 150
    250, /// Preset 151
    251 /// Preset 152
    }

    (***********************************************************)
    (* DATA TYPE DEFINITIONS GO BELOW *)
    (***********************************************************)
    DEFINE_TYPE

    //
    //
    //System : Room Structure
    //
    //

    STRUCTURE _ROOMS
    {
    INTEGER Index /// Stores the room index #
    CHAR Name[30] /// Stores the actual room name
    INTEGER Audio_Stat /// Stores whether or not the room has audio control; 1=True; 0=Flase
    INTEGER Video_Stat /// Stores whether or not the room has video control; 1=True; 0=Flase
    INTEGER Lighting /// Stores whether or not the room has lighting control; 1=True; 0=Flase
    INTEGER Cur_Source /// Stores the current source for the indexed room

    INTEGER Source_Mapping[30] /// Stores the sources for the indexed room
    (*
    Source_Index[1] = the iPod index
    Source_Index[2] = the XM index
    Source_Index[3] = the AM/FM index
    Source_Index[4] = the CD index
    Source_Index[5] = the Request index

    Source_Index[9] = the Satellite TV index
    Source_Index[10] = the Cable TV index
    Source_Index[11] = the DVD index

    Rooms[1].Source_Mapping[1] = AM_FM /// AM / FM Input - 1
    Rooms[1].Source_Mapping[2] = CD /// CD Input - 2
    Rooms[1].Source_Mapping[3] = XM /// XM Input - 3
    Rooms[1].Source_Mapping[4] = iPod /// iPod - 4
    Rooms[1].Source_Mapping[5] = Temp_Dev /// < OPEN > - 5
    Rooms[1].Source_Mapping[6] = Temp_Dev /// < OPEN > - 6
    Rooms[1].Source_Mapping[7] = Temp_Dev /// < OPEN > - 7
    Rooms[1].Source_Mapping[8] = Temp_Dev /// < OPEN > - 8
    Rooms[1].Source_Mapping[9] = Temp_Dev /// < OPEN > - 9
    Rooms[1].Source_Mapping[10] = Temp_Dev /// < OPEN > - 10
    Rooms[1].Source_Mapping[11] = Temp_Dev /// Satellite Input - 11
    Rooms[1].Source_Mapping[12] = Cable /// Cable Input - 12
    Rooms[1].Source_Mapping[13] = Dvd /// Dvd Input - 13

    *)
    }

    //
    //
    //System : XM Guide Structure
    //
    //

    STRUCTURE _XM_GUIDE
    {
    INTEGER Index /// Index number
    CHAR Chan[3] /// Stores the Channel Number
    CHAR Name[45] /// Stores the Channel Name
    CHAR Description[500] /// For future use
    CHAR Genre[45] /// For future use
    }

    //
    //
    //System : Cable Favorites Structure
    //
    //

    STRUCTURE _Cable_Presets
    {
    INTEGER Index /// Index Number
    Char Chan[3] /// Stores the Channel Number
    Char Name[25] /// Stores the Channel Name
    Char Description[200] /// For future use
    Char Genre[15] /// For future use
    }

    (***********************************************************)
    (* VARIABLE DEFINITIONS GO BELOW *)
    (***********************************************************)
    DEFINE_VARIABLE

    //
    //
    //System Structures
    //
    //

    _ROOMS Rooms[9] /// Stores the number of total rooms
    _XM_GUIDE XM_GUIDE[152] /// Stores the number of total channels

    _Cable_Presets Cable_Index[12] /// Stores the number of total channels

    //
    //
    //System Wide Variables
    //
    //

    INTEGER nRoom_Index[9]
    INTEGER nTv_Power[9]

    INTEGER nPanel_Address
    INTEGER nPanel_Index
    INTEGER nButton

    INTEGER nIR_Cmd

    CHAR strZn_Pwr[16]

    //
    //
    //System Keypad Variables : XM
    //
    //


    Integer nNumber1 /// Stores the first number of a channel preset
    Integer nNumber2 /// Stores the second number of a channel preset
    Integer nNumber3 /// Stores the third number of a channel preset

    Char strKPValue[25] /// Stores the returned system keypad number

    //
    //
    //System Keypad Variables : Cable
    //
    //

    Char strTP_Buffer[1000] /// Buffer for touch panel

    Integer nNumber1a /// Stores the first number of a channel preset
    Integer nNumber2a /// Stores the second number of a channel preset
    Integer nNumber3a /// Stores the third number of a channel preset

    Char strKP[25] /// Stores the returned system keypad number


    //
    //
    //MSP8 : Keypads
    //
    //

    Integer nCntl_Panel_Address /// Stores the control panel address
    Integer nTemp /// Stores temporary button for msp8
    Integer nKP_Index /// Stores the keypad index
    Integer nKP_Address /// Stores the address of the keypad

    //
    //
    //ADA Suite 16 Digital Switcher
    //
    //

    VOLATILE INTEGER NL_NO_BUTTON // NO BUTTON DEFINITION

    VOLATILE INTEGER ADA_BUTTONS[]=
    {
    1, //1 - ALL ROOM OFF
    2, //2 - ROOM OFF
    3, //3 -
    4, //4 -
    5, //5 - INPUT 1
    6, //6 - INPUT 2
    7, //7 - INPUT 3
    8, //8 - INPUT 4
    9, //9 - INPUT 5
    10, //10- INPUT 6
    11, //11- INPUT 7
    12, //12- INPUT 8
    13, //13- INPUT 9
    14, //14- INPUT 10
    15, //15- INPUT 11
    16, //16- INPUT 12
    17, //17- INPUT 13
    18, //18- INPUT 14
    19, //19- INPUT 15
    20, //20- INPUT 16
    21, //21-
    22, //22-
    23, //23- MUTE ON
    24, //24- MUTE OFF
    25, //25- SELECT ROOM BUTTON
    26, //26- OK BUTTON ON MAIN PAGE
    27, //27- VOLUME UP
    28, //28- VOLUME DOWN
    29, //29- AUDIO COMMANDS / VIDEO COMMANDS BUTTON
    30, //30- AUDIO CONTROLS BUTTON ON MAIN PAGE
    31, //31- VIDEO CONTROLS BUTTON ON MAIN PAGE
    32, //32- SETUP CONTROLS BUTTON ON MAIN PAGE
    33, //33- ADVANCED BUTTON ON MAIN PAGE
    34, //34- PAGING BUTTON ON MAIN PAGE
    35, //35- BASS UP ON AUDIO CONTROLS PAGE
    36, //36- BASS DOWN ON AUDIO CONTROLS PAGE
    37, //37- TREBLE UP ON AUDIO CONTROLS PAGE
    38, //38- TREBLE DOWN ON AUDIO CONTROLS PAGE
    39, //39- LOUDNESS CONTOUR ON AUDIO CONTROLS PAGE
    40, //40- STEREO ENHANCE ON AUDIO CONTROLS PAGE
    41, //41- BALANCE LEFT ON AUDIO CONTROLS PAGE
    42, //42- BALANCE EQUAL ON AUDIO CONTROLS PAGE
    43, //43- BALANCE RIGHT ON AUDIO CONTROLS PAGE
    44, //44- STEREO ON AUDIO CONTROLS PAGE
    45, //45- MONO ON AUDIO CONTROLS PAGE
    46, //46-
    47, //47- TONE RECALL 1 ON AUDIO CONTROLS PAGE
    48, //48- TONE RECALL 2 ON AUDIO CONTROLS PAGE
    49, //49- TONE RECALL 3 ON AUDIO CONTROLS PAGE
    50, //50- TONE RECALL 4 ON AUDIO CONTROLS PAGE
    51, //51- TONE STORE 1 ON AUDIO CONTROLS PAGE
    52, //52- TONE STORE 2 ON AUDIO CONTROLS PAGE
    53, //53- TONE STORE 3 ON AUDIO CONTROLS PAGE
    54, //54- TONE STORE 4 ON AUDIO CONTROLS PAGE
    55, //55- VOLUME RECALL 1 ON AUDIO CONTROLS PAGE
    56, //56- VOLUME RECALL 2 ON AUDIO CONTROLS PAGE
    57, //57- VOLUME RECALL 3 ON AUDIO CONTROLS PAGE
    58, //58- VOLUME RECALL 4 ON AUDIO CONTROLS PAGE
    59, //59- VOLUME STORE 1 ON AUDIO CONTROLS PAGE
    60, //60- VOLUME STORE 2 ON AUDIO CONTROLS PAGE
    61, //61- V0LUME STORE 3 ON AUDIO CONTROLS PAGE
    62, //62- VOLUME STORE 4 ON AUDIO CONTROLS PAGE
    63, //63- ROOM SELECT ON VIDEO CONTROLS PAGE (VIDEO INPUTS TO FOLLOW AUDIO)
    64, //64- VIDEO INPUT 1 TO FOLLOW AUDIO
    65, //65- VIDEO INPUT 2 TO FOLLOW AUDIO
    66, //66- VIDEO INPUT 3 TO FOLLOW AUDIO
    67, //67- VIDEO INPUT 4 TO FOLLOW AUDIO
    68, //68- VIDEO INPUT 5 TO FOLLOW AUDIO
    69, //69- VIDEO INPUT 6 TO FOLLOW AUDIO
    70, //70- VIDEO INPUT 7 TO FOLLOW AUDIO
    71, //71- VIDEO INPUT 8 TO FOLLOW AUDIO
    72, //72- VIDEO INPUT 9 TO FOLLOW AUDIO
    73, //73- VIDEO INPUT 10 TO FOLLOW AUDIO
    74, //74- VIDEO INPUT 11 TO FOLLOW AUDIO
    75, //75- VIDEO INPUT 12 TO FOLLOW AUDIO
    76, //76- VIDEO INPUT 13 TO FOLLOW AUDIO
    77, //77- VIDEO INPUT 14 TO FOLLOW AUDIO
    78, //78- VIDEO INPUT 15 TO FOLLOW AUDIO
    79, //79- VIDEO INPUT 16 TO FOLLOW AUDIO
    80, //80- SELECT TRIGGER ON VIDEO CONTROLS PAGE
    81, //81- TRIGGER ASSIGNED TO VIDEO INPUT 1
    82, //82- TRIGGER ASSIGNED TO VIDEO INPUT 2
    83, //83- TRIGGER ASSIGNED TO VIDEO INPUT 3
    84, //84- TRIGGER ASSIGNED TO VIDEO INPUT 4
    85, //85- TRIGGER ASSIGNED TO VIDEO INPUT 5
    86, //86- TRIGGER ASSIGNED TO VIDEO INPUT 6
    87, //87- TRIGGER ASSIGNED TO VIDEO INPUT 7
    88, //88- TRIGGER ASSIGNED TO VIDEO INPUT 8
    89, //89- TRIGGER ASSIGNED TO VIDEO INPUT 9
    90, //90- TRIGGER ASSIGNED TO VIDEO INPUT 10
    91, //91- TRIGGER ASSIGNED TO VIDEO INPUT 11
    92, //92- TRIGGER ASSIGNED TO VIDEO INPUT 12
    93, //93- TRIGGER ASSIGNED TO VIDEO INPUT 13
    94, //94- TRIGGER ASSIGNED TO VIDEO INPUT 14
    95, //95- TRIGGER ASSIGNED TO VIDEO INPUT 15
    96, //96- TRIGGER ASSIGNED TO VIDEO INPUT 16
    97, //97- SELECT ROOM NUMBER ON VIDEO CONTROLS PAGE (ASSIGN TRIGGER FOR ROOM OUTPUT)
    98, //98- ASSIGN TRIGGER 1
    99, //99- ASSIGN TRIGGER 2
    100, //100-ASSIGN TRIGGER 3
    101, //101-ASSIGN TRIGGER 4
    102, //102-ASSIGN TRIGGER 5
    103, //103-
    104, //104- DWELL TIME
    105, //105-CYCLE COUNT
    106, //106-ENABLE/DISABLE TRIGGER 1
    107, //107-ENABLE/DISABLE TRIGGER 2
    108, //108-ENABLE/DISABLE TRIGGER 3
    109, //109-ENABLE/DISABLE TRIGGER 4
    110, //110-
    111, //111-INPUT 1 ON SETUP CONTROLS PAGE
    112, //112-INPUT 2 ON SETUP CONTROLS PAGE
    113, //113-INPUT 3 ON SETUP CONTROLS PAGE
    114, //114-INPUT 4 ON SETUP CONTROLS PAGE
    115, //115-INPUT 5 ON SETUP CONTROLS PAGE
    116, //116-INPUT 6 ON SETUP CONTROLS PAGE
    117, //117-INPUT 7 ON SETUP CONTROLS PAGE
    118, //118-INPUT 8 ON SETUP CONTROLS PAGE
    119, //119-INPUT 9 ON SETUP CONTROLS PAGE
    120, //120-INPUT 10 ON SETUP CONTROLS PAGE
    121, //121-INPUT 11 ON SETUP CONTROLS PAGE
    122, //122-INPUT 12 ON SETUP CONTROLS PAGE
    123, //123-INPUT 13 ON SETUP CONTROLS PAGE
    124, //124-INPUT 14 ON SETUP CONTROLS PAGE
    125, //125-INPUT 15 ON SETUP CONTROLS PAGE
    126, //126-INPUT 16 ON SETUP CONTROLS PAGE
    127, //127-LEVEL TRIM BUTTON ON SETUP CONTROLS PAGE
    128, //128- OK BUTTON ON SETUP CONTROLS PAGE
    129, //129-SELECT ROOM ON ADVANCED CONTROLS PAGE
    130, //130-SELECT PARTY 1 (ROOM)
    131, //131-SELECT PARTY 2 (ROOM)
    132, //132-SELECT PARTY 3 (ROOM)
    133, //133-SELECT PARTY 4 (ROOM)
    134, //134-SELECT INPUT ON ADVANCED CONTROLS PAGE
    135, //135-SELECT PARTY 1 (INPUT)
    136, //136-SELECT PARTY 2 (INPUT)
    137, //137-SELECT PARTY 3 (INPUT)
    138, //138-SELECT PARTY 4 (INPUT)
    139, //139-RESET TO FACTORY SETTINGS
    140, //140-SOFTWARE VERSION OF THE ADA CARDS
    141, //141-PAGE ROOM NUMBER
    142, //142-OK BUTTON TO PAGE ROOM NUMBER
    143, //143-PAGE GROUP NUMBER
    144, //144-EXCLUDE ROOM NUMBER FROM PAGING
    145, //145-OK BUTTON TO PAGE GROUP
    146, //146-MAKE ROOM NUMBER MEMBER OF PAGING GROUP
    147, //147-PAGING GROUP 1
    148, //148-PAGING GROUP 2
    149, //149-PAGING GROUP 3
    150, //150-PAGING GROUP 4
    151, //151-PAGING GROUP 5
    152, //152-PAGING GROUP 6
    153, //153-PAGING GROUP 7
    154, //154-PAGING GROUP 8
    155, //155-PAGING VOLUME UP
    156, //156-PAGING VOLUME DOWN
    157, //157-GROUP 7 AUTO PAGE ON
    158, //158-GROUP 7 AUTO PAGE OFF
    159, //159-AUTO PAGE
    160, //160-GROUP 8 MANUAL PAGE
    161, //161-GROUP 1-6 PAGE OFF
    162, //162-LABEL 1 ON MAIN SCREEN
    163, //163-LABEL 2 ON MAIN SCREEN
    164, //164-LABEL 3 ON MAIN SCREEN
    165, //165-LABEL 4 ON MAIN SCREEN
    166, //166-LABEL 5 ON MAIN SCREEN
    167, //167-LABEL 6 ON MAIN SCREEN
    168, //168-LABEL 7 ON MAIN SCREEN
    169, //169-LABEL 8 ON MAIN SCREEN
    170, //170-LABEL 9 ON MAIN SCREEN
    171, //171-LABEL 10 ON MAIN SCREEN
    172, //172-LABEL 11 ON MAIN SCREEN
    173, //173-LABEL 12 ON MAIN SCREEN
    174, //174-LABEL 13 ON MAIN SCREEN
    175, //175-LABEL 14 ON MAIN SCREEN
    176, //176-LABEL 15 ON MAIN SCREEN
    177, //177-LABEL 16 ON MAIN SCREEN
    178, //178-GROUP 7 PAGING ACTIVATED/OFF
    179, //179-
    // TEXT BOX DEFINITIONS
    180, //180-MID NUMBER ON AUDIO CONTROLS PAGE
    181, //181-LABEL FOR INPUT 1 ON MAIN PAGE
    182, //182-LABEL FOR INPUT 2 ON MAIN PAGE
    183, //183-LABEL FOR INPUT 3 ON MAIN PAGE
    184, //184-LABEL FOR INPUT 4 ON MAIN PAGE
    185, //185-LABEL FOR INPUT 5 ON MAIN PAGE
    186, //186-LABEL FOR INPUT 6 ON MAIN PAGE
    187, //187-LABEL FOR INPUT 7 ON MAIN PAGE
    188, //188-LABEL FOR INPUT 8 ON MAIN PAGE
    189, //189-LABEL FOR INPUT 9 ON MAIN PAGE
    190, //190-LABEL FOR INPUT 10 ON MAIN PAGE
    191, //191-LABEL FOR INPUT 11 ON MAIN PAGE
    192, //192-LABEL FOR INPUT 12 ON MAIN PAGE
    193, //193-LABEL FOR INPUT 13 ON MAIN PAGE
    194, //194-LABEL FOR INPUT 14 ON MAIN PAGE
    195, //195-LABEL FOR INPUT 15 ON MAIN PAGE
    196, //196-LABEL FOR INPUT 16 ON MAIN PAGE
    197, //197-INPUT NUMBER ON MAIN PAGE
    198, //198-VOLUME NUMBER ON MAIN PAGE
    199, //199-TEXT BOX THAT TELLS WHAT audio INPUT IS IN THE ROOM SELECTED ON MAIN PAGE
    200, //200-ROOM NUMBER ON MAIN PAGE
    201, //201-BASS NUMBER ON AUDIO CONTROLS PAGE
    202, //202-TREBLE NUMBER ON AUDIO CONTROLS PAGE
    203, //203-BALANCE NUMBER ON AUDIO CONTROLS PAGE
    204, //204-ROOM NUMBER ON VIDEO CONTROLS PAGE (VIDEO INPUTS THAT FOLLOW AUDIO)
    205, //205-TRIGGER NUMBER ON VIDEO CONTROLS PAGE
    206, //206-ROOM NUMBER ON VIDEO CONTROLS PAGE (ASSIGN TRIGGER FOR ROOM)
    207, //207-
    208, //208-DWELL TIME NUMBER
    209, //209-CYCLE COUNT NUMBER
    210, //210-INPUT NUMBER ON SETUP CONTROLS PAGE
    211, //211-LEVEL TRIM NUMBER ON SETUP CONTROLS PAGE
    212, //212-ROOM NUMBER FOR PARTY
    213, //213-INPUT NUMBER FOR PARTY
    214, //214-ROOM NUMBER TO PAGE
    215, //215-GROUP NUMBER TO PAGE
    216, //216-ROOM NUMBER TO EXCLUDE FROM PAGING
    217, //217-ROOM NUMBER TO MAKE MEMBER OF A PAGING GROUP
    218, //218-PAGING VOLUME
    219, //219-CURRENT ROOM NUMBER ON AUDIO CONTROLS PAGE
    220, //220-CURRENT ROOM NUMBER ON MAIN PAGE
    221, //221- software AUDIO card 1 version
    222, //222- software AUDIO card 2 version
    223, //223- software AUDIO card 3 version
    224, //224- software AUDIO card 4 version
    225, //225- software AUDIO card 5 version
    226, //226- software AUDIO card 6 version
    227, //227- software VIDEO card 1 version
    228, //228- software VIDEO card 2 version
    229, //229- software VIDEO card 3 version
    230, //230- software VIDEO card 4 version
    231, //231- software VIDEO card 5 version
    232, //232- software VIDEO card 6 version
    233, //233- TEXT BOX THAT TELLS WHAT video INPUT IS IN THE ROOM SELECTED ON MAIN PAGE
    // EXPANSION BUTTONS FOR PARTY ROOMS 5-8, MIDRANGE CONTROLS
    234, //234- SELECT PARTY 5 (ROOM)
    235, //235- SELECT PARTY 6 (ROOM)
    236, //236- SELECT PARTY 7 (ROOM)
    237, //237- SELECT PARTY 8 (ROOM)
    238, //238- SELECT PARTY 5 (INPUT)
    239, //239- SELECT PARTY 6 (INPUT)
    240, //240- SELECT PARTY 7 (INPUT)
    241, //241- SELECT PARTY 8 (INPUT)
    242, //242- MID UP ON AUDIO CONTROLS PAGE
    243, //243- MID DOWN ON AUDIO CONTROLS PAGE
    244 //244- TONE CYCLE ON AUDIO CONTROLS PAGE
    }

    //
    //
    //ADA TuneSuite Tuner
    //
    //

    INTEGER nTUNE_SUITE_BAUD = 19200 // Normally 19200, set to 1200 for older ADA systems

    CHAR cTUNE_SUITE_ADDR = '0' // See below; hex address for the tuner (0-F; default = '0')

    VOLATILE INTEGER TP_TuneSuite_BUTTONS[] = // Touchpanel button mapping array
    {
    // CHANNEL BUTTONS
    6, // 1 SEEK DOWN
    7, // 2 SEEK UP
    8, // 3 STEREO/MONO
    9, // 4 FILTER
    10, // 5 TUNER 1
    11, // 6 TUNER 2
    12, // 7 TUNER 3
    15, // 8 TUNER 4
    13, // 9 TUNE DOWN
    14, // 10 TUNE UP
    16, // NUM 1
    17, // NUM 2
    18, // NUM 3
    19, // NUM 4
    20, // NUM 5
    21, // NUM 6
    22, // NUM 7
    23, // NUM 8
    24, // NUM 9
    25, // 20 NUM DECIMAL
    26, // NUM 0
    27, // NUM OK
    30, // PRESET PREVIOUS
    31, // PRESET NEXT
    28, // 25 BAND TOGGLE
    29, // DE-EMPH TOGGLE
    32, // NUM CLEAR
    33, // PRESET SAVE
    34, // PRESET CLEAR
    35, // 30 GOTO TUNE
    36, // GOTO PRESETS
    37, // PRESET 0
    38, // PRESET 1
    39, // PRESET 2
    40, // 35 PRESET 3
    41, // PRESET 4
    42, // PRESET 5
    43, // PRESET 6
    44, // PRESET 7
    45, // 40 PRESET 8
    46, // PRESET 9
    47, // PRESET CLR
    48, // PRESET OK
    49, // XM PREV STATION
    50 // 45 XM NEXT STATION
    }

    VOLATILE INTEGER TP_TuneSuite_FIELDS[]= // VARIABLE TEXT BUTTONS
    {
    1, // 1 TUNER 1 FREQ DATA
    2, // 2 TUNER 2 FREQ DATA
    3, // 3 TUNER 3 FREQ DATA
    15, // 4 TUNER 4 FREQ DATA
    4, // 5 TUNER 1 LABEL TEXT
    5, // 6 TUNER 2 LABEL TEXT
    6, // 7 TUNER 3 LABEL TEXT
    16, // 8 TUNER 4 LABEL TEXT
    7, // 9 TUNER 1 BAND
    8, // 10 TUNER 2 BAND
    9, // TUNER 3 BAND
    17, // TUNER 4 BAND
    10, // VERSION/KEYPAD DISPLAY
    11, // TUNER 1 STEREO/MONO
    12, // 15 TUNER 2 STEREO/MONO
    13, // TUNER 3 STEREO/MONO
    18, // TUNER 4 STEREO/MONO
    19, // TUNER 1 XM CHANNEL
    20, // TUNER 2 XM CHANNEL
    21, // 20 TUNER 3 XM CHANNEL
    22, // TUNER 4 XM CHANNEL
    23, // TUNER 1 XM CATEGORY
    24, // TUNER 2 XM CATEGORY
    25, // TUNER 3 XM CATEGORY
    26, // 25 TUNER 4 XM CATEGORY
    27, // TUNER 1 XM STATION
    28, // TUNER 2 XM STATION
    29, // TUNER 3 XM STATION
    30, // TUNER 4 XM STATION
    31, // 30 TUNER 1 XM SONG
    32, // TUNER 2 XM SONG
    33, // TUNER 3 XM SONG
    34, // TUNER 4 XM SONG
    35, // TUNER 1 XM ARTIST
    36, // 35 TUNER 2 XM ARTIST
    37, // TUNER 3 XM ARTIST
    38 // TUNER 4 XM ARTIST

    }

    //
    //
    //Sonance : iPort
    //
    //

    INTEGER nCHAN_BTN[] = // CHANNEL BUTTONS ON TOUCH PANEL
    {
    1, //Play
    2, //Stop
    3, //Pause
    4, //Next Track
    5, //Previous Track
    6, //Scan Forward
    7, //Scan Reverse
    8, //Stop scanning
    9, //Menu
    10,
    11, //Selection 1
    12, //Selection 2
    13, //Selection 3
    14, //Selection 4
    15, //Selection 5
    16, //Selection 6
    17,
    18,
    19,
    20, //Previous Single Display
    21, //Next Single Display
    22, //Previous Page Display
    23, //Next Page Display
    24,
    25,
    26,
    27,
    28,
    29,
    30, //Repeat Off
    31, //Repeat One Track
    32, //Repeat All
    33, //Random Off
    34, //Random Songs
    35, //Random Albums
    36, //Play feedback
    37, //Stop Feedback
    38, //Pause Feedback
    39, //Connect
    40 //Disconnect
    }

    INTEGER nTXT_BTN[] = // TEXT BUTTONS ON TOUCH PANEL
    {
    1
    }
    VOLATILE INTEGER nLVL_BTN[] = // LEVEL BUTTONS
    {
    1
    }

    //
    //
    //Touch Panels Arrarys
    //
    //

    DEV System_Panel[]= {dvPanel_1a}
    DEV TuneSuite_Panel[]= {dvPanel_1b}
    DEV IPod_Panel[]= {dvPanel_1c}
    DEV CD_Panel[]= {dvPanel_1d}
    DEV Cable_Panel[]= {dvPanel_1e}
    DEV DVD_Panel[]= {dvPanel_1f}

    DEV vdvADA_ARRAY[] = {vdvADA_BUS, vdvTuner1}
    //DEV vdvADA_TuneSuite_Array[] = {vdvADA_BUS, vdvTuner1}
    DEV vdvTUNER_ARRAY[] = {vdvTUNER1, vdvTUNER2, vdvTUNER3, vdvTUNER4}

    DEV dvKeypads[]= {vdvKeypad_1,vdvKeypad_2,vdvKeypad_3,vdvKeypad_4,vdvKeypad_5,vdvKeypad_6,vdvKeypad_7,vdvKeypad_8,vdvKeypad_9}

    (***********************************************************)
    (* LATCHING DEFINITIONS GO BELOW *)
    (***********************************************************)
    DEFINE_LATCHING

    (***********************************************************)
    (* MUTUALLY EXCLUSIVE DEFINITIONS GO BELOW *)
    (***********************************************************)
    DEFINE_MUTUALLY_EXCLUSIVE

    //
    //
    //System : Touch Panel Feedback
    //
    //

    ([dvPanel_1a,nRoom_Buttons[1]] .. [dvPanel_1a,nRoom_Buttons[9]]) ///Room feedback control for panel 1

    //
    //
    //System : MSP8 Keypad Feedback
    //
    //

    ([vdvKeypad_1,nKeypad_Source_Buttons[1]] .. [vdvKeypad_1,nKeypad_Source_Buttons[4]], [vdvKeypad_1,nKeypad_Power_Buttons[1]])
    ([vdvKeypad_2,nKeypad_Source_Buttons[1]] .. [vdvKeypad_2,nKeypad_Source_Buttons[4]], [vdvKeypad_2,nKeypad_Power_Buttons[1]])
    ([vdvKeypad_3,nKeypad_Source_Buttons[1]] .. [vdvKeypad_3,nKeypad_Source_Buttons[4]], [vdvKeypad_3,nKeypad_Power_Buttons[1]])
    ([vdvKeypad_4,nKeypad_Source_Buttons[1]] .. [vdvKeypad_4,nKeypad_Source_Buttons[4]], [vdvKeypad_4,nKeypad_Power_Buttons[1]])
    ([vdvKeypad_5,nKeypad_Source_Buttons[1]] .. [vdvKeypad_5,nKeypad_Source_Buttons[4]], [vdvKeypad_5,nKeypad_Power_Buttons[1]])
    ([vdvKeypad_6,nKeypad_Source_Buttons[1]] .. [vdvKeypad_6,nKeypad_Source_Buttons[4]], [vdvKeypad_6,nKeypad_Power_Buttons[1]])
    ([vdvKeypad_7,nKeypad_Source_Buttons[1]] .. [vdvKeypad_7,nKeypad_Source_Buttons[4]], [vdvKeypad_7,nKeypad_Power_Buttons[1]])
    ([vdvKeypad_8,nKeypad_Source_Buttons[1]] .. [vdvKeypad_8,nKeypad_Source_Buttons[4]], [vdvKeypad_8,nKeypad_Power_Buttons[1]])
    ([vdvKeypad_9,nKeypad_Source_Buttons[1]] .. [vdvKeypad_9,nKeypad_Source_Buttons[4]], [vdvKeypad_9,nKeypad_Power_Buttons[1]])

    (***********************************************************)
    (* SUBROUTINE/FUNCTION DEFINITIONS GO BELOW *)
    (***********************************************************)
    (* EXAMPLE: DEFINE_FUNCTION <RETURN_TYPE> <NAME> (<PARAMETERS>) *)
    (* EXAMPLE: DEFINE_CALL '<NAME>' (<PARAMETERS>) *)
    (***********************************************************)

    //
    //
    //Debug
    //
    //

    Define_Function debug (Char strMsg[])
    {
    send_string 0,"'WH Control: ',strMsg"
    }

    //
    //
    //System Calls : Tv - On; Off; Source Switch
    //
    //

    DEFINE_CALL 'Sun Room TV On'
    {
    debug("'Running SunRoom Tv Power On!'")
    PULSE[dvSunRoom_TV,27]
    PULSE[dvSunRoom_Dvd,27]
    IF([dvSunRoom_IO,2] = 1) {PULSE[dvSunRoom_Cable,9]}
    nTv_Power[nRoom_Index[nPanel_Index]] = 1
    WAIT 20 {Call 'Sun Room TV Source'}
    }

    DEFINE_CALL 'Sun Room TV Source'
    {
    debug("'Running SunRoom Tv Source Selection!'")
    SWITCH(Rooms[nRoom_Index[nPanel_Index]].Cur_Source)
    {
    CASE 12: {PULSE[dvSunRoom_TV,91] Break} /// Cable
    CASE 13: {PULSE[dvSunRoom_TV,92] Break} /// Dvd
    }
    }

    DEFINE_CALL 'Sun Room Tv Off'
    {
    debug("'Running SunRoom Tv Power Off!'")
    PULSE[dvSunRoom_TV,28]
    PULSE[dvSunRoom_Dvd,28]
    IF(![dvSunRoom_IO,2] = 1) {PULSE[dvSunRoom_Cable,9]}
    nTv_Power[nRoom_Index[nPanel_Index]] = 0
    }

    //
    //
    //System Calls : System Keypad Entry
    //
    //

    DEFINE_CALL 'Direct Channel Entry'
    {
    nNumber1 = ATOI(Left_String(strKPValue,1))
    nNumber2 = ATOI(Mid_String(strKPValue,2,1))
    nNumber3 = ATOI(Right_String(strKPValue,1))

    IF(nNumber1 = 0 and nNumber2 = 0)
    {
    //send_command vdvTUNER2,"'TUNE=',ITOA(nNumber3)"
    send_command vdvTUNER_ARRAY,"'TUNE=',ITOA(nNumber3)"
    }
    ELSE IF(nNumber1 = 0)
    {
    //send_command vdvTUNER2,"'TUNE=',ITOA(nNumber2),ITOA(nNumber3)"
    send_command vdvTUNER_ARRAY,"'TUNE=',ITOA(nNumber2),ITOA(nNumber3)"
    }
    ELSE
    {
    //send_command vdvTUNER2,"'TUNE=',ITOA(nNumber1),ITOA(nNumber2),ITOA(nNumber3)"
    send_command vdvTUNER_ARRAY,"'TUNE=',ITOA(nNumber1),ITOA(nNumber2),ITOA(nNumber3)"
    }

    WAIT 25
    {
    strKPValue = ''
    nNumber1 = 0
    nNumber2 = 0
    nNumber3 = 0
    }
    }

    //
    //
    //System Calls : System Keypad Entry
    //
    //

    DEFINE_CALL 'System Keypad Entry'
    {
    Select
    {
    ACTIVE(LENGTH_STRING(strKP) = 1):
    {
    strKP = "'00',strKP"
    }
    ACTIVE(LENGTH_STRING(strKP) = 2):
    {
    strKP = "'0',strKP"
    }
    }

    nNumber1a = ATOI(Left_String(strKP,1))
    nNumber2a = ATOI(Mid_String(strKP,2,1))
    nNumber3a = ATOI(Right_String(strKP,1))

    PULSE[dvSunRoom_Cable,nNumber1a + 10]
    Wait 4
    PULSE[dvSunRoom_Cable,nNumber2a + 10]
    Wait 8
    PULSE[dvSunRoom_Cable,nNumber3a + 10]

    WAIT 25
    {
    strKP = ''
    nNumber1a = 0
    nNumber2a = 0
    nNumber3a = 0
    }
    }
    (***********************************************************)
    (* STARTUP CODE GOES BELOW *)
    (***********************************************************)
    DEFINE_START

    //
    //
    //System : Set Startup Defualts
    //
    //

    strZn_Pwr = 'FFFFFFFFFFFFFFFF'
    Set_Pulse_Time (2)

    //
    //
    //System : Buffer Creation
    //
    //

    CREATE_BUFFER System_Panel,strTP_Buffer

    //
    //
    //System : Set Room Index's
    //
    //

    nRoom_Index[1] = 1
    nRoom_Index[2] = 2
    nRoom_Index[3] = 3
    nRoom_Index[4] = 4
    nRoom_Index[5] = 5
    nRoom_Index[6] = 6
    nRoom_Index[7] = 7
    nRoom_Index[8] = 8
    nRoom_Index[9] = 9

    //
    //
    //System : Module Definitions
    //
    //

    //
    //
    //ADA : Suite 16 Digital Switcher
    //
    //

    NL_NO_BUTTON = NX_NO_BUTTON // NO BUTTON DEFINITION

    Define_Module 'ADA_Bus_Comm' ADA_BUS_Comm (vdvAda_array,dvADA_PORT)
    Define_Module 'ADA_STE16_DIGI_COMM' Suite16_Com (vdvADA_BUS,vdvADA_Suite16)

    Define_Module 'ADA_STE16_DIGI_UI' UI1(dvPanel_1a,vdvADA_Suite16 ,ADA_BUTTONS,NL_NO_BUTTON,nRoom_Index[1])

    //
    //
    //ADA : TuneSuite Tuner
    //
    //

    Define_Module 'ADA_Tune_Suite_Comm' Tune_Suite_Comm (vdvADA_BUS,vdvTuner_Array,nTune_Suite_Baud,cTune_Suite_Addr)

    Define_Module 'ADA_Tune_Suite_UI' Tune_Suite_UI (dvPanel_1b,vdvTuner_Array,TP_TuneSuite_BUTTONS,TP_TuneSuite_FIELDS)

    //
    //
    //Sonance : iPort iDock
    //
    //

    Define_Module 'Sonance_iPort_Comm_dr1_0_0' DuetCode(vdvIPod,dvIPod)

    Define_Module 'Sonance_iPort_UI' TP1(vdvIPod,dvPanel_1c,nChan_Btn,nTxt_Btn,nLvl_Btn)

    //
    //
    //MSP8 : Keypads
    //
    //

    Define_Module 'MSPMod' modMSP1 (vdvKeypad_1, dvKeypad_1)
    Define_Module 'MSPMod' modMSP2 (vdvKeypad_2, dvKeypad_2)
    Define_Module 'MSPMod' modMSP3 (vdvKeypad_3, dvKeypad_3)
    Define_Module 'MSPMod' modMSP4 (vdvKeypad_4, dvKeypad_4)
    Define_Module 'MSPMod' modMSP5 (vdvKeypad_5, dvKeypad_5)
    Define_Module 'MSPMod' modMSP6 (vdvKeypad_6, dvKeypad_6)
    Define_Module 'MSPMod' modMSP7 (vdvKeypad_7, dvKeypad_7)
    Define_Module 'MSPMod' modMSP8 (vdvKeypad_8, dvKeypad_8)
    Define_Module 'MSPMod' modMSP9 (vdvKeypad_9, dvKeypad_9)

    (***********************************************************)
    (* THE EVENTS GO BELOW *)
    (***********************************************************)
    DEFINE_EVENT


    //
    //
    //System : Room Data Population
    //
    //

    DATA_EVENT[0:1:0]
    {
    ONLINE:
    {

    //
    //
    //Room 1 : Living Room
    //
    //

    Rooms[1].Index = 1
    Rooms[1].Name = 'Living Room'
    Rooms[1].Audio_Stat = 1
    Rooms[1].Video_Stat = 0
    Rooms[1].Lighting = 0
    Rooms[1].Cur_Source = 0

    Rooms[1].Source_Mapping[1] = AM_FM /// AM / FM Input - 1
    Rooms[1].Source_Mapping[2] = CD /// CD Input - 2
    Rooms[1].Source_Mapping[3] = XM /// XM Input - 3
    Rooms[1].Source_Mapping[4] = iPod /// iPod - 4
    Rooms[1].Source_Mapping[5] = Temp_Dev /// < OPEN > - 5
    Rooms[1].Source_Mapping[6] = Temp_Dev /// < OPEN > - 6
    Rooms[1].Source_Mapping[7] = Temp_Dev /// < OPEN > - 7
    Rooms[1].Source_Mapping[8] = Temp_Dev /// < OPEN > - 8
    Rooms[1].Source_Mapping[9] = Temp_Dev /// < OPEN > - 9
    Rooms[1].Source_Mapping[10] = Temp_Dev /// < OPEN > - 10
    Rooms[1].Source_Mapping[11] = Temp_Dev /// Satellite Input - 11
    Rooms[1].Source_Mapping[12] = Cable /// Cable Input - 12
    Rooms[1].Source_Mapping[13] = Dvd /// Dvd Input - 13

    //
    //
    //Room 2 : Sun Room
    //
    //

    Rooms[2].Index = 2
    Rooms[2].Name = 'Sun Room'
    Rooms[2].Audio_Stat = 1
    Rooms[2].Video_Stat = 1
    Rooms[2].Lighting = 0
    Rooms[2].Cur_Source = 0

    Rooms[2].Source_Mapping[1] = AM_FM /// AM / FM Input - 1
    Rooms[2].Source_Mapping[2] = CD /// CD Input - 2
    Rooms[2].Source_Mapping[3] = XM /// XM Input - 3
    Rooms[2].Source_Mapping[4] = iPod /// iPod - 4
    Rooms[2].Source_Mapping[5] = Temp_Dev /// < OPEN > - 5
    Rooms[2].Source_Mapping[6] = Temp_Dev /// < OPEN > - 6
    Rooms[2].Source_Mapping[7] = Temp_Dev /// < OPEN > - 7
    Rooms[2].Source_Mapping[8] = Temp_Dev /// < OPEN > - 8
    Rooms[2].Source_Mapping[9] = Temp_Dev /// < OPEN > - 9
    Rooms[2].Source_Mapping[10] = Temp_Dev /// < OPEN > - 10
    Rooms[2].Source_Mapping[11] = Temp_Dev /// Satellite Input - 11
    Rooms[2].Source_Mapping[12] = Cable /// Cable Input - 12
    Rooms[2].Source_Mapping[13] = Dvd /// Dvd Input - 13

    //
    //
    //Room 3 : Master Bedroom
    //
    //

    Rooms[3].Index = 3
    Rooms[3].Name = 'Master Bedroom'
    Rooms[3].Audio_Stat = 1
    Rooms[3].Video_Stat = 0
    Rooms[3].Lighting = 0
    Rooms[3].Cur_Source = 0

    Rooms[3].Source_Mapping[1] = AM_FM /// AM / FM Input - 1
    Rooms[3].Source_Mapping[2] = CD /// CD Input - 2
    Rooms[3].Source_Mapping[3] = XM /// XM Input - 3
    Rooms[3].Source_Mapping[4] = iPod /// iPod - 4
    Rooms[3].Source_Mapping[5] = Temp_Dev /// < OPEN > - 5
    Rooms[3].Source_Mapping[6] = Temp_Dev /// < OPEN > - 6
    Rooms[3].Source_Mapping[7] = Temp_Dev /// < OPEN > - 7
    Rooms[3].Source_Mapping[8] = Temp_Dev /// < OPEN > - 8
    Rooms[3].Source_Mapping[9] = Temp_Dev /// < OPEN > - 9
    Rooms[3].Source_Mapping[10] = Temp_Dev /// < OPEN > - 10
    Rooms[3].Source_Mapping[11] = Temp_Dev /// Satellite Input - 11
    Rooms[3].Source_Mapping[12] = Cable /// Cable Input - 12
    Rooms[3].Source_Mapping[13] = Dvd /// Dvd Input - 13

    //
    //
    //Room 4 : Master Bathroom
    //
    //

    Rooms[4].Index = 4
    Rooms[4].Name = 'Master Bathroom'
    Rooms[4].Audio_Stat = 1
    Rooms[4].Video_Stat = 0
    Rooms[4].Lighting = 0
    Rooms[4].Cur_Source = 0

    Rooms[4].Source_Mapping[1] = AM_FM /// AM / FM Input - 1
    Rooms[4].Source_Mapping[2] = CD /// CD Input - 2
    Rooms[4].Source_Mapping[3] = XM /// XM Input - 3
    Rooms[4].Source_Mapping[4] = iPod /// iPod - 4
    Rooms[4].Source_Mapping[5] = Temp_Dev /// < OPEN > - 5
    Rooms[4].Source_Mapping[6] = Temp_Dev /// < OPEN > - 6
    Rooms[4].Source_Mapping[7] = Temp_Dev /// < OPEN > - 7
    Rooms[4].Source_Mapping[8] = Temp_Dev /// < OPEN > - 8
    Rooms[4].Source_Mapping[9] = Temp_Dev /// < OPEN > - 9
    Rooms[4].Source_Mapping[10] = Temp_Dev /// < OPEN > - 10
    Rooms[4].Source_Mapping[11] = Temp_Dev /// Satellite Input - 11
    Rooms[4].Source_Mapping[12] = Cable /// Cable Input - 12
    Rooms[4].Source_Mapping[13] = Dvd /// Dvd Input - 13

    //
    //
    //Room 5 : Master Bathroom
    //
    //

    Rooms[5].Index = 5
    Rooms[5].Name = 'Guest Bedroom # 2'
    Rooms[5].Audio_Stat = 1
    Rooms[5].Video_Stat = 0
    Rooms[5].Lighting = 0
    Rooms[5].Cur_Source = 0

    Rooms[5].Source_Mapping[1] = AM_FM /// AM / FM Input - 1
    Rooms[5].Source_Mapping[2] = CD /// CD Input - 2
    Rooms[5].Source_Mapping[3] = XM /// XM Input - 3
    Rooms[5].Source_Mapping[4] = iPod /// iPod - 4
    Rooms[5].Source_Mapping[5] = Temp_Dev /// < OPEN > - 5
    Rooms[5].Source_Mapping[6] = Temp_Dev /// < OPEN > - 6
    Rooms[5].Source_Mapping[7] = Temp_Dev /// < OPEN > - 7
    Rooms[5].Source_Mapping[8] = Temp_Dev /// < OPEN > - 8
    Rooms[5].Source_Mapping[9] = Temp_Dev /// < OPEN > - 9
    Rooms[5].Source_Mapping[10] = Temp_Dev /// < OPEN > - 10
    Rooms[5].Source_Mapping[11] = Temp_Dev /// Satellite Input - 11
    Rooms[5].Source_Mapping[12] = Cable /// Cable Input - 12
    Rooms[5].Source_Mapping[13] = Dvd /// Dvd Input - 13

    //
    //
    //Room 6 : Kitchen
    //
    //

    Rooms[6].Index = 6
    Rooms[6].Name = 'Kitchen'
    Rooms[6].Audio_Stat = 1
    Rooms[6].Video_Stat = 0
    Rooms[6].Lighting = 0
    Rooms[6].Cur_Source = 0

    Rooms[6].Source_Mapping[1] = AM_FM /// AM / FM Input - 1
    Rooms[6].Source_Mapping[2] = CD /// CD Input - 2
    Rooms[6].Source_Mapping[3] = XM /// XM Input - 3
    Rooms[6].Source_Mapping[4] = iPod /// iPod - 4
    Rooms[6].Source_Mapping[5] = Temp_Dev /// < OPEN > - 5
    Rooms[6].Source_Mapping[6] = Temp_Dev /// < OPEN > - 6
    Rooms[6].Source_Mapping[7] = Temp_Dev /// < OPEN > - 7
    Rooms[6].Source_Mapping[8] = Temp_Dev /// < OPEN > - 8
    Rooms[6].Source_Mapping[9] = Temp_Dev /// < OPEN > - 9
    Rooms[6].Source_Mapping[10] = Temp_Dev /// < OPEN > - 10
    Rooms[6].Source_Mapping[11] = Temp_Dev /// Satellite Input - 11
    Rooms[6].Source_Mapping[12] = Cable /// Cable Input - 12
    Rooms[6].Source_Mapping[13] = Dvd /// Dvd Input - 13

    //
    //
    //Room 7 : Office
    //
    //

    Rooms[7].Index = 7
    Rooms[7].Name = 'Office'
    Rooms[7].Audio_Stat = 1
    Rooms[7].Video_Stat = 0
    Rooms[7].Lighting = 0
    Rooms[7].Cur_Source = 0

    Rooms[7].Source_Mapping[1] = AM_FM /// AM / FM Input - 1
    Rooms[7].Source_Mapping[2] = CD /// CD Input - 2
    Rooms[7].Source_Mapping[3] = XM /// XM Input - 3
    Rooms[7].Source_Mapping[4] = iPod /// iPod - 4
    Rooms[7].Source_Mapping[5] = Temp_Dev /// < OPEN > - 5
    Rooms[7].Source_Mapping[6] = Temp_Dev /// < OPEN > - 6
    Rooms[7].Source_Mapping[7] = Temp_Dev /// < OPEN > - 7
    Rooms[7].Source_Mapping[8] = Temp_Dev /// < OPEN > - 8
    Rooms[7].Source_Mapping[9] = Temp_Dev /// < OPEN > - 9
    Rooms[7].Source_Mapping[10] = Temp_Dev /// < OPEN > - 10
    Rooms[7].Source_Mapping[11] = Temp_Dev /// Satellite Input - 11
    Rooms[7].Source_Mapping[12] = Cable /// Cable Input - 12
    Rooms[7].Source_Mapping[13] = Dvd /// Dvd Input - 13

    //
    //
    //Room 8 : Guest Bedroom # 5
    //
    //

    Rooms[8].Index = 8
    Rooms[8].Name = 'Guest Bedroom # 5'
    Rooms[8].Audio_Stat = 1
    Rooms[8].Video_Stat = 0
    Rooms[8].Lighting = 0
    Rooms[8].Cur_Source = 0

    Rooms[8].Source_Mapping[1] = AM_FM /// AM / FM Input - 1
    Rooms[8].Source_Mapping[2] = CD /// CD Input - 2
    Rooms[8].Source_Mapping[3] = XM /// XM Input - 3
    Rooms[8].Source_Mapping[4] = iPod /// iPod - 4
    Rooms[8].Source_Mapping[5] = Temp_Dev /// < OPEN > - 5
    Rooms[8].Source_Mapping[6] = Temp_Dev /// < OPEN > - 6
    Rooms[8].Source_Mapping[7] = Temp_Dev /// < OPEN > - 7
    Rooms[8].Source_Mapping[8] = Temp_Dev /// < OPEN > - 8
    Rooms[8].Source_Mapping[9] = Temp_Dev /// < OPEN > - 9
    Rooms[8].Source_Mapping[10] = Temp_Dev /// < OPEN > - 10
    Rooms[8].Source_Mapping[11] = Temp_Dev /// Satellite Input - 11
    Rooms[8].Source_Mapping[12] = Cable /// Cable Input - 12
    Rooms[8].Source_Mapping[13] = Dvd /// Dvd Input - 13

    //
    //
    //Room 9 : Guest Bathroom # 2
    //
    //

    Rooms[9].Index = 9
    Rooms[9].Name = 'Guest Bathroom # 2'
    Rooms[9].Audio_Stat = 1
    Rooms[9].Video_Stat = 0
    Rooms[9].Lighting = 0
    Rooms[9].Cur_Source = 0

    Rooms[9].Source_Mapping[1] = AM_FM /// AM / FM Input - 1
    Rooms[9].Source_Mapping[2] = CD /// CD Input - 2
    Rooms[9].Source_Mapping[3] = XM /// XM Input - 3
    Rooms[9].Source_Mapping[4] = iPod /// iPod - 4
    Rooms[9].Source_Mapping[5] = Temp_Dev /// < OPEN > - 5
    Rooms[9].Source_Mapping[6] = Temp_Dev /// < OPEN > - 6
    Rooms[9].Source_Mapping[7] = Temp_Dev /// < OPEN > - 7
    Rooms[9].Source_Mapping[8] = Temp_Dev /// < OPEN > - 8
    Rooms[9].Source_Mapping[9] = Temp_Dev /// < OPEN > - 9
    Rooms[9].Source_Mapping[10] = Temp_Dev /// < OPEN > - 10
    Rooms[9].Source_Mapping[11] = Temp_Dev /// Satellite Input - 11
    Rooms[9].Source_Mapping[12] = Cable /// Cable Input - 12
    Rooms[9].Source_Mapping[13] = Dvd /// Dvd Input - 13

    }
    }

    //
    //
    //System : XM Guide Data Population
    //
    //

    DATA_EVENT[0:1:0]
    {
    ONLINE:
    {
    //
    //
    //Decades (1)
    //
    //

    XM_GUIDE[1].Index = 1
    XM_GUIDE[1].Chan = '004'
    XM_GUIDE[1].Name = 'The 40s'
    XM_GUIDE[1].Description = 'Thirties and Forties Hits'
    XM_GUIDE[1].Genre = 'Decades'

    XM_GUIDE[2].Index = 2
    XM_GUIDE[2].Chan = '005'
    XM_GUIDE[2].Name = 'The 50s'
    XM_GUIDE[2].Description = 'Fifties Hits'
    XM_GUIDE[2].Genre = 'Decades'

    XM_GUIDE[3].Index = 3
    XM_GUIDE[3].Chan = '006'
    XM_GUIDE[3].Name = 'The 60s'
    XM_GUIDE[3].Description = 'Sixties Hits'
    XM_GUIDE[3].Genre = 'Decades'

    XM_GUIDE[4].Index = 4
    XM_GUIDE[4].Chan = '007'
    XM_GUIDE[4].Name = 'The 70s'
    XM_GUIDE[4].Description = 'Seventies Hits'
    XM_GUIDE[4].Genre = 'Decades'

    XM_GUIDE[5].Index = 5
    XM_GUIDE[5].Chan = '008'
    XM_GUIDE[5].Name = 'The 80s'
    XM_GUIDE[5].Description = 'Eighties Hits'
    XM_GUIDE[5].Genre = 'Decades'

    XM_GUIDE[6].Index = 6
    XM_GUIDE[6].Chan = '009'
    XM_GUIDE[6].Name = 'The 90s'
    XM_GUIDE[6].Description = 'Ninties Hits'
    XM_GUIDE[6].Genre = 'Decades'

    //
    //
    //Country & Folk (2)
    //
    //

    XM_GUIDE[7].Index = 7
    XM_GUIDE[7].Chan = '010'
    XM_GUIDE[7].Name = 'America'
    XM_GUIDE[7].Description = 'Classic Country'
    XM_GUIDE[7].Genre = 'Country & Folk'

    XM_GUIDE[8].Index = 8
    XM_GUIDE[8].Chan = '012'
    XM_GUIDE[8].Name = 'X Country'
    XM_GUIDE[8].Description = 'Americana'
    XM_GUIDE[8].Genre = 'Country & Folk'

    XM_GUIDE[9].Index = 9
    XM_GUIDE[9].Chan = '013'
    XM_GUIDE[9].Name = 'Willies Place'
    XM_GUIDE[9].Description = 'Willie Nelsons Tradition Country'
    XM_GUIDE[9].Genre = 'Country & Folk'

    XM_GUIDE[10].Index = 10
    XM_GUIDE[10].Chan = '014'
    XM_GUIDE[10].Name = 'Bluegrass'
    XM_GUIDE[10].Description = 'Bluegrass'
    XM_GUIDE[10].Genre = 'Country & Folk'

    XM_GUIDE[11].Index = 11
    XM_GUIDE[11].Chan = '015'
    XM_GUIDE[11].Name = 'The Village'
    XM_GUIDE[11].Description = 'Folk'
    XM_GUIDE[11].Genre = 'Country & Folk'

    XM_GUIDE[12].Index = 12
    XM_GUIDE[12].Chan = '016'
    XM_GUIDE[12].Name = 'Highway 16'
    XM_GUIDE[12].Description = 'New Country Hits'
    XM_GUIDE[12].Genre = 'Country & Folk'

    XM_GUIDE[13].Index = 13
    XM_GUIDE[13].Chan = '017'
    XM_GUIDE[13].Name = 'US Country'
    XM_GUIDE[13].Description = '80s & 90s Country'
    XM_GUIDE[13].Genre = 'Country & Folk'

    //
    //
    //Pop & Hits (3)
    //
    //

    XM_GUIDE[14].Index = 14
    XM_GUIDE[14].Chan = '020'
    XM_GUIDE[14].Name = 'Top 20 On 20'
    XM_GUIDE[14].Description = 'Top 20 Hits'
    XM_GUIDE[14].Genre = 'Pop & Hits'

    XM_GUIDE[15].Index = 15
    XM_GUIDE[15].Chan = '023'
    XM_GUIDE[15].Name = 'The Heart'
    XM_GUIDE[15].Description = 'Love Songs'
    XM_GUIDE[15].Genre = 'Pop & Hits'

    XM_GUIDE[16].Index = 16
    XM_GUIDE[16].Chan = '025'
    XM_GUIDE[16].Name = 'The Blend'
    XM_GUIDE[16].Description = 'Lite Pop Hits'
    XM_GUIDE[16].Genre = 'Pop & Hits'

    XM_GUIDE[17].Index = 17
    XM_GUIDE[17].Chan = '026'
    XM_GUIDE[17].Name = 'Flight 26'
    XM_GUIDE[
  • Got it working need to combine the mini softwire panel with the virutal device lol
  • HI Guys,
    I need to know if any of you knows, or have these keypads (MSP8 - Axlink) for sale in good condition. I have this client, and all his house has keypads everywhere. This project has around 16 years and all the keypads are almost disintegrating. I need to replace them with same or other keypad that could do the job. Suggestions welcome.

    Thanks!

  • John NagyJohn Nagy Posts: 1,742

    There are six for sale on the bay of e as I type this reply.

  • @John Nagy said:
    There are six for sale on the bay of e as I type this reply.

    Thanks!

Sign In or Register to comment.