X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fsurfaces%2Fosc%2Finterface.cc;h=d26a31788e877144c9b84baf21d348a8d10b6325;hb=cb965cba1648f92654a991a91e211821335b37bb;hp=3ec5a6571f95d0c0f5f3618e3ddda33bb4d90d67;hpb=60fbeedb5f819b42fdca1f8175319aa2a9bca4c1;p=ardour.git diff --git a/libs/surfaces/osc/interface.cc b/libs/surfaces/osc/interface.cc index 3ec5a6571f..d26a31788e 100644 --- a/libs/surfaces/osc/interface.cc +++ b/libs/surfaces/osc/interface.cc @@ -1,44 +1,62 @@ -#include - -#include "osc_server.h" +/* + * Copyright (C) 2009 Paul Davis + * + * 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 + * (at your option) 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * */ + +#include "ardour/rc_configuration.h" +#include "control_protocol/control_protocol.h" +#include "osc.h" using namespace ARDOUR; +using namespace ArdourSurface; -ControlProtocol* -new_osc_protocol (ControlProtocolDescriptor* descriptor, Session* s) +static ControlProtocol* +new_osc_protocol (ControlProtocolDescriptor* /*descriptor*/, Session* s) { - ControlOSC* osc = new ControlOSC (*s, 3891); + OSC* osc = new OSC (*s, Config->get_osc_port()); - if (osc->set_active (true)) { - delete osc; - return 0; - } + osc->set_active (true); return osc; - } -void -delete_osc_protocol (ControlProtocolDescriptor* descriptor, ControlProtocol* cp) +static void +delete_osc_protocol (ControlProtocolDescriptor* /*descriptor*/, ControlProtocol* cp) { delete cp; } -static ControlProtocolDescriptor osc_descriptor = { - name : "OSC", - id : "uri://ardour.org/surfaces/osc:0", - ptr : 0, - module : 0, - initialize : new_osc_protocol, - destroy : delete_osc_protocol +static bool +probe_osc_protocol (ControlProtocolDescriptor* /*descriptor*/) +{ + return true; // we can always do OSC +} +static ControlProtocolDescriptor osc_descriptor = { + /*name : */ "Open Sound Control (OSC)", + /*id : */ "uri://ardour.org/surfaces/osc:0", + /*ptr : */ 0, + /*module : */ 0, + /*mandatory : */ 0, + /*supports_feedback : */ true, + /*probe : */ probe_osc_protocol, + /*initialize : */ new_osc_protocol, + /*destroy : */ delete_osc_protocol }; - -extern "C" { -ControlProtocolDescriptor* -protocol_descriptor () { - return &osc_descriptor; -} -} +extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &osc_descriptor; }