feat: integrate Carla plugin host with rack view, fuzzy search, and volume control

Co-authored-by: aider (deepseek/deepseek-coder) <aider@aider.chat>
This commit is contained in:
Loic Coenen
2026-05-02 21:29:56 +00:00
parent fd00d51ff7
commit 6bd2e762cb
7 changed files with 932 additions and 5 deletions

View File

@@ -6,6 +6,7 @@
#include <stdatomic.h>
#include <jack/jack.h>
#include <pthread.h>
#include "carla.h"
// ============================================================
// Application State - contains ALL application state
@@ -82,6 +83,9 @@ typedef struct {
size_t prev_read_positions[MAX_UNDO_HISTORY];
} undo;
// Carla host
CarlaHost carla_host;
// JACK info (needed by audio thread)
jack_nframes_t sample_rate;
bool running;
@@ -110,6 +114,11 @@ typedef enum {
ACTION_LOAD_CLIP,
ACTION_MIDI_NOTE_ON,
ACTION_MIDI_SCENE_LAUNCH,
ACTION_RACK_ADD_PLUGIN,
ACTION_RACK_REMOVE_PLUGIN,
ACTION_RACK_SET_PARAMETER,
ACTION_RACK_SET_VOLUME,
ACTION_RACK_BYPASS,
ACTION_PROCESS_AUDIO,
ACTION_QUIT
} ActionType;
@@ -128,6 +137,11 @@ typedef struct {
struct { int clip_index; char filename[256]; } load_clip;
struct { int note; int velocity; int channel; jack_nframes_t time; } midi_note_on;
struct { int scene_index; jack_nframes_t time; } midi_scene_launch;
struct { int channel; char uri[512]; PluginType type; } rack_add_plugin;
struct { int channel; int plugin_index; } rack_remove_plugin;
struct { int channel; int plugin_index; int param_index; float value; } rack_set_parameter;
struct { int channel; float volume; } rack_set_volume;
struct { int channel; bool bypass; } rack_bypass;
struct { jack_nframes_t nframes; } process_audio;
} data;
} Action;