Skip to content

Conversation

@mw9
Copy link
Contributor

@mw9 mw9 commented Nov 16, 2025

Within the last few years I have been noticing that Squeeze's Clear Playlist and Save Playlist icons are not always being generated.

I regularly see this:
Squeezeplay - Playlist items - Wrong
But I should be seeing this:
Squeezeplay - Playlist items - Correct
I now realize that this arises because I switched from using the 'Default' skin to the 'Material' skin. The source images, from which the icons are generated, are located in the 'Default' skin hierarchy, and are not found when using 'Material'. They need to be in the generic fallback 'EN' hierarchy if they are to be found independently of the current skin in use.

This proposed change fixes the issue by moving the relevant source images into the 'EN' hierarchy.

It also removes a couple of other redundant images from the 'Default' hierarchy. These are binary duplicates of images already present in the 'EN' hierarchy, and serve no purpose. (Images are cover.png and radio.png).

Remark:

Not all of the playlist related images are actively in use. Only playlistclear.png and playlistsave.png are actively referenced. But it makes sense to move all other related artwork. ( blank.png was historically used as the 'save' and 'clear' icon in early versions of Squeezeplay).

This is a list of the playlist related images that will be moved:

blank.png
playlist.png
playlistadd.png
playlistclear.png
playlistclear_40x40_m.png
playlistedit.png
playlistsave.png
playlistsave_40x40_m.png

…rarchies

This change moves playlist related images from the 'Default skin' hierarchy to
the generic fallback 'EN' hierarchy. They are used to generate Squeezeplay
icons. At present, they will not be found, and icons will not be generated,
unless the user is using the 'Default' skin. Moving to 'EN' ensures they will
be found, and icons generated, regardless of the skin in use.

The change also removes the 'cover.png' and 'radio.png' images from the
'Default' hierarchy. They are identical to those found in the 'EN' hierarchy,
and serve no useful purpose. (They did once differ, but were made identical
in LMS v7.4 - circa 2009).

Signed-off-by: Martin Williams <martinr.williams@gmail.com>
@michaelherger
Copy link
Member

Good catch! Thanks!

@michaelherger michaelherger merged commit 4fd1b56 into LMS-Community:public/9.1 Nov 17, 2025
1 check passed
@mw9
Copy link
Contributor Author

mw9 commented Nov 17, 2025

It makes me wonder if the graphics resizer should really be searching through skins for a url in the plain /html hierarchy. I haven’t worked that through. I don’t think it would if the url were in the /music hierarchy.

It happens here:

if ( $fullpath !~ m{^/|^https?} && $fullpath !~ /^[a-z]:[\\\/]/i && $fullpath !~ /^\\\\/i ) {

@michaelherger
Copy link
Member

Most of the icons are 512x512 - therefore we need to resize them for eg. the Radio. And as skins should be able to overwrite some with their own we have to do that all the time. Does that make sense?

@mw9
Copy link
Contributor Author

mw9 commented Nov 17, 2025

Oh yes, that makes perfect sense. I guess we have to see the html/image hierarchy as serving two possible demands, (a) that of a specific skin, which might like to define its own icons (e.g. material), and (b) Squeezeplay players, whose icons should always be unaffected by the skin currently in use.

I think I noticed a difference in approach here as compared with processHTTP. In that case something in the /html hierarchy is “not a skin”.

if ( !main::WEBUI || $path =~ m{^(?:html|music|contributor|plugins|apps|settings|firmware|clixmlbrowser|index\.html|imageproxy)/}i || Slim::Web::Pages->isRawDownload($path) ) {

But, as said, I haven’t worked through, and, with certainty, I only have a very sketchy picture.

Clearly the current EN fallback scenario works, and has done for years. I think I was initially confused/puzzled by this apparent difference in approach.

@mw9 mw9 deleted the fix/SQP_playlist_icons branch November 18, 2025 13:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants