Index: server/Slim/Buttons/Settings.pm =================================================================== --- server/Slim/Buttons/Settings.pm (revision 29117) +++ server/Slim/Buttons/Settings.pm (working copy) @@ -85,6 +85,7 @@ 'PITCH', 'SETUP_TRANSITIONTYPE', 'VOLUME', + 'SETUP_MAXBITRATE', 'REPLAYGAIN', 'SETUP_ANALOGOUTMODE', 'LINE_IN_LEVEL', @@ -310,6 +311,22 @@ 'condition' => sub { return $_[0]->isa('Slim::Player::Squeezebox2') }, }, + 'SETUP_MAXBITRATE' => { + 'useMode' => 'INPUT.Choice', + 'onPlay' => \&setPref, + 'onAdd' => \&setPref, + 'onRight' => \&setPref, + 'header' => '{SETUP_MAXBITRATE}', + 'headerAddCount' => 1, + 'pref' => "maxBitrate", + 'init' => \&bitrateInit, + 'initialValue' => sub { $prefs->client(shift)->get('maxBitrate') }, + 'condition' => sub { + my $client = shift; + return Slim::Utils::Misc::findbin('lame'); + }, + }, + 'REPLAYGAIN' => { 'useMode' => 'INPUT.Choice', 'listRef' => [ @@ -1120,6 +1137,34 @@ }; } +sub bitrateInit { + my $client = shift; + my @rates = (64, 96, 128, 160, 192, 224, 256, 320); + + my @options; + my $i = 0; + + my @formats = $client->formats(); + if ($formats[0] ne 'mp3') { + push @options, { + name => $client->string('NO_LIMIT'), + value => 0, + }; + } + + foreach my $rate (@rates) { + + my $name = $rate . ' '. $client->string('KBPS'); + + push @options, { + name => $name, + value => $rate, + }; + } + + $client->modeParam('listRef', \@options); +} + sub visualInit { my $client = shift; my $modes = $prefs->client($client)->get('visualModes');