Index: /Users/mh/Documents/workspace/unstable/server/Slim/Plugin/RandomPlay/Plugin.pm
===================================================================
--- /Users/mh/Documents/workspace/unstable/server/Slim/Plugin/RandomPlay/Plugin.pm	(revision 20582)
+++ /Users/mh/Documents/workspace/unstable/server/Slim/Plugin/RandomPlay/Plugin.pm	(working copy)
@@ -41,6 +41,7 @@
 my %genres       = ();
 my %genreNameMap = ();
 
+my %functions;
 my $htmlTemplate = 'plugins/RandomPlay/list.html';
 
 my $log          = Slim::Utils::Log->addLogCategory({
@@ -90,8 +91,6 @@
 sub initPlugin {
 	my $class = shift;
 
-	$class->SUPER::initPlugin();
-
 	# playlist commands that will stop random play
 	%stopcommands = (
 		'clear'	     => 1,
@@ -122,8 +121,15 @@
 	my %seen;
 	@mixTypes = map { $mixTypeMap{$_} }	grep (!$seen{$mixTypeMap{$_}}++, keys %mixTypeMap);
 
+	# create function map
+	foreach (keys %mixTypeMap) {
+		$functions{$_} = sub { playRandom(shift, $mixTypeMap{$_}) }
+	}		
+
 	generateGenreNameMap();
 
+	$class->SUPER::initPlugin();
+
 	# set up our subscription
 	Slim::Control::Request::subscribe(\&commandCallback, 
 		[['playlist'], ['newsong', 'delete', 'cant_open', keys %stopcommands]]);
@@ -1115,6 +1121,12 @@
 	Slim::Control::Request::unsubscribe(\&commandCallback);
 }
 
+# legacy method to allow mapping to remote buttons
+sub getFunctions {
+
+	return \%functions;
+}
+
 sub buttonStart {
 	my $client = shift;