+++ /dev/null
-/*
-
- Faust Project
-
- Copyright (C) 2011 Grame
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
- Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France
- research@grame.fr
-
-*/
-
-#ifndef __OSCControler__
-#define __OSCControler__
-
-#include <string>
-
-namespace oscfaust
-{
-
-class OSCIO;
-class OSCSetup;
-class FaustFactory;
-
-//--------------------------------------------------------------------------
-/*!
- \brief the main Faust OSC Lib API
-
- The OSCControler is essentially a glue between the memory representation (in charge of the FaustFactory),
- and the network services (in charge of OSCSetup).
-*/
-class OSCControler
-{
- int fUDPPort, fUDPOut, fUPDErr; // the udp ports numbers
- std::string fDestAddress; // the osc messages destination address
- FaustFactory * fFactory; // a factory to build the memory represetnatin
- OSCSetup* fOsc; // the network manager (handles the udp sockets)
- OSCIO* fIO; // hack for OSC IO support (actually only relayed to the factory)
-
- public:
- /*
- base udp port is chosen in an unassigned range from IANA PORT NUMBERS (last updated 2011-01-24)
- see at http://www.iana.org/assignments/port-numbers
- 5507-5552 Unassigned
- */
- enum { kUDPBasePort = 5510};
-
- OSCControler (int argc, char *argv[], OSCIO* io=0);
- virtual ~OSCControler ();
-
- //--------------------------------------------------------------------------
- // addnode, opengroup and closegroup are simply relayed to the factory
- //--------------------------------------------------------------------------
- void addnode (const char* label, float* zone, float init, float min, float max);
- void addfullpathnode (const std::string& fullpath, float* zone, float imin, float imax, float init, float min, float max);
- void opengroup (const char* label);
- void closegroup ();
-
- //--------------------------------------------------------------------------
- void run (); // starts the network services
- void quit (); // stop the network services
-
- int getUDPPort() { return fUDPPort; }
- int getUDPOut() { return fUDPOut; }
- int getUDPErr() { return fUPDErr; }
- const char* getDesAddress() { return fDestAddress.c_str(); }
- const char* getRootName(); // probably useless, introduced for UI extension experiments
-
- static float version(); // the Faust OSC library version number
- static const char* versionstr(); // the Faust OSC library version number as a string
-};
-
-}
-
-#endif