vickyg2003 wrote:I don't know how much you've picked up on how hard we extender writers fight for bytes, but I can tell you I look at every piece of code, and arrange anything to minimize every step of code in order to leave as much room as I can, for keymoves, macros and upgrades.
I do appreciate that - it's truly remarkable what you do squeeze in.
I'm lucky - I can use "bloaty" code like PHP/JAVA/SQL for what I do
vickyg2003 wrote:Those 2 bytes are nothing but place holders. They don't do anything but satisfy an IR requirement to be a device....
Each remote has error checking to make sure the device index is in bounds. If you try and use a device outside that limit, the remote reboots.
I can't find a way around the error checking on the device limit, but I can find a way to swap the keymoves when I multiplex.
I thought I'd understood that ok - maybe I didn't
My badly explained idea was that you'd still do what you're doing here - but you would have macro commands that do what your macros are doing
and set the HT mode - so for instance:
device TV is 0001
device i_A is 0002
for a device key to select i_A your macro would look something like
dev_iA ; set_vol_keys ; set_chan_keys etc...
(but this relies on 8910 style commands to have enough commands available)
where dev_iA multiplexes device 0002 onto the TV register (in the temporary HT table you described right at the start - by swapping out a value)
(the extender would be "doing" all this for the user)
That would mean you only ever had to use the 5 real device index values, I thought.
You'd need somewhere in the remote to store the device numbers selected in IR for the corresponding i_ devices though, and I guess that's the problem.
I'm not going to post any more along these lines, though, because I think I'm wandering off too far, trying too hard to turn your Advanced Multiplexing into "real devices" , and the 2 things are different...
Just one last question, though - which will prove I'm not getting it:
you said
Those 2 bytes are nothing but place holders.
Could they still be used to store actual device/upgrade numbers ?
Or is that too stupid, and you didn't mean they were "nothing" in that sense - ie: they hold a pointer or something that can't alter ?