Index: Plugins/DigitalInput/HTML/EN/plugins/DigitalInput/digitalinput_list.html =================================================================== --- Plugins/DigitalInput/HTML/EN/plugins/DigitalInput/digitalinput_list.html (revision 0) +++ Plugins/DigitalInput/HTML/EN/plugins/DigitalInput/digitalinput_list.html (revision 0) @@ -0,0 +1,45 @@ +[%- pagetitle = 'PLUGIN_DIGITAL_INPUT' | string; pageicon = 'PLUGIN_DIGITAL_INPUT' -%] +[%- pwd_list = BLOCK -%]/ + + [% "PLUGIN_DIGITAL_INPUT" | string %] + +[% END -%] +[%- pageHeaderInfo = BLOCK %] + + [% "NOW_PLAYING" | string %][% "COLON" | string %] + [% digitalInputCurrent %] + +[% END -%] +[%- PROCESS pageheader.html %] + +[%# Following block generates links that submit the form if javascript is enabled. This allows + users to make setting changes then click on a new mix without having to press the submit button. %] +[% BLOCK href %] +href="[% webroot %]plugins/DigitalInput/digitalinput_set.html?type=[% type %]&player=[% player | uri %]" + onclick='refreshStatus(); return true;' +[% END %] + +[% BLOCK digitalselection %] + [% WRAPPER playlink noTarget=1 %] + [% PROCESS href %] + [% END %] +[% END %] + +[% IF player == '' %] +

[% "NO_PLAYER_FOUND" | string %]

+[% ELSE %] + +

[% "PLUGIN_DIGITAL_INPUT_CHOOSE_BELOW" | string %]

+ + [% odd = 1 %] + [% FOREACH type IN ['NETWORK','BALANCED_AES','BNC_SPDIF','RCA_SPDIF', 'OPTICAL_SPDIF'] %] + [% BLOCK controls %] + [% PROCESS digitalselection type="$loop.index" %] + [% END %] + [%- WRAPPER contentitem controls='controls' %] + [% 'PLUGIN_DIGITAL_INPUT_' _ type | string %] + [% END %] + [% odd = (not odd) %] + [% END %] +[% END %] +[% PROCESS pagefooter.html %] Index: Plugins/DigitalInput/Plugin.pm =================================================================== --- Plugins/DigitalInput/Plugin.pm (revision 9580) +++ Plugins/DigitalInput/Plugin.pm (working copy) @@ -114,6 +114,55 @@ return {}; } +sub webPages { + + my %pages = ( + "digitalinput_list\.(?:htm|xml)" => \&handleWebList, + "digitalinput_set\.(?:htm|xml)" => \&handleSetting, + ); + + my $value = 'plugins/DigitalInput/digitalinput_list.html'; + + if (grep { /^DigitalInput::Plugin$/ } Slim::Utils::Prefs::getArray('disabledplugins')) { + + $value = undef; + } + + Slim::Web::Pages->addPageLinks("browse", { 'PLUGIN_DIGITAL_INPUT' => $value }); + + return (\%pages); +} + +# Draws the plugin's web page +sub handleWebList { + my ($client, $params) = @_; + + if ($client) { + + # Pass on the current pref + my $current = $digital_inputs[$client->prefGet('digitalInput')]->{'name'}; + + # pre-localised string served to template + $params->{'digitalInputCurrent'} = Slim::Buttons::Input::Choice::formatString($current); + } + + return Slim::Web::HTTP::filltemplatefile('plugins/DigitalInput/digitalinput_list.html', $params); +} + + +# Handles play requests from plugin's web page +sub handleSetting { + my ($client, $params) = @_; + + if (defined $client && defined $params->{'type'}) { + + $params->{'value'} = $params->{'type'}; + updateDigitalInput($client, $params); + } + + handleWebList($client, $params); +} + sub strings { return ' PLUGIN_DIGITAL_INPUT EN Digital Input @@ -142,6 +191,9 @@ PLUGIN_DIGITAL_INPUT_OPTICAL_SPDIF EN Optical S/PDIF (TOSLINK) + +PLUGIN_DIGITAL_INPUT_CHOOSE_BELOW + EN Choose a Digital Input option below: '}; 1;