Actually the more that I thought about it last night, I'm not sure that option (a) is all that viable.
I many of the extenders, you will have a lot of temporary device settings and depending in the macro where you are, the temp device will be different and thus the key that is going to be substituted could have a different effect.
(I'm somewhat cautious of Chris' protocol upgrade that executes the key pressed when in use with the extender by the way as it doesn't clean up things that the extender cleans up when it passes control back to the core remote, so I wouldn't recommend using it. I think it's safe with the unextended remote)
option (b) adding the key to the end would at least produce consistent results. (although not necessarily desirable since a temp-device cancellation may not have taken place)
ignoring the key seems like the right thing to do (which is what I implemented in the 3147 and 3179 extender)
re: Liz
Interrupting and killing a macro totally will introduce a pretty significant delay between each of the keys since I'm going to have to scan the keypad in between every key. I guess I could "skip" the scan with a flag setting but that's more code and some of the JP1.3 extenders are pretty tight as it is. (the RCA is one of them since it has so much configuration data there is less room for the extender)
When you say "flexible delay between macro keys" do you mean:
- 1: a delay that is used between all of the keys in every macro (easy)
2: a delay that is used between the keys in each macro, but can be different for each macro (much harder, would likely require support in IR and RMIR to do it)
3: a delay that is different between every key within a macro and different in different macros (makes my head hurt)
(1) is already implemented in the 3147 extender (not the one that is in private beta) and in V1.01 of the 3179 extender that I'm gonna need some testers for.
(2) and (3) would likely require a "new format" for storing macros that had the delay embedded into them and thus would require changes to IR and RMIR and Extinstall to deal with it. Again, not impossible but I'm not sure that it's really worth the effort.