Plugin to handle BYVAR for audio sources

I'm calling this plugin RRSkAug.... for SkinAugmentor.

Have you ever come across a time where you want to have a label that shows the radio frequency when listening to the radio, but the XM/Sirius channel name when listening to satellite? It works fine... Now what about when you use the Web Radio plugin? RR numbers the input sources... but with the new audio plugins aren't consistent between users.... BYVAR works, but it can get ugly...

I wrote this plugin to help with that. It uses an xml file to configure what you want to display for each source.

Here is the readme:

RRSkAug

A Skin Augmentor plugin for RideRunner.

Thanks to Mitch for the idea of this plugin.

This plugin is meant to help skinners when it comes to handling different active sources. At one point in time, active sources were enumerated from 0 to X. Then extra sources were added that would get appended to the end of the list. But it won't be the enumeration won't be the same on different setups. Skinners used to be able to use BYVAR to change what happens or what shows up on a skin. Until this plugin, a skinner would have to check each individual guid using a IFVAR command. This plugin will do the lookup based on the ACTIVESOURCEGUID. All configuration is done with XML config files.

There is a default Sources.xml file that is installed in the plugin configuration directory. It should be in RRProfileDirectory\Plugins\RRSkAug\
The skinner should modify this Sources.xml file to customize the skin.

The source element has several parameters:

Guid : The GUID of the active source in RR.
Name : A friendly name of this source. Currently unused.
Cycle : A boolean of whether or not to use this source when cycling through a list of sources. See RRSKAUG_SRC_CYCLE_NEXT
RRCommand : The RRCommand that should be used to switch to this source. See RRSKAUG_SRC_CYCLE_NEXT

Each Source can have an array of commands, labels, and indicators that can be customized specifically for this source.

The Command element has two parameters:

RRSkAugVar : The command lookup code that should be put in the skin file.
command : The command that will be executed if this source is active.

The Indicator element has several options

RRSkAugVar : The indicator lookup code that should be in the skin file.
image : The absolute path to the image file to be used if this source is active.

or

RRSkAugVar : The indicator lookup code that should be in the skin file.
indicator : The Ride Runner indicator to base the image off of.
image_on : The absolute path to the image file to be used if the indicator is in the on state and this source is active.
image_off : The absolute path to the image file to be used if the indicator is in the off state and this source is active.

The Label element has 2 parameters:

RRSkAugVar : The label lookup code that should be in the skin file.
label : The Ride Runner label to use if this source is active.

RRSKAUG_SRC_CYCLE_NEXT

This plugin will cycle through a list sources when the RRSKAUG_SRC_CYCLE_NEXT command is executed. The list is assigned by specifying Cycle="true" for each source that is to by cycled through. Only those sources will be used when switching to the next source. The order that the sources are entered into the Sources.xml file determines the cycle order.

I hope you find this useful... If you have problems with it, let me know. I'll fix things as soon as I can....

There is no guarantee this will work... Who knows... it could cause your car to catch fire, fall into an abyss, crash your car, or maybe just crash your system. I'm not to blame if you can't look up off your screen to drive.

Have you ever come across a time where you want to have a label that shows the radio frequency when listening to the radio, but the XM/Sirius channel name when listening to satellite? It works fine... Now what about when you use the Web Radio plugin? RR numbers the input sources... but with the new audio plugins aren't consistent between users.... BYVAR works, but it can get ugly...

I've been doing this since 2008 in my skins, any button that activates an audiosource also sets a global variable named CurrentSource to a number I use for that source and copies the old number to a global variable named LastAudio. Then byvars do all the work. Unlike ACTIVESOURCEID, the order is whatever I want and there is no limit to the number of audio sources I can add/use.

I have an issue with your installer that install the dll allways into a 'RideRunner' folder, but my install use a 'Ride Runner' folder.
Can you check your installer ?
If i try to install manually the dll into a RRSkAud folder the dll isn't registered ! (I use Vista)

I've looked into this a bit more.... also read your original post again....

I attempted to use the example inno installer script you sent. Thank you! I asked mitch a while back to send me something, but he must have forgotten.

One problem that I have is that I don't have regsvr32.exe in my {dotnet20} directory. When I tried to just use regsvr32.exe, it fails to register. What does seem to work is {dotnet20}\regasm.exe /codebase /tlb

I hope this helps.... I updated the original post to include a new installer file.