[Slim-Checkins] r9063 - in /trunk/server/Slim: Buttons/Common.pm
Buttons/Settings.pm Web/Setup.pm
adrian at svn.slimdevices.com
adrian at svn.slimdevices.com
Sat Aug 19 16:38:49 PDT 2006
Author: adrian
Date: Sat Aug 19 16:38:46 2006
New Revision: 9063
URL: http://svn.slimdevices.com?rev=9063&view=rev
Log:
Bug: N/A
Description: Player settings interface to change visualMode on screen2
Modified:
trunk/server/Slim/Buttons/Common.pm
trunk/server/Slim/Buttons/Settings.pm
trunk/server/Slim/Web/Setup.pm
Modified: trunk/server/Slim/Buttons/Common.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Buttons/Common.pm?rev=9063&r1=9062&r2=9063&view=diff
==============================================================================
--- trunk/server/Slim/Buttons/Common.pm (original)
+++ trunk/server/Slim/Buttons/Common.pm Sat Aug 19 16:38:46 2006
@@ -471,7 +471,6 @@
}
},
'visual' => sub {
- # toggle display mod for now playing...
my $client = shift;
my $button = shift;
my $buttonarg = shift;
@@ -492,22 +491,9 @@
}
$client->prefSet('visualMode', $vm);
-
- my $screen2 = $client->modeVariable('screen2');
-
- if ($client->display->showExtendedText()) {
- if (!$screen2) {
- $client->modeVariable('screen2', 'periodic');
- startPeriodicUpdates($client);
- }
- } else {
- if ($screen2) {
- if ($screen2 eq 'periodic') {
- $client->modeVariable('screen2', undef);
- }
- $client->update( { 'screen2' => {} } );
- }
- }
+
+ updateScreen2Mode($client);
+
$client->update();
},
@@ -1428,6 +1414,26 @@
return $newlines;
}
+sub updateScreen2Mode {
+ my $client = shift || return;
+
+ my $screen2 = $client->modeVariable('screen2');
+
+ if ($client->display->showExtendedText()) {
+ if (!$screen2) {
+ $client->modeVariable('screen2', 'periodic');
+ startPeriodicUpdates($client);
+ }
+ } else {
+ if ($screen2) {
+ if ($screen2 eq 'periodic') {
+ $client->modeVariable('screen2', undef);
+ }
+ $client->update( { 'screen2' => {} } );
+ }
+ }
+}
+
sub suppressStatus {
my $client = shift;
Modified: trunk/server/Slim/Buttons/Settings.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Buttons/Settings.pm?rev=9063&r1=9062&r2=9063&view=diff
==============================================================================
--- trunk/server/Slim/Buttons/Settings.pm (original)
+++ trunk/server/Slim/Buttons/Settings.pm Sat Aug 19 16:38:46 2006
@@ -357,6 +357,18 @@
},
},
},
+
+ 'SETUP_VISUALIZERMODE' => {
+ 'useMode' => 'INPUT.Choice',
+ 'onPlay' => \&updateVisualMode,
+ 'onAdd' => \&updateVisualMode,
+ 'onRight' => \&updateVisualMode,
+ 'header' => '{SETUP_VISUALIZERMODE}{count}',
+ 'pref' => 'visualMode',
+ 'initialValue' => sub { return $_[0]->prefGet('visualMode') },
+ 'condition' => sub { return $_[0]->display->isa('Slim::Display::Transporter') },
+ 'init' => \&visualInit,
+ },
'DIGITAL_INPUT' => {
'useMode' => 'INPUT.Choice',
@@ -476,6 +488,42 @@
return ' ('.($arg <= 0 ? $client->string('MUTED') : int($arg/100*40+0.5)).')';
}
+sub visualInit {
+ my $client = shift;
+ my $modes = $client->prefGet('visualModes');
+ my $modeDefs = $client->display->visualizerModes();
+
+ my @visualModes;
+ my $i = 0;
+
+ foreach my $mode (@$modes) {
+
+ my $desc = $modeDefs->[$mode]{'desc'};
+ my $name = '';
+
+ foreach my $j (0..$#{$desc}){
+ $name .= ' ' if ($j > 0);
+ $name .= Slim::Utils::Strings::string(@{$desc}[$j]);
+ }
+
+ push @visualModes, {
+ name => $name,
+ value => $i++,
+ };
+ }
+
+ $client->param('listRef', \@visualModes);
+}
+
+sub updateVisualMode {
+ my $client = shift;
+ my $value = shift;
+
+ $client->prefSet('visualMode', $value->{'value'});
+ Slim::Buttons::Common::updateScreen2Mode($client);
+};
+
+
1;
__END__
Modified: trunk/server/Slim/Web/Setup.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Web/Setup.pm?rev=9063&r1=9062&r2=9063&view=diff
==============================================================================
--- trunk/server/Slim/Web/Setup.pm (original)
+++ trunk/server/Slim/Web/Setup.pm Sat Aug 19 16:38:46 2006
@@ -238,6 +238,7 @@
}
,'visualMode' => {
'validate' => \&Slim::Utils::Validate::isInt
+ ,'onChange' => \&Slim::Buttons::Common::updateScreen2Mode
}
,'visualModes' => {
'isArray' => 1
More information about the checkins
mailing list