Event stacking
vegastech
Junior Member
Is it possible to stack devchans with regard to button or channel events? I have several, identically-sized devchans created for the purposes of tracking which input/output buttons have been selected: devchan1 has buttons 1,3,5,7,9 in it, devchan2 has buttons 2,4,6,8,10 in it, and devchan3 has buttons 22,23,26,28,30 in it. What I WANT to do is to be able to stack the devchan button events for the purposes of tracking 1) which devchan was selected last, and 2) which item in that devchan was selected. However, I don't know if it can be done, since even though the devchans are named in numerical order, it seems that the button event looks for a unique devchan name, instead of being able to do this: button_event[devchan(i)]. Am I even on the right path for what I want to do? My gut tells me that I can't stack devchans like this.
Comments
-
Show a code example or try to explain more clearly what you want to do. (for instance: a devchan is a device,channel pair, whereas you are specifying only channels in your writeup - are you using device, array button_events or devchan? more importantly, what do you want to accomplish?)
-
I've got 4 devchan arrays created, each with 4 devchan pairs. I would like to use each of the arrays to track the last-selected (read get_last) button in order to ensure that only one input is being selected at a time.
DEVCHAN dcSwitcherOut1 [] = { //inputs available for output 1 {dvTPswitch,1},{dvTPswitch,2},{dvTPswitch,3},{dvTPswitch,4} } DEVCHAN dcSwitcherOut2 [] = { //inputs available for output 2 {dvTPswitch,5},{dvTPswitch,6},{dvTPswitch,7},{dvTPswitch,8} } DEVCHAN dcSwitcherOut3 [] = { //inputs available for output 3 {dvTPswitch,9},{dvTPswitch,10},{dvTPswitch,11},{dvTPswitch,12} } DEVCHAN dcSwitcherOut4 [] = { //inputs available for output 4 {dvTPswitch,13},{dvTPswitch,14},{dvTPswitch,15},{dvTPswitch,16} } DEFINE_VARIABLE NON_VOLATILE INTEGER nInputValue[4] //variable array tracks which devchan selected which input DEFINE_EVENT BUTTON_EVENT[dcSwitcherOut1] { PUSH: { nInputValue[1] = GET_LAST(dcSwitcherOut1) } } BUTTON_EVENT[dcSwitcherOut2] { PUSH: { nInputValue[2] = GET_LAST(dcSwitcherOut2) } } BUTTON_EVENT[dcSwitcherOut3] { PUSH: { nInputValue[3] = GET_LAST(dcSwitcherOut3) } } BUTTON_EVENT[dcSwitcherOut4] { PUSH: { nInputValue[4] = GET_LAST(dcSwitcherOut4) } }So at this point, I can definitely track when nInputValue's array values change based on the individual button press. I was hoping, however, to be able to stack the button events, and use a FOR loop to propagate the values here, but I still don't know entirely what I am doing, nor if it is even possible, based on the use of DEVCHAN arrays. Obviously I will also need to create a data event for this so that I can send the string to the switcher, but that's additional research that I haven't started yet.
-
So after your explanation, I think I get what you're trying to achieve and I had done this before. Instead of using DEVCHANs, I used a double array of channels. I wanted to have each zone control volume easily using of course UP/DOWN/MUTE. Here's what I did, and perhaps it'll give you a starting point.
The FOR loop is probably what you're looking for. Of course - this is just one way of doing what you're trying to achieve, but hopefully this will give you some ideas. (See attached code.)
Categories
- All Categories
- 2.5K AMX General Discussion
- 922 AMX Technical Discussion
- 514 AMX Hardware
- 502 AMX Control Products
- 3 AMX Video Distribution Products
- 9 AMX Networked AV (SVSI) Products
- AMX Workspace & Collaboration Products
- 3.4K AMX Software
- 151 AMX Resource Management Suite Software
- 386 AMX Design Tools
- 2.4K NetLinx Studio
- 135 Duet/Cafe Duet
- 248 NetLinx Modules & Duet Modules
- 57 AMX RPM Forum
- 228 MODPEDIA - The Public Repository of Modules for Everyone
- 943 AMX Specialty Forums
- 2.6K AMXForums Archive
- 2.6K AMXForums Archive Threads
- 1.5K AMX Hardware
- 432 AMX Applications and Solutions
- 249 Residential Forum
- 182 Tips and Tricks
- 146 AMX Website/Forums