Skip to content

Provide generic interface for control backend implementations#24

Open
twischer-adit wants to merge 1 commit into
drobilla:mainfrom
twischer-adit:control_backend_interface
Open

Provide generic interface for control backend implementations#24
twischer-adit wants to merge 1 commit into
drobilla:mainfrom
twischer-adit:control_backend_interface

Conversation

@twischer-adit

Copy link
Copy Markdown

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?

Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
@drobilla

drobilla commented May 27, 2022

Copy link
Copy Markdown
Owner

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