New directory tree, with preprocessor/ inside interpretor/.
[Faustine.git] / interpretor / faust-0.9.47mr3 / architecture / osclib / faust / src / OSCControler.cpp
diff --git a/interpretor/faust-0.9.47mr3/architecture/osclib/faust/src/OSCControler.cpp b/interpretor/faust-0.9.47mr3/architecture/osclib/faust/src/OSCControler.cpp
deleted file mode 100644 (file)
index 0f35673..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
-
-  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
-
-*/
-
-#include <stdlib.h>
-#include <iostream>
-
-#include "OSCControler.h"
-#include "FaustFactory.h"
-#include "OSCSetup.h"
-#include "OSCFError.h"
-#include "RootNode.h"
-#include "OSCIO.h"
-
-using namespace std;
-
-namespace oscfaust
-{
-
-#define kVersion        0.91f
-#define kVersionStr    "0.91"
-
-static const char* kUDPPortOpt = "-port";
-static const char* kUDPOutOpt  = "-outport";
-static const char* kUDPErrOpt  = "-errport";
-static const char* kUDPDestOpt = "-dest";
-
-//--------------------------------------------------------------------------
-// utilities for command line arguments 
-//--------------------------------------------------------------------------
-static int getPortOption (int argc, char *argv[], const std::string& option, int defaultValue)
-{
-       for (int i=0; i < argc-1; i++) {
-               if (option == argv[i]) {
-                       int val = strtol( argv[i+1], 0, 10);
-                       if (val) return val;
-               }
-       }
-       return defaultValue;
-}
-
-static const char* getDestOption (int argc, char *argv[], const std::string& option, const char* defaultValue)
-{
-       for (int i=0; i < argc-1; i++) {
-               if (option == argv[i])
-                       return argv[i+1];
-       }
-       return defaultValue;
-}
-
-
-//--------------------------------------------------------------------------
-OSCControler::OSCControler (int argc, char *argv[], OSCIO* io)
-       : fUDPPort(kUDPBasePort), fUDPOut(kUDPBasePort+1), fUPDErr(kUDPBasePort+2), fIO(io)
-{
-       fUDPPort = getPortOption (argc, argv, kUDPPortOpt, fUDPPort);
-       fUDPOut  = getPortOption (argc, argv, kUDPOutOpt, fUDPOut);
-       fUPDErr  = getPortOption (argc, argv, kUDPErrOpt, fUPDErr);
-       fDestAddress = getDestOption (argc, argv, kUDPDestOpt, "localhost");
-
-       fFactory = new FaustFactory(io);
-       fOsc = new OSCSetup();
-}
-
-OSCControler::~OSCControler ()
-{ 
-       quit(); 
-       delete fFactory;
-       delete fOsc;
-}
-
-//--------------------------------------------------------------------------
-float OSCControler::version()                          { return kVersion; }
-const char* OSCControler::versionstr()         { return kVersionStr; }
-
-//--------------------------------------------------------------------------
-// Add a node in the current group (top of the group stack)
-void OSCControler::addnode (const char* label, float* zone, float init, float min, float max)
-{
-       fFactory->addnode (label, zone, init, min, max);
-}
-
-//--------------------------------------------------------------------------
-// Add a node using its fullpath from the root instead of the current group
-// This method is used for alias messages. The arguments imin and imax allow
-// to map incomming values from the alias input range to the actual range 
-void OSCControler::addfullpathnode (const string& fullpath, float* zone, float imin, float imax, float init, float min, float max)
-{
-       fFactory->addfullpathnode (fullpath, zone, imin, imax, init, min, max);
-}
-
-
-//--------------------------------------------------------------------------
-void OSCControler::opengroup (const char* label)
-{
-       fFactory->opengroup (label);
-}
-
-//--------------------------------------------------------------------------
-void OSCControler::closegroup ()
-{
-       fFactory->closegroup ();
-}
-
-//--------------------------------------------------------------------------
-static std::string quote (const char* str)     { 
-       std::string outstr ( str );
-       outstr.insert (0, 1, '\'');
-       outstr += '\''; 
-       return outstr;
-}
-
-//--------------------------------------------------------------------------
-// start the network services
-void OSCControler::run ()
-{
-       SMessageDriven root = fFactory->root();         // first get the root node
-       if (root) {
-               // and cast it to a RootNode
-               RootNode * rootnode = dynamic_cast<RootNode*> ((MessageDriven*)root);
-               // informs the root node of the udp ports numbers (required to handle the 'hello' message
-               if (rootnode) rootnode->setPorts (&fUDPPort, &fUDPOut, &fUPDErr);
-               // starts the network services
-               fOsc->start (root, fUDPPort, fUDPOut, fUPDErr, getDesAddress());
-
-               // and outputs a message on the osc output port
-               oscout << OSCStart("Faust OSC version") << versionstr() << "-"
-                               << quote(root->getName()).c_str() << "is running on UDP ports "
-                               <<  fUDPPort << fUDPOut << fUPDErr;
-               if (fIO) oscout << " using OSC IO - in chans: " << fIO->numInputs() << " out chans: " << fIO->numOutputs();
-               oscout << OSCEnd();
-
-               // that should not occur unless a derivative changes the root node type
-               if (!rootnode) OSCFErr << root->getName() << ": is not a root node, 'hello' message won't be supported" << OSCFEndl;
-       }
-}
-
-//--------------------------------------------------------------------------
-const char*    OSCControler::getRootName()     { return fFactory->root()->getName(); }
-
-//--------------------------------------------------------------------------
-void OSCControler::quit ()
-{
-       fOsc->stop();
-}
-
-}