소스 검색

equalizer w/o display

Philippe G 5 년 전
부모
커밋
e0e309c4ed

BIN
plugin/SqueezeESP32.zip


+ 31 - 28
plugin/SqueezeESP32/HTML/EN/plugins/SqueezeESP32/settings/player.html

@@ -1,39 +1,42 @@
 [% PROCESS settings/header.html %]
 
-	[% WRAPPER setting title="PLUGIN_SQUEEZEESP32_WIDTH" desc="PLUGIN_SQUEEZEESP32_WIDTH_DESC" %]
-		<!--<input type="text" readonly class="stdedit" name="pref_width" id="width" value="[% prefs.pref_width %]" size="3">-->
-		[% prefs.pref_width %]
-	[% END %]
+	[% IF prefs.pref_width %]
+		[% WRAPPER setting title="PLUGIN_SQUEEZEESP32_WIDTH" desc="PLUGIN_SQUEEZEESP32_WIDTH_DESC" %]
+			<!--<input type="text" readonly class="stdedit" name="pref_width" id="width" value="[% prefs.pref_width %]" size="3">-->
+			[% prefs.pref_width %]
+		[% END %]
 	
-	[% WRAPPER setting title="PLUGIN_SQUEEZEESP32_SMALL_VU" desc="PLUGIN_SQUEEZEESP32_SMALL_VU_DESC" %]
-		<input type="number" min="10" max= "50" step="5"class="stdedit" name="pref_small_VU" id="small_VU" value="[% prefs.pref_small_VU %]" size="3">
-	[% END %]
+		[% WRAPPER setting title="PLUGIN_SQUEEZEESP32_SMALL_VU" desc="PLUGIN_SQUEEZEESP32_SMALL_VU_DESC" %]
+			<input type="number" min="10" max= "50" step="5"class="stdedit" name="pref_small_VU" id="small_VU" value="[% prefs.pref_small_VU %]" size="3">
+		[% END %]
 	
-	[% WRAPPER setting title="PLUGIN_SQUEEZEESP32_SPECTRUM_SCALE" desc="PLUGIN_SQUEEZEESP32_SPECTRUM_SCALE_DESC" %]
-		<input type="number" min="10" max= "50" step="5" class="stdedit" name="pref_spectrum_scale" id="spectrum_scale" value="[% prefs.pref_spectrum.scale %]" size="3">
-	[% END %]
+		[% WRAPPER setting title="PLUGIN_SQUEEZEESP32_SPECTRUM_SCALE" desc="PLUGIN_SQUEEZEESP32_SPECTRUM_SCALE_DESC" %]
+			<input type="number" min="10" max= "50" step="5" class="stdedit" name="pref_spectrum_scale" id="spectrum_scale" value="[% prefs.pref_spectrum.scale %]" size="3">
+		[% END %]
 	
-	[% WRAPPER setting title="PLUGIN_SQUEEZEESP32_SMALL_SPECTRUM" desc="PLUGIN_SQUEEZEESP32_SMALL_SPECTRUM_DESC" %]
-		[% "PLUGIN_SQUEEZEESP32_SMALL_SPECTRUM_SIZE" | string %]&nbsp
-		<input type="number" min="10" max= "50" step="5"class="stdedit" name="pref_spectrum_small_size" id="spectrum_small_size" value="[% prefs.pref_spectrum.small.size %]" size="3">
-		[% "PLUGIN_SQUEEZEESP32_SMALL_SPECTRUM_BAND" | string %]&nbsp
-		<input type="text" class="stdedit" name="pref_spectrum_small_band" id="spectrum_small_band" value="[% prefs.pref_spectrum.small.band %]" size="3">
-	[% END %]
+		[% WRAPPER setting title="PLUGIN_SQUEEZEESP32_SMALL_SPECTRUM" desc="PLUGIN_SQUEEZEESP32_SMALL_SPECTRUM_DESC" %]
+			[% "PLUGIN_SQUEEZEESP32_SMALL_SPECTRUM_SIZE" | string %]&nbsp
+			<input type="number" min="10" max= "50" step="5"class="stdedit" name="pref_spectrum_small_size" id="spectrum_small_size" value="[% prefs.pref_spectrum.small.size %]" size="3">
+			[% "PLUGIN_SQUEEZEESP32_SMALL_SPECTRUM_BAND" | string %]&nbsp
+			<input type="text" class="stdedit" name="pref_spectrum_small_band" id="spectrum_small_band" value="[% prefs.pref_spectrum.small.band %]" size="3">
+		[% END %]
 	
-	[% WRAPPER setting title="PLUGIN_SQUEEZEESP32_FULL_SPECTRUM_BAND" desc="PLUGIN_SQUEEZEESP32_FULL_SPECTRUM_BAND_DESC" %]
-		<input type="text" class="stdedit" name="pref_spectrum_full_band" id="spectrum_full_band" value="[% prefs.pref_spectrum.full.band %]" size="3">
-	[% END %]
+		[% WRAPPER setting title="PLUGIN_SQUEEZEESP32_FULL_SPECTRUM_BAND" desc="PLUGIN_SQUEEZEESP32_FULL_SPECTRUM_BAND_DESC" %]
+			<input type="text" class="stdedit" name="pref_spectrum_full_band" id="spectrum_full_band" value="[% prefs.pref_spectrum.full.band %]" size="3">
+		[% END %]
 	
