[WINDOWS] HOW-TO configure XBMC, BeyondTV, EventGhost, and a FireFly remote in XP
#1
Thumbs Up 
Mods please move the following three posts to the XBMC Tips, Tricks, and HOW-TO (Step-by-Step Guides) forum.

Part 1

This guide covers installing and configuring XBMC, BeyondTV, EventGhost and a FireFly remote in Windows XP.

Introduction and Pre-Install
This guide will show you how to install and configure XBMC, BeyondTV and EventGhost then bring it all together using a FireFly remote. Note that this guide is written specifically for Windows XP, some of the steps may or may not work in Vista or Windows 7. Also this guide involves editing your registry and running third party software so it is “buyer beware”:

By following this guide you are responsible for any data loss or damage to the system. It is strongly suggested a backup of the system registry be done BEFORE starting the steps below so you can restore your system to its original state if there is a problem.

Steps to backup your registry:
Open the registry editor (Start > Run > Regedit )
Got to “file” then “export”
Save the file to a network location or thumb drive. Basically save it off this PC should it become unstable.

Also most of the techniques and edits below I can not take credit for, what I’ve done is taken a lot of information that was previously found loosely on the internet and tied it together into a single guide to follow. Again I can only report what worked for me; if you had to do something differently let us know how you solved it!

Note that I’ve included a bunch of links and downloads at the bottom of this guide. These are samples of my files for people to review and use as a guide when building their own HTPC setup.


Ok now that the intro and disclaimer are taken care of let’s get this HTPC setup!

XBMC
Download the latest XBMC, as of this writing it is 9.11 (Camelot), and install it on your system. Personally I’m using the MediaStream Redux skin but you are free to choose something you like. Note that we will be editing the skin xml files later so if you do pick a different skin you may have to modify the instructions slightly.

Generally speaking you are free to configure XBMC however you like, but there are a few settings you’ll want to enable before continuing. Go to “Configure the System” and select “System Settings”, then select “Input Devices”, ensure “Remote control sends keyboard presses” is on, also ensure the mouse is disabled.

Now we want to get XBMC to start when the OS boots. There are a couple of ways to do this; some involve getting Event Ghost to start the XBMC when it starts etc. Personally I prefer to let Windows do what it’s designed to, we’re going to add a startup item to the Run folder in the registry. Each of the applications specified in his registry folder are executed when windows starts.

Open regedit to bring up the Windows registry editor:
Start > Run > regedit
Once it’s open navigate the directory tree like so:
HKEY_CURRENT_USER > Software > Microsoft > Windows > Current Version > Run
On the right pane in an open space, right click and select
New > String Value
A new string value will appear on screen, rename it to XBMC. Once it’s renamed double click it to edit it.
Where it reads “Value Data” enter the following (including quotes).
“C:\Program Files\XBMC\XBMC.exe” –fs
Note if you have XBMC installed in a different folder, change the folder path to match your XBMC installation. The “-fs” at the end indicates XBMC should be opened in full screen. Next time windows starts XBMC will automatically launch.

So we have XBMC installed, configured and starting with Windows. Next we want to configure the interface so there is a text link to launch BeyondTV from the main menu. Some folks use launcher scripts and other XBMC edits to get this to work, but you can achieve a much more seamless blend if you make a simple edit to the home.xml skin file. Remember I’m using the MediaStream Redux skin so these instructions may be a little different if you’re using a different skin.

Open the following file:
C:\Program Files\XBMC\skin\MediaStream_Redux\720p\home.xml

Each of the main menu buttons has an entry in the xml file that looks like the following:
<item id="6">
<label>8</label>
<label2>31004</label2>
<onclick>ActivateWindow(Weather)</onclick>
<icon>special://skin/backgrounds/weather.jpg</icon>
<thumb>$INFO[Skin.String(Home_Custom_Back_Weather_Folder)]</thumb>
<visible>!Skin.HasSetting(HomeMenuNoWeatherButton)</visible>
<visible>!Skin.HasSetting(ShowWeatherFanart) | IsEmpty(Skin.String(WeatherFanartDir))</visible>
</item>

