I grabbed the RMIR source and started to poke about... I've added a "Convert to Device Upgrade":

To demonstrate this functionality, I've created a contrived example of some learned signals from a nearby remote. You can see they all decode properly. We can make the first two of them into a device upgrade by selecting them and clicking the new button:


Here is the resulting Device Upgrade:
Code: Select all
Description=Learned Signal Upgrade
Remote.name=RCA RCRP05B black
Remote.signature=31793179
DeviceType=Cable
DeviceIndex=0
SetupCode=2000
Protocol=00 5A
Protocol.name=NEC1
ProtocolParms=1 254 0
FixedData=00 7F 80
Notes=Device Upgrade automatically created by RemoteMaster from 2 Learned Signals all with protocol NEC1, device 1, subdevice 254.
Function.0.name=1
Function.0.hex=3F
Function.1.name=2
Function.1.hex=1F
Button.15=1|null|null
Button.16=2|null|null
If an upgrade already exists for the same protocol, device, and subdevice (with "Learned Signal" in either description or notes for safety for now), then it tries to append the selected Learned Signals to the existing upgrade. In the contrived example, the final two learned signals are a duplicate key and a duplicate OBC respectively, but we can still append them to the upgrade:

(Note that the Function for the third Learned Signal is set to "OtherFunc" because that was the "Notes" for the learn. If the notes are blank, then function is set to the key name to which it was learned.)
It recognized that function "3" (OBC 3) was already present and so it was not added to the existing upgrade (although the second button assignment was added). It also recognized that two buttons were assigned to key 2, and so OtherFunc was instead assinged to Shift-2. Here is the resulting upgrade:
Code: Select all
Description=Learned Signal Upgrade
Remote.name=RCA RCRP05B black
Remote.signature=31793179
DeviceType=Cable
DeviceIndex=0
SetupCode=2000
Protocol=00 5A
Protocol.name=NEC1
ProtocolParms=1 254 0
FixedData=00 7F 80
Notes=Device Upgrade automatically created by RemoteMaster from 2 Learned Signals all with protocol NEC1, device 1, subdevice 254.
Function.0.name=1
Function.0.hex=3F
Function.1.name=2
Function.1.hex=1F
Function.2.name=OtherFunc
Function.2.hex=37
Function.2.notes=OtherFunc
Button.15=1|null|null
Button.16=2|OtherFunc|null
Button.17=1|null|null
Some other checks it does is that when appending is that it will not create a function with a duplicate name (it appends a "_2", "_3", etc). If a function cannot be assigned to Key or Shift-Key, then it goes unassigned (but the function still added) and you are alerted.
I could imagine with refinement this could streamline the process for some people. I could imagine with a lot of refinement, it could even learn to take a set of mixed-protocol learns and automatically select the appropriate combo protocol. I could also imagine building on this idea to import an IRScope .ict file as an Upgrade similar to using the learns as I'm doing here. I'm not sure what people think of this or how useful (or stupid) it is... I'm interested in others' opinions on the topic. It was mostly a simple exercise to familiarize myself with RMIR's code.
If you'd like to play around with the functionality, I've uploaded a build RemoteMaster.jar to the Diagnostics Area: https://www.hifi-remote.com/forums/dload ... e_id=11268 (Yes, it's a zipped jar file which is quite redundant I know.)
Vyro