I have a Snapstream Firefly RF Remote control. I had it working with some plugins, but this broke in RC3 and RC4. What was added in RC3 however was X10 Remote support right in MediaPortal. It supports several remotes out of the box but Firefly wasn't one of them. Custom remote can be defined but that is a pain as the buttons on the Firefly do not correspond to the button names listed in the X10 custom mappings in Media Portal.
So, I made my own XML file to use with the Firefly.
Here's how to use it. Remove Beyond Media or whatever else you may have. Install just the plain X10 driver for the Firefly from:
http://www.snapstream.net/download/Firefly_Drivers.aspx
Now open MediaPortal Setup. Go to "Remote" open the X10 tab.
Click "Use X10 Remote" and choose "other".
Click OK to close MediaPortal Setup.
Now, go to:
C:\Program Files\Team MediaPortal\MediaPortal\InputDeviceMappings\custom
There's a file there called "Other X10.xml". Open it, delete all it's contents, then copy and paste the XML below in the file.
If the file and/or the custom folder are not there, just create them. The "Other X10.xml" should contain the following:
Now save the file, open MediaPortal Setup and go to "Remote", then open the "X10" tab, click "Mapping" and you should see all the familiar Firefly button names. Some of them have actions defined, others do not. Customize them to suit your needs.
If you find a button that does not work, post here and I'll help. I haven't tested all the buttons but they should work...
Hope this helps. Post a comment if this helped you!
Also, for the MediaPortal developers:
Thanks guys for the countless hours you are putting in MediaPortal development. This is the best media software on the face of this planet. I run it at home, at friends houses, in my car and in a couple of monts it will be going in a corporate boardroom!
Feel free to use my XML file to add native SnapStream Firefly support in Media Portal. *Hint* *Hint
So, I made my own XML file to use with the Firefly.
Here's how to use it. Remove Beyond Media or whatever else you may have. Install just the plain X10 driver for the Firefly from:
http://www.snapstream.net/download/Firefly_Drivers.aspx
Now open MediaPortal Setup. Go to "Remote" open the X10 tab.
Click "Use X10 Remote" and choose "other".
Click OK to close MediaPortal Setup.
Now, go to:
C:\Program Files\Team MediaPortal\MediaPortal\InputDeviceMappings\custom
There's a file there called "Other X10.xml". Open it, delete all it's contents, then copy and paste the XML below in the file.
If the file and/or the custom folder are not there, just create them. The "Other X10.xml" should contain the following:
Code:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<mappings version="3">
<remote family="X10 Remote">
<button name="Maximize" code="158">
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="18" sound="click.wav" />
</button>
<button name="Power (Close)" code="30">
<action layer="0" condition="*" conproperty="-1" command="POWER" cmdproperty="EXIT" sound="back.wav" />
</button>
<button name="0" code="20">
<action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="80" sound="click.wav" />
<action layer="0" condition="WINDOW" conproperty="2" command="ACTION" cmdproperty="80" sound="click.wav" />
<action layer="0" condition="WINDOW" conproperty="25" command="ACTION" cmdproperty="80" sound="click.wav" />
<action layer="0" condition="WINDOW" conproperty="603" command="ACTION" cmdproperty="80" sound="click.wav" />
<action layer="0" condition="WINDOW" conproperty="605" command="ACTION" cmdproperty="80" sound="click.wav" />
<action layer="0" condition="WINDOW" conproperty="606" command="ACTION" cmdproperty="80" sound="click.wav" />
<action layer="0" condition="WINDOW" conproperty="10" command="ACTION" cmdproperty="48" sound="back.wav" />
<action layer="0" condition="WINDOW" conproperty="11" command="ACTION" cmdproperty="48" sound="back.wav" />
<action layer="0" condition="WINDOW" conproperty="600" command="ACTION" cmdproperty="88" sound="back.wav" />
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="48" cmdkeycode="0" sound="cursor.wav" />
</button>
<button name="1" code="44">
<action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="37" sound="cursor.wav" />
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="49" cmdkeycode="0" sound="cursor.wav" />
</button>
<button name="2" code="47">
<action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="38" sound="cursor.wav" />
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="50" cmdkeycode="0" sound="cursor.wav" />
</button>
<button name="3" code="42">
<action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="39" sound="cursor.wav" />
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="51" cmdkeycode="0" sound="cursor.wav" />
</button>
<button name="4" code="22">
<action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="40" sound="cursor.wav" />
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="52" cmdkeycode="0" sound="cursor.wav" />
</button>
<button name="5" code="27">
<action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="41" sound="cursor.wav" />
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="53" cmdkeycode="0" sound="cursor.wav" />
</button>
<button name="6" code="25">
<action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="42" sound="cursor.wav" />
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="54" cmdkeycode="0" sound="cursor.wav" />
</button>
<button name="7" code="23">
<action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="43" sound="cursor.wav" />
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="55" cmdkeycode="0" sound="cursor.wav" />
</button>
<button name="8" code="26">
<action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="44" sound="cursor.wav" />
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="56" cmdkeycode="0" sound="cursor.wav" />
</button>
<button name="9" code="21">
<action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="45" sound="cursor.wav" />
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="57" cmdkeycode="0" sound="cursor.wav" />
</button>
<button name="Pause" code="0">
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="12" sound="click.wav" />
</button>
<button name="Record" code="1">
<action layer="0" condition="WINDOW" conproperty="600" command="ACTION" cmdproperty="7" sound="click.wav" />
<action layer="0" condition="WINDOW" conproperty="501" command="ACTION" cmdproperty="113" sound="click.wav" />
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="89" sound="click.wav" />
</button>
<button name="Rewind" code="2">
<action layer="0" condition="WINDOW" conproperty="600" command="ACTION" cmdproperty="87" sound="cursor.wav" />
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="17" sound="cursor.wav" />
</button>
<button name="FastForward" code="4">
<action layer="0" condition="WINDOW" conproperty="600" command="ACTION" cmdproperty="86" sound="cursor.wav" />
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="16" sound="cursor.wav" />
</button>
<button name="Stop" code="5">
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="13" sound="click.wav" />
</button>
<button name="Play" code="6">
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="68" sound="click.wav" />
</button>
<button name="Menu" code="97">
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="106" sound="click.wav" />
</button>
<button name="Up" code="19">
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="3" sound="cursor.wav" />
</button>
<button name="Down" code="12">
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="4" sound="cursor.wav" />
</button>
<button name="Left" code="13">
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="1" sound="cursor.wav" />
</button>
<button name="Right" code="11">
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="2" sound="cursor.wav" />
</button>
<button name="OK" code="15">
<action layer="0" condition="WINDOW" conproperty="11" command="ACTION" cmdproperty="47" sound="click.wav" />
<action layer="0" condition="WINDOW" conproperty="10" command="ACTION" cmdproperty="10" sound="back.wav" />
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="7" sound="click.wav" />
</button>
<button name="Exit" code="98">
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="10" sound="back.wav" />
</button>
<button name="VolumeUp" code="37">
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="103" sound="cursor.wav" />
</button>
<button name="VolumeDown" code="35">
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="102" sound="cursor.wav" />
</button>
<button name="Mute" code="40">
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="9982" sound="click.wav" />
</button>
<button name="ChannelUp" code="41">
<action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="9979" sound="cursor.wav" />
<action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="9979" sound="cursor.wav" />
<action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="31" sound="cursor.wav" />
<action layer="0" condition="WINDOW" conproperty="1" command="ACTION" cmdproperty="95" sound="cursor.wav" />
<action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="95" sound="cursor.wav" />
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="5" sound="cursor.wav" />
</button>
<button name="ChannelDown" code="48">
<action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="9980" sound="cursor.wav" />
<action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="9980" sound="cursor.wav" />
<action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="30" sound="cursor.wav" />
<action layer="0" condition="WINDOW" conproperty="1" command="ACTION" cmdproperty="94" sound="cursor.wav" />
<action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="94" sound="cursor.wav" />
<action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="6" sound="cursor.wav" />
</button>
<button name="Firefly" code="74">
<action layer="0" condition="*" conproperty="-1" command="WINDOW" cmdproperty="0" sound="click.wav" />
</button>
<button name="Help" code="75" />
<button name="A" code="76" />
<button name="B" code="77" />
<button name="C" code="78" />
<button name="D" code="79" />
<button name="TV" code="80">
<action layer="0" condition="*" conproperty="-1" command="WINDOW" cmdproperty="1" sound="click.wav" />
</button>
<button name="DVD" code="81">
<action layer="0" condition="*" conproperty="-1" command="WINDOW" cmdproperty="3001" sound="click.wav" />
</button>
<button name="Photos" code="82">
<action layer="0" condition="*" conproperty="-1" command="WINDOW" cmdproperty="2" sound="click.wav" />
</button>
<button name="Music" code="83">
<action layer="0" condition="*" conproperty="-1" command="WINDOW" cmdproperty="501" sound="click.wav" />
</button>
<button name="Video" code="84">
<action layer="0" condition="*" conproperty="-1" command="WINDOW" cmdproperty="6" sound="click.wav" />
</button>
<button name="Previous" code="137" />
<button name="Next" code="138" />
<button name="Option" code="150" />
<button name="Back" code="156" />
<button name="Ent" code="157" />
<button name="Mouse" code="159" />
<button name="Info" code="160" />
</remote>
</mappings>
Now save the file, open MediaPortal Setup and go to "Remote", then open the "X10" tab, click "Mapping" and you should see all the familiar Firefly button names. Some of them have actions defined, others do not. Customize them to suit your needs.
If you find a button that does not work, post here and I'll help. I haven't tested all the buttons but they should work...
Hope this helps. Post a comment if this helped you!
Also, for the MediaPortal developers:
Thanks guys for the countless hours you are putting in MediaPortal development. This is the best media software on the face of this planet. I run it at home, at friends houses, in my car and in a couple of monts it will be going in a corporate boardroom!
Feel free to use my XML file to add native SnapStream Firefly support in Media Portal. *Hint* *Hint
United States of America