Files
squeezelite-esp32/plugin/SqueezeESP32/Graphics.pm
2020-01-15 23:26:43 -08:00

72 lines
1.5 KiB
Perl

package Plugins::SqueezeESP32::Graphics;
use strict;
use base qw(Slim::Display::Squeezebox2);
my $VISUALIZER_NONE = 0;
my @modes = (
# mode 0
{ desc => ['BLANK'],
bar => 0, secs => 0, width => 128,
params => [$VISUALIZER_NONE] },
# mode 1
{ desc => ['PROGRESS_BAR'],
bar => 1, secs => 0, width => 128,
params => [$VISUALIZER_NONE] },
# mode 2
{ desc => ['ELAPSED'],
bar => 0, secs => 1, width => 128,
params => [$VISUALIZER_NONE] },
# mode 3
{ desc => ['ELAPSED', 'AND', 'PROGRESS_BAR'],
bar => 1, secs => 1, width => 128,
params => [$VISUALIZER_NONE] },
# mode 4
{ desc => ['REMAINING'],
bar => 0, secs => -1, width => 128,
params => [$VISUALIZER_NONE] },
# mode 5
{ desc => ['CLOCK'],
bar => 0, secs => 0, width => 128, clock => 1,
params => [$VISUALIZER_NONE] },
# mode 6
{ desc => ['SETUP_SHOWBUFFERFULLNESS'],
bar => 0, secs => 0, width => 128, fullness => 1,
params => [$VISUALIZER_NONE] },
);
sub modes {
return \@modes;
}
sub nmodes {
return $#modes;
}
# I don't think LMS renderer handles properly screens other than 32 pixels. It
# seems that all we get is a 32 pixel-tall data with anything else padded to 0
# i.e. if we try 64 pixels height, bytes 0..3 and 4..7 will contains the same
# pattern than the 32 pixels version, where one would have expected bytes 4..7
# to be empty
=comment
sub bytesPerColumn {
return 4;
}
=cut
sub displayHeight {
return 32;
}
sub displayWidth {
return shift->widthOverride(@_) || 128;
}
sub vfdmodel {
return 'graphic-128x32';
}
1;