Yoooi0 / MultiFunPlayer

flexible application to synchronize various devices with media playback
https://yoooi0.github.io/MultiFunPlayer/
MIT License
122 stars 22 forks source link

Linux build #3

Open hjs0007 opened 3 years ago

hjs0007 commented 3 years ago

Hello,

Is there some hope you release a Linux build of MFP?

Yoooi0 commented 3 years ago

Unfortunately WPF only supports windows. When MAUI and .NET 6 is released I will consider rewriting the app to also work on linux and mac depending on how much work that will be. For now maybe wine will work?

hjs0007 commented 3 years ago

I tried with wine but unfortunately, it doesn't work. The app started fine but crashed after some seconds. Now the app crash every time I starts it, even after removing the preferences file.

yoshnopa commented 2 years ago

I would also love to use this under Linux. Right now, .NET 5 is already installable under Linux with https://dot.net/v1/dotnet-install.sh or snap, so I don't quite see why it would not work there. I am no expert at C# in general, but if you need assistance on how dependencies and stuff work under Linux I'd be glad to help. Maybe you could explain how this project can be compiled in general (best case without windows only tools)? Then I could try to make it work myself.

Yoooi0 commented 2 years ago

Right now, .NET 5 is already installable under Linux with https://dot.net/v1/dotnet-install.sh or snap, so I don't quite see why it would not work there.

Because the UI is made in WPF which is is windows only. The C# side will work just fine under mac/linux.

Maybe you could explain how this project can be compiled in general (best case without windows only tools)? Then I could try to make it work myself.

You should be able to just do dotnet build inside the solution directory, but having it use WPF might cause it to not compile im not sure.


Ideally I think the app should be split into multiple projects so that the core of the app does not rely on any UI, then add UI projects for MAUI/Blazor/Console. Technically this could be done now to first decouple it from WPF, and then rewrite the WPF part in a crossplatform UI like avalonia or maui later. Im just not sure there is enough linux/mac users that would want to use MFP for this to make sense for now.

Btw apparently someone ran MFP in wine on mac and said that everything worked fine but the UI was glitching, so maybe wine on some specific distro would also work.

yoshnopa commented 2 years ago

@Yoooi0 Thanks for elaborating on those details

I can confirm that I was able to make it run with wine, but the UI was unusable. May differ from DE to DE how unusable it turns out. It was also a bit of a fiddle, if there is interest I can share how I did it.

I will try some scanarios on compiling with wine/linux the next days, but probably this won't go anywhere, as my quick read on WPF basically gave no possibility to get it compiling on Linux.

About the User base on Linux, my scenario, which I think would be interesting to a wider user base, is to make the device controllable via Wifi. This could be done by using a Pi Zero 2 W (which is capable of runnng dotnet 5 and probably also 6) and installing buttplug.io as well as MultiFunPlayer for compatibility with Video Players as well as simple Remote Control and Games. A windows PC would be overkill in this scenario obviously. The OS image could then be shared so it could be setup with minimal configuration.

For that Scenario I agree with you, a console version would be the perfect solution, dodging the windows dependency entirely and also saving some valuable RAM on the small device. Such an update would be greatly appreciated!

Enissay commented 1 year ago

Unfortunately WPF only supports windows. When MAUI and .NET 6 is released I will consider rewriting the app to also work on linux and mac depending on how much work that will be.

Any update on this please ?

Yoooi0 commented 1 year ago

Well, MAUI is released but its not that great and will take some time to mature. I still would like to support linux and mac but will probably have to use Avalonia instead which might make the rewrite easier too. So the status is the same: "maybe someday"

Yoooi0 commented 1 year ago

Another possible solution that does not require a rewrite: https://avaloniaui.net/XPF Hopefully they release a free license for open source projects.