|
-
- #include "CarlaHost.h"
-
- #include <dlfcn.h>
- #include <signal.h>
- #include <stdbool.h>
- #include <stdio.h>
- #include <unistd.h>
-
- // --------------------------------------------------------------------------------------------------------
-
- static volatile bool term = false;
-
- static void signalHandler(int sig)
- {
- switch (sig)
- {
- case SIGINT:
- case SIGTERM:
- term = true;
- break;
- }
- }
-
- // --------------------------------------------------------------------------------------------------------
-
- typedef bool (*carla_engine_init_func)(const char* driverName, const char* clientName);
- typedef void (*carla_engine_idle_func)(void);
- typedef bool (*carla_is_engine_running_func)(void);
- typedef bool (*carla_engine_close_func)(void);
- typedef bool (*carla_add_plugin_func)(BinaryType btype, PluginType ptype,
- const char* filename, const char* name, const char* label, int64_t uniqueId,
- const void* extraPtr, uint options);
- typedef const char* (*carla_get_last_error_func)(void);
-
- int main(void)
- {
- void* lib = dlopen("/home/falktx/FOSS/GIT-mine/falkTX/Carla/bin/libcarla_standalone2.so", RTLD_NOW|RTLD_GLOBAL);
-
- if (!lib)
- {
- printf("Failed to load carla lib\n");
- return 1;
- }
-
- const carla_engine_init_func carla_engine_init = dlsym(lib, "carla_engine_init");
- const carla_engine_idle_func carla_engine_idle = dlsym(lib, "carla_engine_idle");
- const carla_is_engine_running_func carla_is_engine_running = dlsym(lib, "carla_is_engine_running");
- const carla_engine_close_func carla_engine_close = dlsym(lib, "carla_engine_close");
- const carla_add_plugin_func carla_add_plugin = dlsym(lib, "carla_add_plugin");
- const carla_get_last_error_func carla_get_last_error = dlsym(lib, "carla_get_last_error");
-
- if (! carla_engine_init("JACK", "Carla-uhe-test"))
- {
- printf("Engine failed to initialize, possible reasons:\n%s\n", carla_get_last_error());
- return 1;
- }
-
- if (! carla_add_plugin(BINARY_NATIVE, PLUGIN_VST2, "/home/falktx/.vst/u-he/ACE.64.so", "", "", 0, NULL, 0))
- {
- printf("Failed to load plugin, possible reasons:\n%s\n", carla_get_last_error());
- carla_engine_close();
- return 1;
- }
-
- signal(SIGINT, signalHandler);
- signal(SIGTERM, signalHandler);
-
- while (carla_is_engine_running() && ! term)
- {
- carla_engine_idle();
- sleep(1);
- }
-
- carla_engine_close();
-
- return 0;
- }
-
- // --------------------------------------------------------------------------------------------------------
|