-	[% WRAPPER setting title="PLUGIN_SQUEEZEESP32_ARTWORK" desc="PLUGIN_SQUEEZEESP32_ARTWORK_DESC" %]
-		[% "PLUGIN_SQUEEZEESP32_ARTWORK_ENABLE" | string %]&nbsp
-		<input type="checkbox" name="pref_artwork_enable" [% IF prefs.pref_artwork.enable %] checked [% END %]>
-		[% "PLUGIN_SQUEEZEESP32_ARTWORK_X" | string %]&nbsp
-		<input type="text" class="stdedit" name="pref_artwork_x" id="artwork_x" value="[% prefs.pref_artwork.x %]" size="2">
-		[% "PLUGIN_SQUEEZEESP32_ARTWORK_Y" | string %]&nbsp
-		<input type="text" class="stdedit" name="pref_artwork_y" id="artwork_y" value="[% prefs.pref_artwork.y %]" size="2">
-	[% END %]
+		[% WRAPPER setting title="PLUGIN_SQUEEZEESP32_ARTWORK" desc="PLUGIN_SQUEEZEESP32_ARTWORK_DESC" %]
+			[% "PLUGIN_SQUEEZEESP32_ARTWORK_ENABLE" | string %]&nbsp
+			<input type="checkbox" name="pref_artwork_enable" [% IF prefs.pref_artwork.enable %] checked [% END %]>
+			[% "PLUGIN_SQUEEZEESP32_ARTWORK_X" | string %]&nbsp
+			<input type="text" class="stdedit" name="pref_artwork_x" id="artwork_x" value="[% prefs.pref_artwork.x %]" size="2">
+			[% "PLUGIN_SQUEEZEESP32_ARTWORK_Y" | string %]&nbsp
+			<input type="text" class="stdedit" name="pref_artwork_y" id="artwork_y" value="[% prefs.pref_artwork.y %]" size="2">
+		[% END %]
 
-	<hr>	
+		<hr>	
+	[% END %]	
+	
 	[% WRAPPER setting title="PLUGIN_SQUEEZEESP32_EQUALIZER" desc="" %]
 	[% END %]
 	

+ 0 - 7
plugin/SqueezeESP32/Player.pm

@@ -15,12 +15,6 @@ sub hasIR { 0 }
 
 sub init {
 	my $client = shift;
-	
-	$prefs->client($client)->init( { 
-		eq => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
-		}
-	);	
-	
 	$client->SUPER::init(@_);
 	Plugins::SqueezeESP32::Plugin::config_artwork($client);
 }
@@ -61,7 +55,6 @@ sub reconnect {
 	my $client = shift;
 	$client->pluginData('artwork_md5', '');
 	$client->SUPER::reconnect(@_);
-	Plugins::SqueezeESP32::Plugin::send_equalizer($client);
 }	
 
 1;

+ 37 - 31
plugin/SqueezeESP32/PlayerSettings.pm

