aboutsummaryrefslogtreecommitdiffstats
path: root/src/settings.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2024-11-21 14:08:02 -0500
committerDavid Robillard <d@drobilla.net>2024-11-24 19:11:44 -0500
commit2a5bc1ca7aee36cd763ac10c894b84eef347fe25 (patch)
treeb145b86c8f98fb6d7adab34f69c1bcb0114e34fa /src/settings.h
parent724aab7a868ed0200afbeecf056e53b5ea16b23d (diff)
downloadjalv-2a5bc1ca7aee36cd763ac10c894b84eef347fe25.tar.gz
jalv-2a5bc1ca7aee36cd763ac10c894b84eef347fe25.tar.bz2
jalv-2a5bc1ca7aee36cd763ac10c894b84eef347fe25.zip
Factor out "settings" that affect the execution process
Diffstat (limited to 'src/settings.h')
-rw-r--r--src/settings.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/settings.h b/src/settings.h
new file mode 100644
index 0000000..0cb548e
--- /dev/null
+++ b/src/settings.h
@@ -0,0 +1,27 @@
+// Copyright 2018-2024 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
+
+#ifndef JALV_SETTINGS_H
+#define JALV_SETTINGS_H
+
+#include "attributes.h"
+
+#include <stddef.h>
+#include <stdint.h>
+
+// Process thread settings
+JALV_BEGIN_DECLS
+
+/// System and/or configuration settings for the execution process
+typedef struct {
+ float sample_rate; ///< Sample rate
+ uint32_t block_length; ///< Audio buffer length in frames
+ size_t midi_buf_size; ///< MIDI buffer size in bytes
+ uint32_t ring_size; ///< Communication ring size in bytes
+ float ui_update_hz; ///< Frequency of UI updates
+ float ui_scale_factor; ///< UI scale factor
+} JalvSettings;
+
+JALV_END_DECLS
+
+#endif // JALV_SETTINGS_H