So we want to create an additional button for the menu, luckily we only need a few lines of the example above. First you’ll need a unique id as above, this number must be unique so make sure the number you select isn’t already used by another button. Since the skin I was using topped out at 11 I went with 12:
<item id="12">

Next you’ll need a label, the skin files support multiple languages so the number between the label tags corresponds to a text node in another xml file, the home.xml then pulls in the text from that node for the button. I’m not concerned about multilingual support so we can add the copy to this node like so:
<label>WATCH TV</label>

Next we want to launch an external exe when clicked, namely we want to launch the BeyondTV viewscape, specifically the exe named “BTVD3DShell.exe”. By default the BTVD3DShell.exe is found in:
C:\Program Files\SnapStream Media\Beyond TV\ BTVD3DShell.exe

To execute this file we need to use the XBMC method “XBMC.System.Exec which calls a shell command to load the exe we specify, in this case the path above. However there is a problem loading a program path with spaces or folder names greater than 8 characters. If you try to run the path above via the shell command, XBMC produces an error that the exe can not be found even if it’s the proper path. So you have to revert back to an old DOS trick, if a folder has more than 8 characters or has a space in the name you truncate the name using “~1”. So your new line in the skin should look like:
<onclick>XBMC.System.Exec(C:\Progra~1\SnapSt~1\Beyond~1\BTVD3DShell.exe)</onclick>

Finally we want to add a new background to the TV. I wanted to use a background from the Confluence skin, so I navigated to the following folder and find this image:
C:\Program Files\XBMC\skin\Confluence\backgrounds\videos.jpg

Make a copy of that image and rename it tv.jpg, then move tv.jpg into the following folder:
C:\Program Files\XBMC\skin\MediaStream_Redux\backgrounds\

Now add the following line to your xml file:
<icon>special://skin/backgrounds/tv.jpg</icon>

You new menu button code is complete and it should look like the following:
<item id="12">
<label>WATCH TV</label>
<onclick>XBMC.System.Exec(C:\Progra~1\SnapSt~1\Beyond~1\BTVD3DShell.exe)</onclick>
<icon>special://skin/backgrounds/tv.jpg</icon>
</item>

Add your button code into the xml file between the closing </item> tag and before the <item id=”6”> tag.

Next let’s look at installing and configuring BeyondTV.
Reply
#2
Part 2

BeyondTV
Like XBMC you are free to install and configure BeyondTV to your liking; however there are two things to ensure.

When you install BeyondTV it will ask you how you’d like to start the program when the OS boots. The default option is “Recording engine only” select this option, beyond TV will start in the system tray and not interfere with XBMC.

When running the configuration wizard you will be asked what remote control will be used with beyond TV. We will be using a FireFly remote to control BeyondTV, but we’ll be using it with EventGhost so select the option “None (I will use the keyboard / mouse)”.

That’s it BeyondTV is now ready to go!

FireFly Remote
Only install the firefly remote drivers, not the associated software. Get the drivers here or on the Snapstream website link below:
http://www.snapstream.com/download/firefly/

Installing the driver only option avoids the unnecessary Firefly and Beyond Media trial software that might otherwise interfere with the software we want to run. So once the drivers are installed it’s on to EventGhost.

EventGhost
Now that the necessary software is installed we can setup EventGhost to control it all.

Before we configure controls let’s set a few program options. Select file > options. Make sure EventGhost is set to autostart with system on startup, also ensure its set to minimize to system tray. The rest can remain as default. Click apply then ok.

For those of you that would prefer to skip the following section you can download my EventGhost file at the bottom of this post. However I strongly encourage you to read on since you’ll probably want to learn how to configure the remote to your liking. After all, the remote configuration that works for me may not work for you.

Open even ghost and select: file > new

