--- Slim/Buttons/Settings.pm 2006-07-31 13:55:24.898437500 -0700 +++ server/Slim/Buttons/Settings.pm 2006-07-31 13:32:11.289062500 -0700 @@ -252,10 +252,52 @@ sub init { 'stringHeader' => 1, 'initialValue' => 'idlesaver', }, - + + 'settings/DIGITAL_INPUT' => { + 'useMode' => 'INPUT.Choice', + 'listRef' => [ + { + name => '{OFF}', + value => 0, + }, + { + name => '{DIGITAL_INPUT_BALANCED_AES}', + value => 1, + }, + { + name => '{DIGITAL_INPUT_BNC_SPDIF}', + value => 2, + }, + { + name => '{DIGITAL_INPUT_RCA_SPDIF}', + value => 3, + }, + { + name => '{DIGITAL_INPUT_OPTICAL_SPDIF}', + value => 4, + }, + ], + 'onPlay' => \&updateDigitalInput, + 'onAdd' => \&updateDigitalInput, + 'onRight' => \&updateDigitalInput, + 'header' => '{DIGITAL_INPUT}', + 'overlayRef' => sub { + return [undef,Slim::Buttons::Common::checkBoxOverlay($_[0]->prefGet('digitalInput') eq $_[1]->{'value'})] + }, + }, ); } +sub updateDigitalInput { + my $client = shift; + my $input = shift; + + my $data = pack('C', $input->{'value'}); + $client->prefSet('digitalInput', $input->{'value'}); + $client->sendFrame('audp', \$data); + $client->update; +}; + sub setPref { my $client = shift; my $value = shift; @@ -409,7 +451,10 @@ sub setMode { if ($client->isa( "Slim::Player::Squeezebox2" )) { push @settingsChoices, 'SETUP_TRANSITIONTYPE'; } - + if ($client->isa( "Slim::Player::Transporter" )) { + push @settingsChoices, 'DIGITAL_INPUT'; + } + if ($client->canDoReplayGain(0)) { push @settingsChoices, 'REPLAYGAIN'; } --- Slim/Player/Transporter.pm 2006-07-31 13:54:20.164062500 -0700 +++ server/Slim/Player/Transporter.pm 2006-07-31 13:23:07.398437500 -0700 @@ -28,6 +28,7 @@ use Slim::Utils::Unicode; our $defaultPrefs = { 'clockSource' => 0, + 'digitalInput' => 0, }; sub init { --- strings.txt 2006-07-31 13:53:59.335937500 -0700 +++ server/strings.txt 2006-07-31 13:24:20.414062500 -0700 @@ -12277,3 +12277,18 @@ CLOCKSOURCE_WORD_CLOCK CLOCKSOURCE_SPDIF_SLAVE EN S/PDIF Input + +DIGITAL_INPUT + EN Digital Input + +DIGITAL_INPUT_BALANCED_AES + EN Balanced AES/EBU + +DIGITAL_INPUT_BNC_SPDIF + EN BNC Coax S/PDIF + +DIGITAL_INPUT_RCA_SPDIF + EN RCA Coax S/PDIF + +DIGITAL_INPUT_OPTICAL_SPDIF + EN Optical S/PDIF