1#!/usr/local/bin/python3.8 2# -*- coding: utf-8 -*- 3 4# Carla Backend code (Qt stuff) 5# Copyright (C) 2011-2020 Filipe Coelho <falktx@falktx.com> 6# 7# This program is free software; you can redistribute it and/or 8# modify it under the terms of the GNU General Public License as 9# published by the Free Software Foundation; either version 2 of 10# the License, or any later version. 11# 12# This program is distributed in the hope that it will be useful, 13# but WITHOUT ANY WARRANTY; without even the implied warranty of 14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15# GNU General Public License for more details. 16# 17# For a full copy of the GNU General Public License see the doc/GPL.txt file. 18 19# ------------------------------------------------------------------------------------------------------------ 20# Imports (Global) 21 22from PyQt5.QtCore import pyqtSignal, QObject 23 24# ------------------------------------------------------------------------------------------------------------ 25# Imports (Custom) 26 27from carla_backend import CarlaHostNull, CarlaHostDLL, CarlaHostPlugin 28 29# ------------------------------------------------------------------------------------------------------------ 30# Carla Host PyQt signals 31 32class CarlaHostSignals(QObject): 33 # signals 34 DebugCallback = pyqtSignal(int, int, int, int, float, str) 35 PluginAddedCallback = pyqtSignal(int, str) 36 PluginRemovedCallback = pyqtSignal(int) 37 PluginRenamedCallback = pyqtSignal(int, str) 38 PluginUnavailableCallback = pyqtSignal(int, str) 39 ParameterValueChangedCallback = pyqtSignal(int, int, float) 40 ParameterDefaultChangedCallback = pyqtSignal(int, int, float) 41 ParameterMappedControlIndexChangedCallback = pyqtSignal(int, int, int) 42 ParameterMappedRangeChangedCallback = pyqtSignal(int, int, float, float) 43 ParameterMidiChannelChangedCallback = pyqtSignal(int, int, int) 44 ProgramChangedCallback = pyqtSignal(int, int) 45 MidiProgramChangedCallback = pyqtSignal(int, int) 46 OptionChangedCallback = pyqtSignal(int, int, bool) 47 UiStateChangedCallback = pyqtSignal(int, int) 48 NoteOnCallback = pyqtSignal(int, int, int, int) 49 NoteOffCallback = pyqtSignal(int, int, int) 50 UpdateCallback = pyqtSignal(int) 51 ReloadInfoCallback = pyqtSignal(int) 52 ReloadParametersCallback = pyqtSignal(int) 53 ReloadProgramsCallback = pyqtSignal(int) 54 ReloadAllCallback = pyqtSignal(int) 55 PatchbayClientAddedCallback = pyqtSignal(int, int, int, str) 56 PatchbayClientRemovedCallback = pyqtSignal(int) 57 PatchbayClientRenamedCallback = pyqtSignal(int, str) 58 PatchbayClientDataChangedCallback = pyqtSignal(int, int, int) 59 PatchbayClientPositionChangedCallback = pyqtSignal(int, int, int, int, int) 60 PatchbayPortAddedCallback = pyqtSignal(int, int, int, int, str) 61 PatchbayPortRemovedCallback = pyqtSignal(int, int) 62 PatchbayPortChangedCallback = pyqtSignal(int, int, int, int, str) 63 PatchbayPortGroupAddedCallback = pyqtSignal(int, int, int, str) 64 PatchbayPortGroupRemovedCallback = pyqtSignal(int, int) 65 PatchbayPortGroupChangedCallback = pyqtSignal(int, int, int, str) 66 PatchbayConnectionAddedCallback = pyqtSignal(int, int, int, int, int) 67 PatchbayConnectionRemovedCallback = pyqtSignal(int, int, int) 68 EngineStartedCallback = pyqtSignal(int, int, int, int, float, str) 69 EngineStoppedCallback = pyqtSignal() 70 ProcessModeChangedCallback = pyqtSignal(int) 71 TransportModeChangedCallback = pyqtSignal(int, str) 72 BufferSizeChangedCallback = pyqtSignal(int) 73 SampleRateChangedCallback = pyqtSignal(float) 74 CancelableActionCallback = pyqtSignal(int, bool, str) 75 ProjectLoadFinishedCallback = pyqtSignal() 76 NSMCallback = pyqtSignal(int, int, str) 77 InfoCallback = pyqtSignal(str) 78 ErrorCallback = pyqtSignal(str) 79 QuitCallback = pyqtSignal() 80 InlineDisplayRedrawCallback = pyqtSignal(int) 81 82# ------------------------------------------------------------------------------------------------------------ 83# Carla Host object (dummy/null, does nothing) 84 85class CarlaHostQtNull(CarlaHostNull, CarlaHostSignals): 86 def __init__(self): 87 CarlaHostSignals.__init__(self) 88 CarlaHostNull.__init__(self) 89 90# ------------------------------------------------------------------------------------------------------------ 91# Carla Host object using a DLL 92 93class CarlaHostQtDLL(CarlaHostDLL, CarlaHostSignals): 94 def __init__(self, libName, loadGlobal): 95 CarlaHostSignals.__init__(self) 96 CarlaHostDLL.__init__(self, libName, loadGlobal) 97 98# ------------------------------------------------------------------------------------------------------------ 99# Carla Host object for plugins (using pipes) 100 101# pylint: disable=abstract-method 102class CarlaHostQtPlugin(CarlaHostPlugin, CarlaHostSignals): 103 def __init__(self): 104 CarlaHostSignals.__init__(self) 105 CarlaHostPlugin.__init__(self) 106 107# pylint: enable=abstract-method 108# ------------------------------------------------------------------------------------------------------------ 109