[Slim-Checkins] r9202 - in /trunk/server/Slim: Buttons/Input/Bar.pm
Buttons/Volume.pm
Player/Client.pm Player/Player.pm Player/Transporter.pm
adrian at svn.slimdevices.com
adrian at svn.slimdevices.com
Mon Aug 28 09:02:25 PDT 2006
Author: adrian
Date: Mon Aug 28 09:02:21 2006
New Revision: 9202
URL: http://svn.slimdevices.com?rev=9202&view=rev
Log:
Bug: N/A
Description: Volume updates:
- dB scale only used for Tranporter and SS Tranporter skin
- add hook for custom volume lines, register with: $client->customVolumeLines()
- move Input.Bar to return new display hash
Modified:
trunk/server/Slim/Buttons/Input/Bar.pm
trunk/server/Slim/Buttons/Volume.pm
trunk/server/Slim/Player/Client.pm
trunk/server/Slim/Player/Player.pm
trunk/server/Slim/Player/Transporter.pm
Modified: trunk/server/Slim/Buttons/Input/Bar.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Buttons/Input/Bar.pm?rev=9202&r1=9201&r2=9202&view=diff
==============================================================================
--- trunk/server/Slim/Buttons/Input/Bar.pm (original)
+++ trunk/server/Slim/Buttons/Input/Bar.pm Mon Aug 28 09:02:21 2006
@@ -411,9 +411,17 @@
}
}
- my @overlay = $noOverlay ? undef : Slim::Buttons::Input::List::getExtVal($client, $valueRef, $listIndex, 'overlayRef');
-
- return ($line1, $line2, @overlay);
+ my ($overlay1, $overlay2) = Slim::Buttons::Input::List::getExtVal($client, $valueRef, $listIndex, 'overlayRef') unless $noOverlay;
+
+ $overlay1 = $client->symbols($overlay1) if defined($overlay1);
+ $overlay2 = $client->symbols($overlay2) if defined($overlay2);
+
+ my $parts = {
+ 'line' => [ $line1, $line2 ],
+ 'overlay' => [ $overlay1, $overlay2 ]
+ };
+
+ return $parts;
}
sub getFunctions {
@@ -433,7 +441,7 @@
}
#}
- $client->lines(\&lines);
+ $client->lines( $client->param('lines') || \&lines );
}
sub exitInput {
Modified: trunk/server/Slim/Buttons/Volume.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Buttons/Volume.pm?rev=9202&r1=9201&r2=9202&view=diff
==============================================================================
--- trunk/server/Slim/Buttons/Volume.pm (original)
+++ trunk/server/Slim/Buttons/Volume.pm Mon Aug 28 09:02:21 2006
@@ -76,8 +76,9 @@
'initialValue' => sub { return $_[0]->volume },
'valueRef' => $client->volume,
'callback' => \&volumeExitHandler,
+ 'increment' => 1,
+ 'lines' => $client->customVolumeLines(),
'screen2' => 'inherit',
- 'increment' => 1,
});
_volumeIdleChecker($client);
Modified: trunk/server/Slim/Player/Client.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Player/Client.pm?rev=9202&r1=9201&r2=9202&view=diff
==============================================================================
--- trunk/server/Slim/Player/Client.pm (original)
+++ trunk/server/Slim/Player/Client.pm Mon Aug 28 09:02:21 2006
@@ -163,7 +163,7 @@
$client->[101] = undef; # lines2periodic
$client->[102] = 0; # periodicUpdateTime
$client->[103] = undef; # musicInfoTextCache
- $client->[104] = undef; # unused
+ $client->[104] = undef; # customVolumeLines
# 105 is scroll state
$client->[106] = undef; # knobPos
$client->[107] = undef; # knobTime
@@ -1584,6 +1584,11 @@
@_ ? ($r->[103] = shift) : $r->[103];
}
+sub customVolumeLines {
+ my $r = shift;
+ @_ ? ($r->[104] = shift) : $r->[104];
+}
+
sub knobPos {
my $r = shift;
@_ ? ($r->[106] = shift) : $r->[106];
Modified: trunk/server/Slim/Player/Player.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Player/Player.pm?rev=9202&r1=9201&r2=9202&view=diff
==============================================================================
--- trunk/server/Slim/Player/Player.pm (original)
+++ trunk/server/Slim/Player/Player.pm Mon Aug 28 09:02:21 2006
@@ -694,6 +694,7 @@
my $scale = $client->mixerConstant($feature, 'scale');
my $headerValue = '';
+ my $parts;
if ($client->mixerConstant($feature, 'balanced')) {
@@ -701,7 +702,15 @@
} elsif ($feature eq 'volume') {
- $headerValue = $client->volumeString($featureValue);
+ if (my $linefunc = $client->customVolumeLines()) {
+
+ $parts = &$linefunc($client, $featureValue);
+
+ } else {
+
+ $headerValue = $client->volumeString($featureValue);
+
+ }
} else {
@@ -720,15 +729,14 @@
$client->modeParam('visu', [0]);
- my @lines = Slim::Buttons::Input::Bar::lines($client, $featureValue, $featureHeader, {
+ $parts ||= Slim::Buttons::Input::Bar::lines($client, $featureValue, $featureHeader, {
'min' => $client->mixerConstant($feature, 'min'),
'mid' => $mid,
'max' => $client->mixerConstant($feature, 'max'),
'noOverlay' => 1,
});
- # trim off any overlay for showBriefly
- $client->display->showBriefly(@lines[0,1], { 'name' => 'mixer' } );
+ $client->display->showBriefly($parts, { 'name' => 'mixer' } );
# Turn the visualizer back to it's old value.
$client->modeParam('visu', $oldvisu);
Modified: trunk/server/Slim/Player/Transporter.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Player/Transporter.pm?rev=9202&r1=9201&r2=9202&view=diff
==============================================================================
--- trunk/server/Slim/Player/Transporter.pm (original)
+++ trunk/server/Slim/Player/Transporter.pm Mon Aug 28 09:02:21 2006
@@ -124,12 +124,21 @@
sub volumeString {
my ($client, $volume) = @_;
- if ($volume <= 0) {
+ if ($client->display->isa('Slim::Display::Transporter')) {
- return sprintf(' (%s)', $client->string('MUTED'));
+ if ($volume <= 0) {
+
+ return sprintf(' (%s)', $client->string('MUTED'));
+ }
+
+ return sprintf(' (%.2f dB)', -abs(($volume / 2) - 50));
+
+ } else {
+
+ return $client->SUPER::volumeString($volume);
+
}
- return sprintf(' (%.2f dB)', -abs(($volume / 2) - 50));
}
1;
More information about the checkins
mailing list