dagargo / overwitch

JACK client for Overbridge devices
GNU General Public License v3.0
121 stars 14 forks source link

Decouple Overwitch from the JACK client #25

Closed szszoke closed 1 year ago

szszoke commented 2 years ago

I'm considering forking your project and turning it into a recording/playback application for Android.

As far as I can tell, everything should work on Android, except for Jack (which is not really an issue).

I'm also thinking that before an Android port becomes possible, I'd have to implement a simple recording mode, where no Jack/PipeWire code is used.

As a start I would likely follow the structure of the current Jack implementation, but instead of sending the samples to Jack, I'd write them to disk as wav files.

When that is done, I could start testing on an Android device and eventually build a UI.

Whichever way the fork would go, I see a lot of potential for cooperating.

Maybe overwitch could be split into liboverwitch, overwitch-cli and overwitch-gui.

An eventual Android port could then use liboverwitch too, but that would require liboverwitch to be decoupled from Jack.

Another option is a complete fresh start, where I would study Overwitch and reimplement bits that are relevant for an Android port.

I'm just bouncing ideas at this point and I thought it would inquiry about future plans for the project.

dagargo commented 2 years ago

I've changed my plans and I'd like to release version 1.0 in the next few days since all functionalities have already been implemented. However, I wanted to ask you first if this is right for you.

I guess it is because this issue will remain open while the internal API is being developed but we can exclude it from the release safely.

szszoke commented 2 years ago

I think you should ignore the Android port in your planning for now.

I couldn't solve the issue of real-time thread priorities so I'm blocked for now.

If I figure things out and get a working version then we can revisit the API compatibility.

For now, just do what makes sense for the main project.

szszoke commented 2 years ago

I have a new phone so I will be giving the Android port a second try.

dagargo commented 1 year ago

A shared library has been created and there are headers available too. No proper API documentation yet but the utilities code should help a lot with this.

Everything is working but this is still an early stage so there are a few loose ends here and there. For instance, the header file is called overwitch.h but probably should be called liboverwitch.h.

Let me know your thoughts on all this.

szszoke commented 1 year ago

Hey! Sorry for the radio silence. I didn't have time to work more on this and I eventually had to send back my new phone because it wasn't working as it should have.

I think I will have to try to make it work with an Android Emulator, hopefully that will be less trouble.

dagargo commented 1 year ago

No worries.

I'm gonna close this as Overwitch is compiled as a library and an executable and the library is fully decoupled from JACK.

Feel free to reopen if needed.