fix: initialize Carla host in main.c and add terminal error checks
Co-authored-by: aider (deepseek/deepseek-coder) <aider@aider.chat>
This commit is contained in:
5
main.c
5
main.c
@@ -8,6 +8,7 @@
|
||||
#include "cli.h"
|
||||
#include "gui.h"
|
||||
#include "dispatcher.h"
|
||||
#include "carla.h"
|
||||
|
||||
static Engine engine;
|
||||
static volatile int keep_running = 1;
|
||||
@@ -87,6 +88,10 @@ int main(int argc, char *argv[]) {
|
||||
initial_state.clips[i].read_position = 0;
|
||||
}
|
||||
|
||||
// Initialize Carla host in the initial state (before dispatcher starts)
|
||||
carla_init(&initial_state.carla_host, NULL);
|
||||
carla_scan_plugins(&initial_state.carla_host);
|
||||
|
||||
// Initialize dispatcher
|
||||
dispatch = dispatcher_init(&initial_state);
|
||||
|
||||
|
||||
21
tui.c
21
tui.c
@@ -815,15 +815,27 @@ void tui_init(Engine *engine) {
|
||||
g_dispatch = engine->dispatch;
|
||||
|
||||
initscr();
|
||||
if (!has_colors()) {
|
||||
endwin();
|
||||
fprintf(stderr, "Terminal does not support colors\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
cbreak();
|
||||
noecho();
|
||||
keypad(stdscr, TRUE);
|
||||
curs_set(0);
|
||||
|
||||
// Check terminal size
|
||||
if (LINES < 20 || COLS < 40) {
|
||||
endwin();
|
||||
fprintf(stderr, "Terminal too small (need at least 20x40)\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
mousemask(BUTTON1_CLICKED | BUTTON3_CLICKED | BUTTON2_CLICKED | BUTTON1_DOUBLE_CLICKED, NULL);
|
||||
mouseinterval(10);
|
||||
|
||||
if (has_colors()) {
|
||||
start_color();
|
||||
init_pair(COLOR_EMPTY, COLOR_WHITE, COLOR_BLACK);
|
||||
init_pair(COLOR_RECORDING, COLOR_RED, COLOR_BLACK);
|
||||
@@ -832,7 +844,6 @@ void tui_init(Engine *engine) {
|
||||
init_pair(COLOR_SELECTED, COLOR_BLACK, COLOR_CYAN);
|
||||
init_pair(COLOR_HELP, COLOR_CYAN, COLOR_BLACK);
|
||||
}
|
||||
}
|
||||
|
||||
void tui_run(Engine *engine) {
|
||||
if (!engine) return;
|
||||
@@ -844,11 +855,7 @@ void tui_run(Engine *engine) {
|
||||
marks[i] = -1;
|
||||
}
|
||||
|
||||
// Initialize Carla
|
||||
AppState init_state = dispatcher_get_state();
|
||||
carla_init(&init_state.carla_host, engine->client);
|
||||
carla_scan_plugins(&init_state.carla_host);
|
||||
|
||||
// Carla is now initialized in main.c before dispatcher starts
|
||||
draw_grid();
|
||||
|
||||
while (1) {
|
||||
|
||||
Reference in New Issue
Block a user