Index: IR/Default.map =================================================================== --- IR/Default.map (revision 6531) +++ IR/Default.map (working copy) @@ -98,7 +98,8 @@ # search button search = search -favorites = favorites +favorites.single = favorites +favorites.hold = favorites_add # menu shortcuts menu_playlist = menu_playlist Index: Slim/Buttons/Common.pm =================================================================== --- Slim/Buttons/Common.pm (revision 6531) +++ Slim/Buttons/Common.pm (working copy) @@ -10,6 +10,8 @@ use strict; use File::Spec::Functions qw(:ALL); use File::Spec::Functions qw(updir); +use Scalar::Util qw(blessed); + use Slim::Player::Client; use Slim::Utils::Misc; use Slim::Utils::PluginManager; @@ -237,6 +239,14 @@ $client->update(); }, + 'play' => sub { + my ($client, $funct, $functarg) = @_; + print Data::Dumper::Dumper(@_); + if ($functarg == 2) { + } elsif ($functarg == 1) { + } else { + } + }, 'pause' => sub { my $client = shift; # ignore if we aren't playing anything @@ -407,7 +417,24 @@ my $button = shift; my $buttonarg = shift; my $playdisp = undef; - if (mode($client) ne 'PLUGIN.Favorites') { + + if ($buttonarg eq "add") { + my $obj = ${$client->param('listRef')}[$client->param('listIndex')]; + my $title; + + if (blessed($obj) && $obj->can('title')) { + $title = $obj->title; + } else { + $title = Slim::Music::Info::standardTitle($client, $obj); + } + + if (blessed($obj) && $title) { + Slim::Utils::Favorites->clientAdd($client, $obj, $title); + + $client->showBriefly($client->string('FAVORITES_ADDING'), $title); + } + + } elsif (mode($client) ne 'PLUGIN.Favorites') { Slim::Buttons::Common::setMode($client, 'home'); Slim::Buttons::Home::jump($client, 'PLUGIN.Favorites'); Slim::Buttons::Common::pushModeLeft($client, 'PLUGIN.Favorites'); Index: Plugins/Favorites/Plugin.pm =================================================================== --- Plugins/Favorites/Plugin.pm (revision 6531) +++ Plugins/Favorites/Plugin.pm (working copy) @@ -249,15 +249,15 @@ } } -sub addFavorite { - my $client = shift; +#sub addFavorite { +# my $client = shift; +# +# my $url = Slim::Player::Playlist::song($client); +# my $title = Slim::Music::Info::standardTitle($client, $url); +# +# $client->execute(['favorite', 'add', $url, $title]); +#} - my $url = Slim::Player::Playlist::song($client); - my $title = Slim::Music::Info::standardTitle($client, $url); - - $client->execute(['favorite', 'add', $url, $title]); -} - sub enabled { return ($::VERSION ge '6.1'); } @@ -271,7 +271,7 @@ # {'useMode' => 'PLUGIN.Favorites'}); Slim::Buttons::Common::setFunction('playFavorite', \&playFavorite); - Slim::Buttons::Common::setFunction('addFavorite', \&addFavorite); + #Slim::Buttons::Common::setFunction('addFavorite', \&addFavorite); }