@@ -21,7 +21,7 @@ sub needsClient {
 
 sub validFor {
 	my ($class, $client) = @_;
-	return $client->model eq 'squeezeesp32' && $client->displayWidth;
+	return $client->model eq 'squeezeesp32';
 }
 
 sub page {
@@ -40,45 +40,51 @@ sub handler {
 	my ($cprefs, @prefs) = $class->prefs($client);
 	
 	if ($paramRef->{'saveSettings'}) {
-		$cprefs->set('small_VU', $paramRef->{'pref_small_VU'});
-		my $spectrum =	{	scale => $paramRef->{'pref_spectrum_scale'},
-							small => { 	size => $paramRef->{'pref_spectrum_small_size'}, 
-										band => $paramRef->{'pref_spectrum_small_band'} },
-							full  => { 	band => $paramRef->{'pref_spectrum_full_band'} },
-				};
-		$cprefs->set('spectrum', $spectrum);
-		my $artwork =	{	enable => $paramRef->{'pref_artwork_enable'},
-							x => $paramRef->{'pref_artwork_x'}, 
-							y => $paramRef->{'pref_artwork_y'},
-				};
-		$cprefs->set('artwork', $artwork);				
-		$client->display->modes($client->display->build_modes);
-		$client->display->update;
+		if ($client->displayWidth) {
+			$cprefs->set('small_VU', $paramRef->{'pref_small_VU'});
+			my $spectrum =	{	scale => $paramRef->{'pref_spectrum_scale'},
+								small => { 	size => $paramRef->{'pref_spectrum_small_size'}, 
+											band => $paramRef->{'pref_spectrum_small_band'} },
+								full  => { 	band => $paramRef->{'pref_spectrum_full_band'} },
+					};
+			$cprefs->set('spectrum', $spectrum);
+			
+			my $artwork =	{	enable => $paramRef->{'pref_artwork_enable'},
+								x => $paramRef->{'pref_artwork_x'}, 
+								y => $paramRef->{'pref_artwork_y'},
+					};
+			$cprefs->set('artwork', $artwork);				
+			$client->display->modes($client->display->build_modes);
+			$client->display->update;
+		
+			# force update or disable artwork
+			if ($artwork->{'enable'}) {
+				Plugins::SqueezeESP32::Plugin::update_artwork($client, 1);
+			} else {
+				Plugins::SqueezeESP32::Plugin::config_artwork($client);
+			}	
+		}	
 		
 		my $eq = $cprefs->get('eq');
 		for my $i (0 .. $#{$eq}) {
 			$eq->[$i] = $paramRef->{"pref_eq.$i"};
 		}
 		$cprefs->set('eq', $eq);
-		Plugins::SqueezeESP32::Plugin::send_equalizer($client);
-		
-		# force update or disable artwork
-		if ($artwork->{'enable'}) {
-			Plugins::SqueezeESP32::Plugin::update_artwork($client, 1);
-		} else {
-			Plugins::SqueezeESP32::Plugin::config_artwork($client);
-		}	
+		Plugins::SqueezeESP32::Plugin::send_equalizer($client);		
 	}
 	
-	# as there is nothing captured, we need to re-set these variables
-	$paramRef->{'pref_width'} = $cprefs->get('width');
+	if ($client->displayWidth) {
+		# as there is nothing captured, we need to re-set these variables
+		$paramRef->{'pref_width'} = $cprefs->get('width'); 
+	
+		# here I don't know why you need to set again spectrum which is a reference
+		# to a hash. Using $paramRef->{prefs} does not work either. It seems that 
+		# some are copies of value, some are references, can't figure out. This whole
+		# logic of "Settings" is beyond me and I really hate it
+		$paramRef->{'pref_spectrum'} = $cprefs->get('spectrum');
+		$paramRef->{'pref_artwork'} = $cprefs->get('artwork');
+	}
 	
-	# here I don't know why you need to set again spectrum which is a reference
-	# to a hash. Using $paramRef->{prefs} does not work either. It seems that 
-	# some are copies of value, some are references, can't figure out. This whole
-	# logic of "Settings" is beyond me and I really hate it
-	$paramRef->{'pref_spectrum'} = $cprefs->get('spectrum');
-	$paramRef->{'pref_artwork'} = $cprefs->get('artwork');
 	$paramRef->{'pref_eq'} = $cprefs->get('eq');
 	
 	return $class->SUPER::handler($client, $paramRef);

+ 12 - 0
plugin/SqueezeESP32/Plugin.pm

@@ -36,6 +36,7 @@ sub initPlugin {
 	Slim::Control::Request::subscribe( sub { onNotification(@_) }, [ ['newmetadata'] ] );
 	Slim::Control::Request::subscribe( sub { onNotification(@_) }, [ ['playlist'], ['open', 'newsong'] ]);
 	Slim::Control::Request::subscribe( \&onStopClear, [ ['playlist'], ['stop', 'clear'] ]);
+	Slim::Control::Request::subscribe( \&onPlayer,[ ['client'], [ 'new', 'reconnect' ] ] );
 }
 
 sub onStopClear {
@@ -50,6 +51,17 @@ sub onStopClear {
 	}	
 }
 
+sub onPlayer {
+    my $request = shift;
+    my $client  = $request->client;
+
+    if ($client->model eq 'squeezeesp32') {
+		$prefs->client($client)->init( { 
+					eq => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+				} );
+		Plugins::SqueezeESP32::Plugin::send_equalizer($client);
+	}
+}
 
 sub onNotification {
     my $request = shift;

+ 1 - 1
plugin/SqueezeESP32/install.xml

@@ -10,6 +10,6 @@
   <name>PLUGIN_SQUEEZEESP32</name>
   <description>PLUGIN_SQUEEZEESP32_DESC</description>
   <module>Plugins::SqueezeESP32::Plugin</module>
-    <version>0.81</version>
+    <version>0.82</version>
   <creator>Philippe</creator>
 </extensions>

+ 2 - 2
plugin/repo.xml

@@ -1,10 +1,10 @@
 <?xml version='1.0' standalone='yes'?>
 <extensions>
   <plugins>
-    <plugin version="0.81" name="SqueezeESP32" minTarget="7.5" maxTarget="*">
+    <plugin version="0.82" name="SqueezeESP32" minTarget="7.5" maxTarget="*">
       <link>https://github.com/sle118/squeezelite-esp32</link>
       <creator>Philippe</creator>
-      <sha>dcd91eaeb065cf3e90e964ea40a883ed5480093e</sha>
+      <sha>55eb14f12790d71306d143689d9b3d47f9820731</sha>
       <email>philippe_44@outlook.com</email>
       <desc lang="EN">SqueezeESP32 additional player id (100)</desc>
       <url>http://github.com/sle118/squeezelite-esp32/raw/master/plugin/SqueezeESP32.zip</url>