Index: Plugins/MusicMagic/Plugin.pm =================================================================== --- Plugins/MusicMagic/Plugin.pm (revision 8593) +++ Plugins/MusicMagic/Plugin.pm (working copy) @@ -492,37 +492,38 @@ my $currentItem = $items->[$listIndex]; - # start by checking for moods - if ($paramref->{'mood'}) { - $mixSeed = $currentItem; - $levels[$level] = 'mood'; - - # if we've chosen a particular song - } elsif (!$descend || $levels[$level] eq 'track') { - - $mixSeed = $currentItem->path; - - } elsif ($levels[$level] eq 'album') { - - $mixSeed = $currentItem->tracks->next->path; - - } elsif ($levels[$level] eq 'contributor') { + eval { + # start by checking for moods + if ($paramref->{'mood'}) { + $mixSeed = $currentItem; + $levels[$level] = 'mood'; - # MusicMagic uses artist instead of contributor. - $levels[$level] = 'artist'; - $mixSeed = $currentItem->name; + # if we've chosen a particular song + } elsif (!$descend || $levels[$level] eq 'track') { - } elsif ($levels[$level] eq 'genre') { + $mixSeed = $currentItem->path; + + } elsif ($levels[$level] eq 'album') { + + $mixSeed = $currentItem->tracks->next->path; + + } elsif ($levels[$level] eq 'contributor') { + + # MusicMagic uses artist instead of contributor. + $levels[$level] = 'artist'; + $mixSeed = $currentItem->name; - $mixSeed = $currentItem->name; - } + } elsif ($levels[$level] eq 'genre') { + + $mixSeed = $currentItem->name; + } - if ($currentItem && ($paramref->{'mood'} || $currentItem->musicmagic_mixable)) { + if ($currentItem && ($paramref->{'mood'} || $currentItem->musicmagic_mixable)) { + # For the moment, skip straight to InstantMix mode. (See VarietyCombo) + $mix = getMix($client, $mixSeed, $levels[$level]); + } + }; - # For the moment, skip straight to InstantMix mode. (See VarietyCombo) - $mix = getMix($client, $mixSeed, $levels[$level]); - } - if (defined $mix && ref($mix) eq 'ARRAY' && scalar @$mix) { my %params = (