| @@ -255,7 +255,7 @@ | |||
| <item row="0" column="0"> | |||
| <widget class="QLabel" name="label_2"> | |||
| <property name="text"> | |||
| <string>Host URL:</string> | |||
| <string>Host URLs:</string> | |||
| </property> | |||
| <property name="alignment"> | |||
| <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> | |||
| @@ -263,13 +263,16 @@ | |||
| </widget> | |||
| </item> | |||
| <item row="0" column="1"> | |||
| <widget class="QLineEdit" name="le_osc_url"> | |||
| <widget class="QLineEdit" name="le_osc_url_tcp"> | |||
| <property name="frame"> | |||
| <bool>false</bool> | |||
| </property> | |||
| <property name="readOnly"> | |||
| <bool>true</bool> | |||
| </property> | |||
| </widget> | |||
| </item> | |||
| <item row="1" column="0"> | |||
| <item row="3" column="0"> | |||
| <widget class="QLabel" name="label_7"> | |||
| <property name="text"> | |||
| <string>Valid commands:</string> | |||
| @@ -279,7 +282,7 @@ | |||
| </property> | |||
| </widget> | |||
| </item> | |||
| <item row="1" column="1"> | |||
| <item row="3" column="1"> | |||
| <widget class="QLabel" name="l_osc_cmds"> | |||
| <property name="font"> | |||
| <font> | |||
| @@ -294,7 +297,7 @@ | |||
| </property> | |||
| </widget> | |||
| </item> | |||
| <item row="2" column="0"> | |||
| <item row="4" column="0"> | |||
| <widget class="QLabel" name="label"> | |||
| <property name="text"> | |||
| <string>Example:</string> | |||
| @@ -304,7 +307,7 @@ | |||
| </property> | |||
| </widget> | |||
| </item> | |||
| <item row="2" column="1"> | |||
| <item row="4" column="1"> | |||
| <widget class="QLabel" name="l_example"> | |||
| <property name="font"> | |||
| <font> | |||
| @@ -316,7 +319,7 @@ | |||
| </property> | |||
| </widget> | |||
| </item> | |||
| <item row="3" column="1"> | |||
| <item row="5" column="1"> | |||
| <widget class="QLabel" name="l_example_help"> | |||
| <property name="text"> | |||
| <string>TextLabel</string> | |||
| @@ -326,7 +329,7 @@ | |||
| </property> | |||
| </widget> | |||
| </item> | |||
| <item row="4" column="0" colspan="2"> | |||
| <item row="6" column="0" colspan="2"> | |||
| <spacer name="verticalSpacer_2"> | |||
| <property name="orientation"> | |||
| <enum>Qt::Vertical</enum> | |||
| @@ -339,6 +342,32 @@ | |||
| </property> | |||
| </spacer> | |||
| </item> | |||
| <item row="1" column="1"> | |||
| <widget class="QLineEdit" name="le_osc_url_udp"> | |||
| <property name="frame"> | |||
| <bool>false</bool> | |||
| </property> | |||
| <property name="readOnly"> | |||
| <bool>true</bool> | |||
| </property> | |||
| </widget> | |||
| </item> | |||
| <item row="2" column="0" colspan="2"> | |||
| <spacer name="verticalSpacer_5"> | |||
| <property name="orientation"> | |||
| <enum>Qt::Vertical</enum> | |||
| </property> | |||
| <property name="sizeType"> | |||
| <enum>QSizePolicy::Fixed</enum> | |||
| </property> | |||
| <property name="sizeHint" stdset="0"> | |||
| <size> | |||
| <width>20</width> | |||
| <height>5</height> | |||
| </size> | |||
| </property> | |||
| </spacer> | |||
| </item> | |||
| </layout> | |||
| </widget> | |||
| </widget> | |||
| @@ -680,9 +680,14 @@ CARLA_EXPORT double carla_get_sample_rate(); | |||
| CARLA_EXPORT const char* carla_get_last_error(); | |||
| /*! | |||
| * Get the current engine OSC URL. | |||
| * Get the current engine OSC URL (TCP). | |||
| */ | |||
| CARLA_EXPORT const char* carla_get_host_osc_url(); | |||
| CARLA_EXPORT const char* carla_get_host_osc_url_tcp(); | |||
| /*! | |||
| * Get the current engine OSC URL (UDP). | |||
| */ | |||
| CARLA_EXPORT const char* carla_get_host_osc_url_udp(); | |||
| /*! | |||
| * Send NSM announce message. | |||
| @@ -2085,9 +2085,9 @@ const char* carla_get_last_error() | |||
| return standalone.lastError; | |||
| } | |||
| const char* carla_get_host_osc_url() | |||
| const char* carla_get_host_osc_url_tcp() | |||
| { | |||
| carla_debug("carla_get_host_osc_url()"); | |||
| carla_debug("carla_get_host_osc_url_tcp()"); | |||
| CARLA_ASSERT(standalone.engine != nullptr); | |||
| if (standalone.engine == nullptr) | |||
| @@ -2099,6 +2099,20 @@ const char* carla_get_host_osc_url() | |||
| return standalone.engine->getOscServerPathTCP(); | |||
| } | |||
| const char* carla_get_host_osc_url_udp() | |||
| { | |||
| carla_debug("carla_get_host_osc_url_udp()"); | |||
| CARLA_ASSERT(standalone.engine != nullptr); | |||
| if (standalone.engine == nullptr) | |||
| { | |||
| standalone.lastError = "Engine is not started"; | |||
| return nullptr; | |||
| } | |||
| return standalone.engine->getOscServerPathUDP(); | |||
| } | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| #define NSM_API_VERSION_MAJOR 1 | |||
| @@ -630,8 +630,11 @@ class Host(object): | |||
| self.lib.carla_get_last_error.argtypes = None | |||
| self.lib.carla_get_last_error.restype = c_char_p | |||
| self.lib.carla_get_host_osc_url.argtypes = None | |||
| self.lib.carla_get_host_osc_url.restype = c_char_p | |||
| self.lib.carla_get_host_osc_url_tcp.argtypes = None | |||
| self.lib.carla_get_host_osc_url_tcp.restype = c_char_p | |||
| self.lib.carla_get_host_osc_url_udp.argtypes = None | |||
| self.lib.carla_get_host_osc_url_udp.restype = c_char_p | |||
| self.lib.carla_nsm_announce.argtypes = [c_char_p, c_char_p, c_int] | |||
| self.lib.carla_nsm_announce.restype = None | |||
| @@ -880,8 +883,11 @@ class Host(object): | |||
| def get_last_error(self): | |||
| return self.lib.carla_get_last_error() | |||
| def get_host_osc_url(self): | |||
| return self.lib.carla_get_host_osc_url() | |||
| def get_host_osc_url_tcp(self): | |||
| return self.lib.carla_get_host_osc_url_tcp() | |||
| def get_host_osc_url_udp(self): | |||
| return self.lib.carla_get_host_osc_url_udp() | |||
| def get_buffer_size(self): | |||
| return self.lib.carla_get_buffer_size() | |||
| @@ -24,6 +24,7 @@ from PyQt4.QtGui import QApplication, QInputDialog, QMainWindow | |||
| from liblo import make_method, Address, ServerError, ServerThread | |||
| from liblo import send as lo_send | |||
| from liblo import TCP as LO_TCP | |||
| from liblo import UDP as LO_UDP | |||
| # ------------------------------------------------------------------------------------------------------------ | |||
| # Imports (Custom) | |||
| @@ -480,8 +481,8 @@ class Host(object): | |||
| # OSC Control server | |||
| class ControlServer(ServerThread): | |||
| def __init__(self, parent): | |||
| ServerThread.__init__(self, 8087, LO_TCP) | |||
| def __init__(self, parent, mode): | |||
| ServerThread.__init__(self, 8087, mode) | |||
| self.fParent = parent | |||
| @@ -730,7 +731,7 @@ class CarlaControlW(QMainWindow): | |||
| print("Connecting to \"%s\" as '%s'..." % (self.lo_address, lo_targetName)) | |||
| try: | |||
| self.lo_server = ControlServer(self) | |||
| self.lo_server = ControlServer(self, LO_UDP if self.lo_address.startswith("osc.udp") else LO_TCP) | |||
| except: # ServerError, err: | |||
| print("Connecting error!") | |||
| #print str(err) | |||
| @@ -829,7 +829,13 @@ class CarlaAboutW(QDialog): | |||
| else: | |||
| self.ui.l_extended.setText(cString(Carla.host.get_extended_license_text())) | |||
| self.ui.le_osc_url.setText(cString(Carla.host.get_host_osc_url()) if Carla.host.is_engine_running() else self.tr("(Engine not running)")) | |||
| if Carla.host.is_engine_running(): | |||
| self.ui.le_osc_url_tcp.setText(cString(Carla.host.get_host_osc_url_tcp())) | |||
| self.ui.le_osc_url_udp.setText(cString(Carla.host.get_host_osc_url_udp())) | |||
| else: | |||
| self.ui.le_osc_url_tcp.setText(self.tr("(Engine not running)")) | |||
| self.ui.le_osc_url_udp.setText(self.tr("(Engine not running)")) | |||
| self.ui.l_osc_cmds.setText("" | |||
| " /set_active <i-value>\n" | |||