diff options
Diffstat (limited to 'src/backend.h')
-rw-r--r-- | src/backend.h | 48 |
1 files changed, 37 insertions, 11 deletions
diff --git a/src/backend.h b/src/backend.h index 2965378..2f34c58 100644 --- a/src/backend.h +++ b/src/backend.h @@ -1,37 +1,63 @@ -// Copyright 2007-2022 David Robillard <d@drobilla.net> +// Copyright 2007-2024 David Robillard <d@drobilla.net> // SPDX-License-Identifier: ISC #ifndef JALV_BACKEND_H #define JALV_BACKEND_H #include "attributes.h" +#include "process.h" +#include "settings.h" #include "types.h" +#include "urids.h" +#include <zix/attributes.h> +#include <zix/sem.h> + +#include <stdbool.h> #include <stdint.h> +// Interface that must be implemented by audio/MIDI backends JALV_BEGIN_DECLS -// Interface that must be implemented by audio/MIDI backends +/// Allocate a new uninitialized backend +ZIX_MALLOC_FUNC JalvBackend* +jalv_backend_allocate(void); + +/// Free a backend allocated with jalv_backend_allocate() +void +jalv_backend_free(JalvBackend* backend); -/// Initialize the audio and MIDI systems -JalvBackend* -jalv_backend_init(Jalv* jalv); +/// Open the audio/MIDI system +int +jalv_backend_open(JalvBackend* backend, + const JalvURIDs* urids, + JalvSettings* settings, + JalvProcess* process, + ZixSem* done, + const char* name, + bool exact_name); + +/// Close the audio/MIDI system +void +jalv_backend_close(JalvBackend* backend); /// Activate the backend and start processing audio void -jalv_backend_activate(Jalv* jalv); +jalv_backend_activate(JalvBackend* backend); /// Deactivate the backend and stop processing audio void -jalv_backend_deactivate(Jalv* jalv); +jalv_backend_deactivate(JalvBackend* backend); -/// Close the backend +/// Expose a port to the system (if applicable) and connect it to its buffer void -jalv_backend_close(Jalv* jalv); +jalv_backend_activate_port(JalvBackend* backend, + JalvProcess* process, + uint32_t port_index); -/// Expose a port to the system (if applicable) and connect it to its buffer +/// Recompute latencies based on plugin port latencies if necessary void -jalv_backend_activate_port(Jalv* jalv, uint32_t port_index); +jalv_backend_recompute_latencies(JalvBackend* backend); JALV_END_DECLS |