aboutsummaryrefslogtreecommitdiffstats
path: root/src/backend.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend.h')
-rw-r--r--src/backend.h48
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