[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