123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package Plugins::SqueezeESP32::Player;
- use strict;
- use base qw(Slim::Player::SqueezePlay);
- use Slim::Utils::Log;
- use Slim::Utils::Prefs;
- my $prefs = preferences('plugin.squeezeesp32');
- my $log = logger('plugin.squeezeesp32');
- sub model { 'squeezeesp32' }
- sub modelName { 'SqueezeESP32' }
- sub hasIR { 0 }
- sub init {
- my $client = shift;
- $client->SUPER::init(@_);
- Plugins::SqueezeESP32::Plugin::config_artwork($client);
- }
- # Allow the player to define it's display width (and probably more)
- sub playerSettingsFrame {
- my $client = shift;
- my $data_ref = shift;
-
- my $value;
- my $id = unpack('C', $$data_ref);
-
- # New SETD command 0xfe for display width & height
- if ($id == 0xfe) {
- $value = (unpack('Cn', $$data_ref))[1];
- if ($value > 100 && $value < 400) {
- $prefs->client($client)->set('width', $value);
-
- my $height = (unpack('Cnn', $$data_ref))[2];
- $prefs->client($client)->set('height', $height || 0);
- $client->display->modes($client->display->build_modes);
- $client->display->widthOverride(1, $value);
- $client->update;
-
- $log->info("Setting player $value" . "x" . "$height for ", $client->name);
- }
- }
-
- $client->SUPER::playerSettingsFrame($data_ref);
- }
- sub hasScrolling {
- return 1;
- }
- sub reconnect {
- my $client = shift;
- $client->pluginData('artwork_md5', '');
- $client->SUPER::reconnect(@_);
- }
- 1;
|