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;