WinampDesktop / winamp

Iconic media player
https://winamp.com
Other
9.33k stars 2.73k forks source link

Migration of Winamp codes to Qt Framework and replacement of Windows specific codes with multi-platform codes #60

Open volkanorhan opened 2 weeks ago

volkanorhan commented 2 weeks ago

I think that we can migrate Winamp codes to Qt Framework and replace the Windows specific codes with multi-platform codes. Can we open a new branch for example QtMigration branch to do it?

jakubtalich commented 2 weeks ago

Let's be honest. That was never their plan to begin with. The whole idea of publishing the source code was never meant to achieve Winamp running on multiple platforms natively (especially Linux). There would be too much to sacrifice. We already have better applications (qmmp for example) to rely on. I do believe that this whole mummery was just to get some PR. And as long as there is not a reasonable license, you really cannot do much, not even contribute to the code.

grepwood commented 2 weeks ago

I'd like to join @volkanorhan's query but ask for FLTK instead. Can we perchance agree that the direction where this is going should accomodate a neutral backend that can be used by multiple frontends? Perhaps even web-based ones?

volkanorhan commented 2 weeks ago

Let's be honest. That was never their plan to begin with. The whole idea of publishing the source code was never meant to achieve Winamp running on multiple platforms natively (especially Linux). There would be too much to sacrifice. We already have better applications (qmmp for example) to rely on. I do believe that this whole mummery was just to get some PR. And as long as there is not a reasonable license, you really cannot do much, not even contribute to the code.

But QMMP doesn't have modern skin support.

enaix commented 2 weeks ago

https://github.com/WinampDesktop/winamp/issues/55#issuecomment-2373774928 Perhaps we could use some other C-style window handling framework with similar api instead of Qt? This framework is made exclusively for modern adaptive UIs with OOP features, so it would require rewriting the whole project ui architecture from scratch

m6502 commented 2 weeks ago

Achieving multiplatform support for Winamp is the first thing that came to my mind when I heard about the source release. Maybe a first step could be to try Winelib?

M-Reimer commented 2 weeks ago

Sorry, this is impossible

Nothing is impossible. But Qt doesn't have to be the best toolkit for easy migration.

jakubtalich commented 2 weeks ago

@M-Reimer I would love to see Winamp under bloated big-buttoned fat-UI GTK4! :D

M-Reimer commented 2 weeks ago

@M-Reimer I would love to see Winamp under bloated big-buttoned fat-UI GTK4! :D

I did not make any suggestion. And if it gets to library size, I think Qt is actually bigger as it contains all kinds of "helper libraries" like network, threading, ... while GTK is just a widget toolkit.

volkanorhan commented 2 weeks ago

For a long time period, Qt would be the best framework for Winamp. In my opinion, quality is more important than fast results, because we already have Winamp alternatives, so a high quality multi-platform Winamp would be a better application in my opinion.

grepwood commented 2 weeks ago

Qt was based in the 4.10 days because the skill issues that made it bloated, were removed by C++11 introducing something similar to garbage collection. So much so that KDE 4.10 used 75% less RAM than 4.9. But let's not worry about this, because Qt managed to recover all the weight it lost within only 10 years.

For that reason, I believe Qt is no better than GTK, and FLTK should receive some attention.

ChristianIvarsson commented 2 weeks ago

Do you really need a gui framework? Winamp is mostly doing custom skinning any way so why not just talk directly to the window manager slash X server?

volkanorhan commented 2 weeks ago

Do you really need a gui framework? Winamp is mostly doing custom skinning any way so why not just talk directly to the window manager slash X server?

How can multiple platforms be supported without using any GUI framework? Perhaps FLTK can be a better choice for Winamp because Winamp has its own skinning system.