Since this thread got pretty long, and it can be done, I thought I'll summarize the three approaches.
Let's say we want this test macro to repeat:
CH+;CH+;Vol+;Vol+;1;SHIFT-Angle{Sleep}
This is an unrealistic example but I need to be sure ch and 1 go to the calling device, and vol always to the tuner becase of volume punch through, so that's my test macro. SHIFT-Angle{Sleep} is pause.
Using the LKP ideas (simple, why didn't I think of it?):
Note that unless the short side of the LKPs is blank, on release of the button the short side is executed, which you may or may not want. In case of tuning I don't want it. Timing is about 1/sec.
(1) LKP method 1
Macro on XSHIFT-4: CH+;CH+;Vol+;Vol+;1;SHIFT-Angle{Sleep};4
TV/4: LKP(1) [Short]:< Blank > [Long]:XSHIFT-4
DVD/4: LKP(1) [Short]:< Blank > [Long]:XSHIFT-4Press and hold 4 to repeat
You can also code this without ;4 at the end of the macro. It'll repeat by Long side, so long as pause is NOT the last entry in the macro. For my two-command tuning job, I just reverse the commands.
(2) LKP method 2
Macro on XSHIFT-5: CH+;CH+;Vol+;Vol+;1;SHIFT-Angle{Sleep}
TV/5: LKP(1) [Short]:XSHIFT-5 [Long]:XSHIFT-5;5
DVD/5: LKP(1) [Short]:XSHIFT-5 [Long]:XSHIFT-5;5Press 5 once to send one iteration, hold 5 to repeat
(3) Special Protocol method
Timing is about 2/sec.
Macro on Thumbs_Up: CH+;CH+;Vol+;Vol+;1;SHIFT-Angle{Sleep};XSHIFT-Phantom2
TV/XSHIFT-Phantom2: <N/A> TV 1111 $00
DVD/XSHIFT-Phantom2: <N/A> TV 1111 $00
Press ThumbsUp once to send one iteration, hold it to repeat
I tried reusing just one of those repeaters with X_TV...X_Cancel for DVD and other gear. No go. Need separate keymoves/device.
Not bored yet? Here is a more realistic example for
variable advance/replay on DISH. I used Special Protocol MacroReps.
> DISH has an ADVANCE button which advances 30 seconds.
> DISH accepts commands slowly. It needs a break of about a second between commands.
> Different DISH boxes require different pause between commands.
> Some programs or stations have different amount of commercials time to be skipped.
> Consequently, fixed skip time is not a good solution.
So, in 6131, with pause coded on Shift-Phantom1, I put
Global macro on Next_Track: Advance;SHIFT-Phantom1;Phantom4
Repeater keymove on CBL/SAT/Phantom4 <N/A> TV 1111 $00
Another use is for
slowing down the receiver tuning to 2/sec from the native repeat of 10/sec. Using the two LKP methods above, it runs at about 1/sec with the shortest of pauses. I think LKP latency slows things down.
Special Protocol code for device and protocol upgrades:
1) Paste device upgrade in IR. In 8910 it will be seen as VCR/1111 so the repeater keymove should use VCR not TV/1111
Code: Select all
Upgrade Code 0 = 1C 57 (TV/1111) MacroRepeater (KM v9.06)
F1 00 01
End
2) Paste protocol into IR
Tested:
6131ext1
Code: Select all
Upgrade protocol 0 = 01 F1 (S3C8+) MacroReps(PB) (PB v4.00)
00 00 01 F6 13 EE FB 03 82 7F 64 AF
End
7800ext5
Code: Select all
Upgrade protocol 0 = 01 F1 (S3C8+) MacroReps(PB) (PB v4.00)
00 00 01 F6 13 06 FB 03 82 95 75 AF
End
8910ext1
Code: Select all
Upgrade protocol 0 = 01 F1 (S3C8+) MacroReps(PB) (PB v4.00)
00 00 01 F6 3E AD FB 03 82 95 80 AF
End
Untested, but might work:
1994ext5
Code: Select all
Upgrade protocol 0 = 01 F1 (S3C8+) MacroReps(PB) (PB v4.00)
00 00 01 F6 0F A6 FB 03 82 95 77 AF
End
2116ext
Code: Select all
Upgrade protocol 0 = 01 F1 (S3C8+) MacroReps(PB) (PB v4.00)
00 00 01 F6 3B 67 FB 03 82 8E 79 AF
End
6012+8811ext3
Code: Select all
Upgrade protocol 0 = 01 F1 (S3C8+) MacroReps(PB) (PB v4.00)
00 00 01 F6 0D E7 FB 03 82 7F 6A AF
End