| 
							- /*
 -  * Carla Bridge Client
 -  * Copyright (C) 2011-2013 Filipe Coelho <falktx@falktx.com>
 -  *
 -  * This program is free software; you can redistribute it and/or
 -  * modify it under the terms of the GNU General Public License as
 -  * published by the Free Software Foundation; either version 2 of
 -  * the License, or any later version.
 -  *
 -  * This program is distributed in the hope that it will be useful,
 -  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 -  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 -  * GNU General Public License for more details.
 -  *
 -  * For a full copy of the GNU General Public License see the doc/GPL.txt file.
 -  */
 - 
 - #include "CarlaBridgeClient.hpp"
 - 
 - #ifdef BUILD_BRIDGE_UI
 - # include "CarlaLibUtils.hpp"
 - #endif
 - 
 - CARLA_BRIDGE_START_NAMESPACE
 - 
 - #if 0
 - } // Fix editor indentation
 - #endif
 - 
 - // ---------------------------------------------------------------------
 - 
 - CarlaBridgeClient::CarlaBridgeClient(const char* const uiTitle)
 -     : fOsc(this),
 -       fOscData(fOsc.getControlData())
 - #ifdef BUILD_BRIDGE_UI
 -     , fUI(CarlaBridgeToolkit::createNew(this, uiTitle))
 - #endif
 - {
 - #ifdef BUILD_BRIDGE_UI
 -     CARLA_ASSERT(uiTitle != nullptr);
 - #endif
 -     carla_debug("CarlaBridgeClient::CarlaBridgeClient(\"%s\")", uiTitle);
 - }
 - 
 - CarlaBridgeClient::~CarlaBridgeClient()
 - {
 -     carla_debug("CarlaBridgeClient::~CarlaBridgeClient()");
 - }
 - 
 - #ifdef BUILD_BRIDGE_UI
 - // ---------------------------------------------------------------------
 - // ui initialization
 - 
 - bool CarlaBridgeClient::uiInit(const char* const, const char* const)
 - {
 -     carla_debug("CarlaBridgeClient::uiInit()");
 - 
 -     fUI.init();
 - 
 -     return true;
 - }
 - 
 - void CarlaBridgeClient::uiClose()
 - {
 -     carla_debug("CarlaBridgeClient::uiClose()");
 - 
 -     if (isOscControlRegistered() && ! fUI.quit)
 -         sendOscExiting();
 - 
 -     fUI.close();
 - }
 - 
 - // ---------------------------------------------------------------------
 - // ui toolkit
 - 
 - void CarlaBridgeClient::toolkitShow()
 - {
 -     CARLA_SAFE_ASSERT_RETURN(fUI.toolkit != nullptr,);
 -     carla_debug("CarlaBridgeClient::toolkitShow()");
 - 
 -     fUI.toolkit->show();
 - }
 - 
 - void CarlaBridgeClient::toolkitHide()
 - {
 -     CARLA_SAFE_ASSERT_RETURN(fUI.toolkit != nullptr,);
 -     carla_debug("CarlaBridgeClient::toolkitHide()");
 - 
 -     fUI.toolkit->hide();
 - }
 - 
 - void CarlaBridgeClient::toolkitResize(const int width, const int height)
 - {
 -     CARLA_SAFE_ASSERT_RETURN(fUI.toolkit != nullptr,);
 -     carla_debug("CarlaBridgeClient::toolkitResize(%i, %i)", width, height);
 - 
 -     fUI.toolkit->resize(width, height);
 - }
 - 
 - void CarlaBridgeClient::toolkitExec(const bool showGui)
 - {
 -     CARLA_SAFE_ASSERT_RETURN(fUI.toolkit != nullptr,);
 -     carla_debug("CarlaBridgeClient::toolkitExec(%s)", bool2str(showGui));
 - 
 -     fUI.toolkit->exec(showGui);
 - }
 - 
 - void CarlaBridgeClient::toolkitQuit()
 - {
 -     carla_debug("CarlaBridgeClient::toolkitQuit()");
 - 
 -     fUI.close();
 - }
 - #endif
 - 
 - // ---------------------------------------------------------------------
 - // osc stuff
 - 
 - void CarlaBridgeClient::oscInit(const char* const url)
 - {
 -     carla_debug("CarlaBridgeClient::oscInit(\"%s\")", url);
 - 
 -     fOsc.init(url);
 - }
 - 
 - bool CarlaBridgeClient::oscIdle() const
 - {
 -     fOsc.idle();
 - 
 - #ifdef BUILD_BRIDGE_UI
 -     return ! fUI.quit;
 - #else
 -     return true;
 - #endif
 - }
 - 
 - void CarlaBridgeClient::oscClose()
 - {
 -     carla_debug("CarlaBridgeClient::oscClose()");
 - 
 -     fOsc.close();
 - }
 - 
 - bool CarlaBridgeClient::isOscControlRegistered() const noexcept
 - {
 -     return fOsc.isControlRegistered();
 - }
 - 
 - void CarlaBridgeClient::sendOscUpdate() const
 - {
 -     carla_debug("CarlaBridgeClient::sendOscUpdate()");
 - 
 -     if (fOscData.target != nullptr)
 -         osc_send_update(fOscData, fOsc.getServerPath());
 - }
 - 
 - #ifdef BUILD_BRIDGE_PLUGIN
 - void CarlaBridgeClient::sendOscBridgeUpdate() const
 - {
 -     carla_debug("CarlaBridgeClient::sendOscBridgeUpdate()");
 - 
 -     if (fOscData.target != nullptr)
 -         osc_send_bridge_update(fOscData, fOscData.path);
 - }
 - 
 - void CarlaBridgeClient::sendOscBridgeError(const char* const error) const
 - {
 -     carla_debug("CarlaBridgeClient::sendOscBridgeError(\"%s\")", error);
 - 
 -     if (fOscData.target != nullptr)
 -         osc_send_bridge_error(fOscData, error);
 - }
 - #endif
 - 
 - // ---------------------------------------------------------------------
 - 
 - void CarlaBridgeClient::sendOscConfigure(const char* const key, const char* const value) const
 - {
 -     carla_debug("CarlaBridgeClient::sendOscConfigure(\"%s\", \"%s\")", key, value);
 - 
 -     if (fOscData.target != nullptr)
 -         osc_send_configure(fOscData, key, value);
 - }
 - 
 - void CarlaBridgeClient::sendOscControl(const int32_t index, const float value) const
 - {
 -     carla_debug("CarlaBridgeClient::sendOscControl(%i, %f)", index, value);
 - 
 -     if (fOscData.target != nullptr)
 -         osc_send_control(fOscData, index, value);
 - }
 - 
 - void CarlaBridgeClient::sendOscProgram(const int32_t index) const
 - {
 -     carla_debug("CarlaBridgeClient::sendOscProgram(%i)", index);
 - 
 -     if (fOscData.target != nullptr)
 -         osc_send_program(fOscData, index);
 - }
 - 
 - void CarlaBridgeClient::sendOscMidiProgram(const int32_t index) const
 - {
 -     carla_debug("CarlaBridgeClient::sendOscMidiProgram(%i)", index);
 - 
 -     if (fOscData.target != nullptr)
 -         osc_send_midi_program(fOscData, index);
 - }
 - 
 - void CarlaBridgeClient::sendOscMidi(const uint8_t midiBuf[4]) const
 - {
 -     carla_debug("CarlaBridgeClient::sendOscMidi(%p)", midiBuf);
 - 
 -     if (fOscData.target != nullptr)
 -         osc_send_midi(fOscData, midiBuf);
 - }
 - 
 - void CarlaBridgeClient::sendOscExiting() const
 - {
 -     carla_debug("CarlaBridgeClient::sendOscExiting()");
 - 
 -     if (fOscData.target != nullptr)
 -         osc_send_exiting(fOscData);
 - }
 - 
 - #ifdef BRIDGE_LV2
 - void CarlaBridgeClient::sendOscLv2AtomTransfer(const int32_t portIndex, const char* const atomBuf) const
 - {
 -     carla_debug("CarlaBridgeClient::sendOscLv2TransferAtom(%i, \"%s\")", portIndex, atomBuf);
 - 
 -     if (fOscData.target != nullptr)
 -         osc_send_lv2_atom_transfer(fOscData, portIndex, atomBuf);
 - }
 - 
 - void CarlaBridgeClient::sendOscLv2UridMap(const uint32_t urid, const char* const uri) const
 - {
 -     carla_debug("CarlaBridgeClient::sendOscLv2UridMap(%i, \"%s\")", urid, uri);
 - 
 -     if (fOscData.target != nullptr)
 -         osc_send_lv2_urid_map(fOscData, urid, uri);
 - }
 - #endif
 - 
 - // ---------------------------------------------------------------------
 - 
 - #ifdef BUILD_BRIDGE_UI
 - void* CarlaBridgeClient::getContainerId()
 - {
 -     carla_debug("CarlaBridgeClient::getContainerId()");
 -     return fUI.toolkit->getContainerId();
 - }
 - 
 - bool CarlaBridgeClient::uiLibOpen(const char* const filename)
 - {
 -     CARLA_ASSERT(fUI.lib == nullptr);
 -     CARLA_ASSERT(filename != nullptr);
 -     carla_debug("CarlaBridgeClient::uiLibOpen(\"%s\")", filename);
 - 
 -     fUI.lib      = lib_open(filename);
 -     fUI.filename = filename;
 - 
 -     return (fUI.lib != nullptr);
 - }
 - 
 - bool CarlaBridgeClient::uiLibClose()
 - {
 -     CARLA_SAFE_ASSERT_RETURN(fUI.lib != nullptr, false);
 -     carla_debug("CarlaBridgeClient::uiLibClose()");
 - 
 -     const bool closed = lib_close(fUI.lib);
 -     fUI.lib = nullptr;
 -     return closed;
 - }
 - 
 - void* CarlaBridgeClient::uiLibSymbol(const char* const symbol)
 - {
 -     CARLA_SAFE_ASSERT_RETURN(fUI.lib != nullptr, nullptr);
 -     carla_debug("CarlaBridgeClient::uiLibSymbol(\"%s\")", symbol);
 - 
 -     return lib_symbol(fUI.lib, symbol);
 - }
 - 
 - const char* CarlaBridgeClient::uiLibError()
 - {
 -     carla_debug("CarlaBridgeClient::uiLibError()");
 - 
 -     return lib_error(fUI.filename);
 - }
 - #endif
 - 
 - CARLA_BRIDGE_END_NAMESPACE
 
 
  |