Index: Slim/Player/Client.pm =================================================================== --- Slim/Player/Client.pm (revision 3032) +++ Slim/Player/Client.pm (working copy) @@ -729,7 +729,8 @@ # 95 is currentPlaylistRender # 96 is currentPlaylistChangeTime $client->[97] = undef; # tempVolume temporary volume setting - + $client->[98] = 0; # updating + $::d_protocol && msg("New client connected: $id\n"); $client->lastirtime(0); $client->lastircode(0); @@ -1631,4 +1632,9 @@ @_ ? ($r->[96] = shift) : $r->[96]; } +sub updating { + my $r = shift; + @_ ? ($r->[98] = shift) : $r->[98]; +} + 1; Index: Slim/Player/Player.pm =================================================================== --- Slim/Player/Player.pm (revision 3032) +++ Slim/Player/Player.pm (working copy) @@ -164,6 +164,10 @@ my $lines = shift; my $nodoublesize = shift; + # avoid recursion + return if $client->updating(); + $client->updating(1); + unless ($client->param('noUpdate')) { $client->killAnimation(); @@ -174,6 +178,7 @@ Slim::Hardware::VFD::vfdUpdate($client, $lines, $nodoublesize); } } + $client->updating(0); } sub pushUp { Index: Slim/Player/SqueezeboxG.pm =================================================================== --- Slim/Player/SqueezeboxG.pm (revision 3032) +++ Slim/Player/SqueezeboxG.pm (working copy) @@ -139,6 +139,10 @@ my $lines = shift; my $nodoublesize = shift; + # avoid recursion + return if $client->updating(); + $client->updating(1); + if ($client->param('noUpdate')) { #mode has blocked client updates temporarily } else { @@ -150,6 +154,7 @@ $client->drawFrameBuf($client->render($lines),$lines); } + $client->updating(0); } sub preRender {