Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide generic interface for control backend implementations #24

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

twischer-adit
Copy link

This interface allows to implement different backends for the lv2 control ports. The simple backend implements the current behavior.

Another backend implementation could provide a simple telnet server to change and read the control ports.

I will rebase #21 on top of this PR soon. So this would be the second control backend implementation. By default the simple backend will be used but at compile time the implementation of #21 can be selected.

Please provide your feedback what you think about this additional interface. Are you missing any functions?

@drobilla
Copy link
Owner

drobilla commented May 27, 2022

I'm not a huge fan in general, to be honest, but I could probably be convinced if it ends up clean enough.

The only concrete problem I have with this API is locking. This is much too flakey, and I don't think it's appropriate for Jalv internals to be (trying to) call lock and unlock methods everywhere (correctly). The best way to do things like this is to have an actual protocol which more or less avoids concurrency issues entirely, but if some "control backend" wants to use threads and shared memory or whatever, that's its problem to be dealt with internally.

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