For event ghost to accept input from our remote we have to add the remote as a plugin. Go to: Configuration > Add Plugin
Next scroll down until you see X10 select it and click ok.
You’ll then see a dialog box come up, from the left hand menu select “Snapstream Firefly”, leave the rest as default.

Next to control XBMC we need to add the XBMC plugin. Select: Configuration > Add Plugin and scroll down to the XBMC plugin. Select it and when prompted click OK. Next EventGhost will ask if you’d like it to add a folder with all of the actions for that plugin, this is optional but it will save you some work down the road. I suggest clicking ok, you can skip this if you want but you’ll have to manually add each command in later.

Now that we can capture input from the remote and XBMC we have to find a way to track when XBMC takes control and when BeyondTV takes control. When a specific program takes over we will enable a series of commands that are specific to that program and disable the commands for other programs and vice versa. More on disabling plugin commands soon, for now lets add the final plugin we’ll need.

Select Configure > Add Plugin
Scroll down to “Task Create / Switch Events” and click ok.

That’s if for plugins, before we move on to learning macros let’s do some house cleaning. For everything to work properly we need a specific directory tree in EventGhost. When the XBMC plugin asked if you wanted to create folder earlier and you said yes you probably noticed it added a folder called XBMC to the root. We need to move that folder around and reorganize things slightly. Click the green “autostart” once in the right pane to highlight it, then select: Configuration > Add Folder. A new folder will appear on the EventGhost root, let’s rename this folder to “Programs”.

Next take your XBMC folder and drag it into “Programs”. Click the folder “Programs” once to highlight it and create a folder again (Configuration > Add Folder) this time name that folder BeyondTV.

Great so we now have the necessary directory structure to proceed, by now you’ve probably figured out we’re going to add our BeyondTV commands to the BeyondTV folder and do the same for the XBMC folder. We’re also going to use this folder structure to enable and disable control of each program when we switch between them. But before we get to that we have to add commands to BeyondTV folder.

Left click the BeyondTV folder to select it, once it’s been highlighted select Configuration > Add Macro. This will add an unnamed macro to the folder, rename it down arrow.

Before I get any farther let’s take a look at how macros function; macros are made up of two key elements, actions and events. Events trigger the macros to run, and actions are what happens when a macro is triggered. For example in BeyondTV the keyboard down arrow moves your selection cursor down on screen, however on your remote the down button needs to do the same thing. The macro will listen to your X10 remote, when it captures the event of the down arrow being pressed on the remote it will run the specified macro, inside that macro we’ll have an action that simulates someone hitting the down arrow on the keyboard, beyond TV will think its getting keyboard input and act accordingly.

So back to our empty macro, left click the macro to highlight it then select: Configuration > Add Action. When the window comes up click “Window” to expand the selection tree and then left click “emulate keystrokes” once, click ok. On the following screen you can type in the key you’d like to emulate. Not all keys can be typed in, such as return or down for example, if that’s the case use the “special key tool” to select the key you want and click “insert”. From the special key tool select “down” and click “insert” We’ve now told our macro what we want to emulate we now have to tell it what triggers the macro.

You’ll notice when EventGhost is focused it tracks your OS activity on the left hand pane, since we’ve added the X10 remote plugin it can also track when we press a button on the remote. Make sure you scroll all the way down on the left hand window. (Or as an alternative you can right click the window and select “clear log”) Grab your remote and press the down button, you’ll notice an action appears that reads “X10.Down”. Left click that action and drag it to the down macro in our Beyond TV folder. Now when BeyondTV is running pressing down on the remote should move the cursor down. Go ahead and start BeyondTV and try it now. Also note that if you press down on the remote after your macro is created the EventGhost log file will trace all of the events programmed into the macro.

Now that you’ve configured your first macro you need to repeat the process for each button you’d like to use when running BeyondTV. For a full list of BeyondTV keyboard shortcuts you can visit the following site:
http://www.snapstream.com/Support/Help_F...rtcuts.htm

