#!/usr/bin/env python3 # -*- coding: utf-8 -*- # -------------------------------------------------------------------------------------------------------- from carla_backend import * from signal import signal, SIGINT, SIGTERM from time import sleep from sys import exit # -------------------------------------------------------------------------------------------------------- class CarlaObject(object): __slots__ = [ 'term' ] gCarla = CarlaObject() gCarla.term = False def signalHandler(sig, frame): if sig in (SIGINT, SIGTERM): gCarla.term = True # -------------------------------------------------------------------------------------------------------- binaryDir = "/home/falktx/Personal/GIT-mine/falkTX/Carla/bin" host = CarlaHostDLL("/home/falktx/Personal/GIT-mine/falkTX/Carla/bin/libcarla_standalone2.so", True) host.set_engine_option(ENGINE_OPTION_PATH_BINARIES, 0, binaryDir) host.set_engine_option(ENGINE_OPTION_PROCESS_MODE, 2, "") host.set_engine_option(ENGINE_OPTION_TRANSPORT_MODE, 0, "") if not host.engine_init("PulseAudio", "Carla-Plugin-JACK"): print("Engine failed to initialize, possible reasons:\n%s" % host.get_last_error()) exit(1) fname = "pulseaudio --high-priority --realtime --exit-idle-time=-1 --file=/usr/share/cadence/pulse2jack/play.pa -n" label = "" fname = "/usr/bin/patchage" label = "" fname = "/usr/bin/carla" label = "" if not host.add_plugin(BINARY_NATIVE, PLUGIN_JACK, fname, "", label, 0, None, 0): print("Failed to load plugin, possible reasons:\n%s" % host.get_last_error()) host.engine_close() exit(1) signal(SIGINT, signalHandler) signal(SIGTERM, signalHandler) while host.is_engine_running() and not gCarla.term: host.engine_idle() sleep(0.5) if not gCarla.term: print("Engine closed abruptely") if not host.engine_close(): print("Engine failed to close, possible reasons:\n%s" % host.get_last_error()) exit(1) # --------------------------------------------------------------------------------------------------------