Rodmg / linamp

GNU General Public License v3.0
126 stars 15 forks source link

Adapt to 7 inch official raspberry pi screen #8

Open dsivasuthan opened 1 month ago

dsivasuthan commented 1 month ago

I tried editing several .ui files to get this working but there was always a scale issue and the buttons dissappeared. I tried setting the max size, etc on the .ui files but it wouldn't work properly.

Is there a way to get this working for a different size screen, specifically the 7 iinch official raspberry pi screen?

Just the guidance on how I can go about this would enough.

Rodmg commented 1 month ago

Hi, of course, let me explain why you are seeing those issues with some project history:

When I started to build the UI, I did it on a laptop, and I wanted to replicate the original Winap UI 1:1, pixel-perfect. Because Winamp was built for old low-res monitors, If you run it on a modern hi-dpi monitor you will see that the UI is tiny.

That's why, when you open the .ui files, you will see that those look tiny, as I originally tried to make them 1:1.

My next step was to scale the UI, I did it in code, as I was not sure what the actual scale I would need fot the screen I ended using for Linamp, and also wanted to make it usable on a modern desktop screen. You will find a "scale" method on the class for the views that support it with the implementation, for example: https://github.com/Rodmg/linamp/blob/fcf6b5ce20d71a9b61a039d14132c65c072f4c61/playerview.cpp#L81.

The scale is set here: https://github.com/Rodmg/linamp/blob/main/scale.h, currently is 4x If you want to change the scale, you should also change the image assets size with this script (so the pixelated apperance looks crisp and not blurry): https://github.com/Rodmg/linamp/blob/main/scale-skin.sh

HOWEVER: At some point I stopped caring about the scaling because 4x looked fine on the screen I ended using, so new things were implemented on that size and I haven't checked if everything still works on different scales.

So, in other words, if you want to edit the playerview.ui to have a different size or arrangement, just do it all divided by 4 so you don't need to change scaling, and tweak the "scale" method if needed. Alternatively you could get rid of the scale method and scale everything manually in the .ui, I may end up doing this at some point.

Hope this helps

dsivasuthan commented 1 month ago

Thank you for the detailed reply. I will give that a shot. My screen is not hidpi, it's 800x480. The UI actually goes beyond the screen. I will keep at it. I think I will learn c++ and QT as a consequence. Thanks for making the project open source.