Now that we know how to create macros from scratch let’s tackle the commands for XBMC. Open the XBMC folder found inside the “Programs” folder. You’ll notice there are pre-entered macros for every command XBMC accepts. However if you expand the macros you’ll notice there are no actions associated for them, which means the macros won’t trigger unless we add actions. Go through the list and find each macro you’d like to use with your remote, like the steps above for BeyondTV expand the macro, press the button on your remote and drag the action from the left pane to the macro of your choice on the right. Once you’ve configured each command you’d like to use you’re done.

So now we have two folders that contain separate sets of commands, one controls XBMC and one controls BeyondTV. Except we have one problem, if both programs are running at once pressing a button on the remote make changes to each program simultaneously. The last thing we want to do is launch something in XBMC that might interfere with BeyondTV and vice versa. The good news is by creating “Enable exclusive” macros we can specify which group of macros should trigger when a particular program is running. Activating an “Enable Exclusive” macro disables all other folders except the one we specify.

Now for a reason that is still not entirely clear to me for “Enable Exclusive” macros to work properly they must be on a node above the folder your want to control on the EventGhost tree. Remember when we create a folder called Programs and we added the XBMC and BeyondTV folders to it? We nested the folders this way because if the weren’t nested we wouldn’t be able to toggle them on and off since they must be at a depth lower than the “Enable exclusive” macros we’re about to create.

So click once on the green arrow in your EventGhost tree and add a new macro: Configuration > Add Macro. When the dialog comes up asking for an action select “Exclusive enable a folder/macro”, next you’ll be asked to locate the folder you want to enable. Expand “Programs” and select the XBMC folder. All that’s left to do is to let EventGhost know which program should trigger this macro. Since we added the plugin “Task Create / Switch Events” we are able to track when a program starts, stops or takes focus in the OS. Go ahead and start XBMC, let it boot up and close it again. Once you’ve done so you’ll notice the left hand pane has traced out when XBMC was created, when a new window appeared, and when it was activated. We want to enable the commands when a program (in this case XBMC) is activated. So drag the event “Task.Activated.XBMC” to the right into the macro “Enable.exclusive.XBMC”. That’s it now when XBMC starts the BeyondTV folder will be disabled and only the XBMC folder will execute. Repeat the process above for the BeyondTV folder only this time enable the BeyondTV folder when BeyondTV becomes active.

That’s if for EventGhost, let’s move on to the final step, configuring Windows.
Reply
#3
Part 3

Windows Configuration
By now things should be moving along pretty smoothly, you have XBMC configured, BeyondTV installed and both programs controlled by remote. However when you switch between programs you’re still getting a flash of the ugly windows OS. The following steps will configure windows so all someone sees is a plain black screen when switching between windows and maybe the cursor for a second or two. (But I’ll suggest something to remote that too.)

Let’s take care of the easy stuff first. Right click your desktop and select properties. Then click the “desktop” tab, set your background to none and the background color to black.

Now let’s get rid of the windows trash can on the desktop. Click Start > Run and type gpedit.msc to bring up the group policy editor. On the left click “Administrative Templates” then click “Desktop”. On the right double click “Hide and disable all items on the desktop” select enable click apply then click ok. Next select “Remove recycle bin icon from desktop” again select enable, apply and ok. So basically all items on your desktop are now hidden and you’ll notice you can no longer place anything on the desktop.

While the desktop is now blank we still have that task bar to deal with. To begin download “Taskbar Eliminator” by aviassin.com:
http://www.aviassin.com/taskbareliminator

When you run the program initially it will hide your task bar. Press ctrl+alt+t, your taks bar will appear and so will a dialog for the program. Click “Hide Taskbar” then click “Start With Windows” and click Exit. In the future your pc will startup but your taskbar won’t appear. If you eve need access to the taskbar just press ctrl+alt+t.

Without a task bar how do you restart the system? Simple press ctrl+alt+delete then from the window select Shutdown > Restart.

Note I had indicated above there was a way to hide the windows cursor if you wanted to. Be aware that I haven’t tested this myself as I still haven’t decided if the mouse cursor bothers me that much but you can download a program called “nomousy” which will hide your mouse cursor. Be aware that without a mouse you’ll have to use TAB and shortcut keys to navigate your os. Also you’ll have to create some shortcuts to enable / disable the mouse and add them to the start menu, that way if you want to see your mouse just enable the taskbar press the windows key and use your arrows to highlight the appropriate shortcut to enable your mouse again. Some people may say that you can simply move your mouse off screen and that is true, but if you’re like me and have your HTPC auto restart a few times a week the mouse goes to the center of the screen by default.

Your HTPC is now fully complete and ready for use! I hope this guide helped and if you’re using a different OS or have done something differently please post your findings. Big Grin

Links to sample files
My XBMC home.xml and video background image.
Event Ghost Configuration File
Reply
#4
Couple of comments:

I think (I'd have to check the SVN to be sure) that XBMC now ignores -fs and just starts in the same state as it was last closed.

With recent builds you should rarely need Eventghost as most remotes will now work out of the box.

JR
Reply
#5
jhsrennie Wrote:With recent builds you should rarely need Eventghost as most remotes will now work out of the box.

Good point and that's something I fail to mention in the guide. The remote does work but I found that I couldn't take advantage of all the XBMC features from my firefly remote.

It allowed me to navigate menus etc but once I started comapring the keymap.xml document I found there were numerous XBMC function I wanted that either weren't on my remote or were not in the locations I wanted.

Using EventGhost let me add or change commands to what I found more useful.
Reply
#6
What does your script to with XBMC when it launches BTV? Does it go to sleep/minimize/close?
XBMC.MyLibrary (add anything to the library)
ForTheLibrary (Argus TV & XBMC Library PVR Integration)
SageTV & XBMC PVR Integration
Reply
#7
Monk,

I am using the latest build of XBMC and have done some modifications based on your post.

I am using the snapstream remove and have full commands in Beyond TV Link launching from XBMC. I am able to use the remote and can navigate XBMC. However I would like to map some of the keyboard commands for XBMC in the snapstream remote (example up and down volume).

What would be your recommendations that I persue?

Thanks.......

Johnny
Reply
#8
Monk....

I re-read your last post and I believe that you did what I am attempting.

If I understand everything......Beyond TV works without problems, but you were missing functionality with XBMC using the Snapstream remote.....

I will review your eventghost file and give it a try.

Thanks....

Johnny

johnny_swindle Wrote:Monk,

I am using the latest build of XBMC and have done some modifications based on your post.

I am using the snapstream remove and have full commands in Beyond TV Link launching from XBMC. I am able to use the remote and can navigate XBMC. However I would like to map some of the keyboard commands for XBMC in the snapstream remote (example up and down volume).

What would be your recommendations that I persue?

Thanks.......

Johnny
Reply
#9
Hi,

Sorry for bumping a really old thread but google pointed me in this direction. Thanks for the guide i have used this to aid me in setting up my Remote.

One problem i have however which i cannot seem to work out.

My setup is slightly different to your in that i actually use my Media Centre as a PC as well, therefore i do not want XBMC to start when windows start. What i would like to do however is set a button on my remote to do this.

I have created another folder called, start programs and added a marco. I have set this macro to start program and pointed it in the direction of my XBMC.exe file. This works perfectly the first time. The problem occurs however when i shut down XBMC to use my PC. Once its time to load XBMC again it does not work. MY 'start programs' folder now has a cross against it.

I assume that the Exclusive.XBMC macro we created do not recognise that XBMC has shut down and will only relay my remote presses to XBMC itself and not windows.

Hope this makes sense and somebody can help, thanking in advance.

Sprtie
Reply

Logout Mark Read Team Forum Stats Members Help
[WINDOWS] HOW-TO configure XBMC, BeyondTV, EventGhost, and a FireFly remote in XP0