From d6f0ba3d592d52580d0b8e2829d1c3d2d88d831c Mon Sep 17 00:00:00 2001
From: Janis Streib <me@janis-streib.de>
Date: Tue, 25 Jan 2022 02:25:42 +0100
Subject: [PATCH] ADD: textmode

---
 src/G4Export.cpp |   24 ++++++++++++++++++++----
 1 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/src/G4Export.cpp b/src/G4Export.cpp
index 53f0527..2908ae6 100644
--- a/src/G4Export.cpp
+++ b/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)

--
Gitblit v1.9.1