Janis Streib
25.01.22 d6f0ba3d592d52580d0b8e2829d1c3d2d88d831c
ADD: textmode
1 files modified
24 ■■■■ changed files
src/G4Export.cpp 24 ●●●● patch | view | raw | blame | history
src/G4Export.cpp
@@ -10,12 +10,15 @@
#include "clipp.h"
#include <ip/UdpSocket.h>
#include <osc/OscOutboundPacketStream.h>
#include <sstream>
using namespace clipp; using std::cout; using std::string;
#define OUTPUT_BUFFER_SIZE 512
int RunCollect=0;
std::unique_ptr<UdpTransmitSocket> transmitSocket;
bool use_text = false;
void* Collect(REND_STRUCT* prs){
@@ -47,14 +50,26 @@
        char buffer[OUTPUT_BUFFER_SIZE];
        osc::OutboundPacketStream p( buffer, OUTPUT_BUFFER_SIZE );
        p << osc::BeginBundleImmediate;
        if(!use_text) {
            p << osc::BeginBundleImmediate;
        }
        for (int i=0;i<prs->numHub;i++){
            auto dat = prs->hubList[i].GetPnoData()[0];
            //printf("sns: %i: [%f;%f;%f],[%f,%f,%f]\n",i, dat[0],dat[1],dat[2], dat[3],dat[4],dat[5]);
            p << osc::BeginMessage( (string("/hub/") + std::to_string(i)).c_str() )
                << dat[0] << dat[1] << dat[2] << dat[3] << dat[4] << dat[5] << osc::EndMessage;
            p << osc::BeginMessage( (string("/hub/") + std::to_string(i)).c_str() );
            std::ostringstream ss;
            if(use_text) {
                ss << "[" << dat[0] << "," << dat[1] << "," << dat[2] << "," << dat[3] << "," << dat[4] << "," << dat[5] << "]";
                auto res = ss.str();
                p << res.c_str();
            } else {
                p << dat[0] << dat[1] << dat[2] << dat[3] << dat[4] << dat[5];
            }
            p << osc::EndMessage;
        }
        p << osc::EndBundle;
        if(!use_text) {
            p << osc::EndBundle;
        }
        transmitSocket->Send( p.Data(), p.Size() );
        usleep(15000);
        // usleep(8000);
@@ -72,6 +87,7 @@
  int oscSinkPort;
  auto cli = (
    option("-t", "--text").set(use_text).doc("send strings in osc messages instead of a float bundle"),
        value("c4g configuration file", cfgFile),
        value("osc sink address", oscSinkAddr),
        integer("osc sink port", oscSinkPort)