本文整理汇总了C++中osc::ReceivedMessage类的典型用法代码示例。如果您正苦于以下问题:C++ ReceivedMessage类的具体用法?C++ ReceivedMessage怎么用?C++ ReceivedMessage使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ReceivedMessage类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: lock
void oscReceiver::ProcessMessage(const osc::ReceivedMessage &_m, const IpEndpointName &remoteEndpoint)
{
boost::mutex::scoped_lock lock(listenerMutex);
if (retrievalMode == SIGNAL_PARSER_ONLY_AFTER_RELEASE)
{
if (currentMessage != 0) return;
}
osc::ReceivedMessage::const_iterator arg = _m.ArgumentsBegin();
currentMessage = new oscMessage(_m.AddressPattern(), oscMessage::NO_BUFFER);
// set source IP
char sourceString[ IpEndpointName::ADDRESS_STRING_LENGTH ];
remoteEndpoint.AddressAsString( sourceString );
currentMessage->sourceIP = sourceString;
while ( arg != _m.ArgumentsEnd() )
{
if ( arg->IsBool() ) { currentMessage->AppendBoolean (arg->AsBool());}
else if ( arg->IsInt32() ) { currentMessage->AppendInteger (arg->AsInt32());}
else if ( arg->IsFloat() ) { currentMessage->AppendFloat (arg->AsFloat());}
else if ( arg->IsString() ) { currentMessage->AppendString (arg->AsString());}
else { std::cout << "Unrecognized osc argument type\n"; }
arg++;
}
signalNewOscMessageReceived(currentMessage);
}
开发者ID:Samsung,项目名称:kv2streamer,代码行数:30,代码来源:oscReceiver.cpp
示例2: Message
void OscListener::ProcessMessage( const ::osc::ReceivedMessage &m, const IpEndpointName& remoteEndpoint ) {
Message* message = new Message();
message->setAddress(m.AddressPattern());
char endpoint_host[IpEndpointName::ADDRESS_STRING_LENGTH];
remoteEndpoint.AddressAsString(endpoint_host);
message->setRemoteEndpoint(endpoint_host, remoteEndpoint.port);
for (::osc::ReceivedMessage::const_iterator arg = m.ArgumentsBegin(); arg != m.ArgumentsEnd(); ++arg){
if (arg->IsInt32())
message->addIntArg( arg->AsInt32Unchecked());
else if (arg->IsFloat())
message->addFloatArg(arg->AsFloatUnchecked());
else if (arg->IsString())
message->addStringArg(arg->AsStringUnchecked());
else {
assert(false && "message argument type unknown");
}
}
lock_guard<mutex> lock(mMutex);
if( mMessageReceivedCbs.empty() ){
mMessages.push_back( message );
}else{
mMessageReceivedCbs.call( message );
delete message;
}
}
开发者ID:SethGibson,项目名称:DroneTest,代码行数:30,代码来源:OscListener.cpp
示例3: ProcessMessage
//get OSC message
void OscInput::ProcessMessage( const osc::ReceivedMessage& m, const IpEndpointName& remoteEndpoint )
{
try
{
if( strcmp( m.AddressPattern(), "/alpha" ) == 0 )
{
osc::ReceivedMessage::const_iterator arg = m.ArgumentsBegin();
int recievedPad = (arg++)->AsInt32();
int recievedValue = (arg++)->AsInt32();
if( arg != m.ArgumentsEnd() )
throw osc::ExcessArgumentException();
recievedPad = Layouts::padArrangementLayout[recievedPad];
//call callback function
oscCallBack(recievedPad, recievedValue);
}
}
catch( osc::Exception& e )
{
// any parsing errors such as unexpected argument types, or
// missing arguments get thrown as exceptions.
std::cout << "error while parsing message: "
<< m.AddressPattern() << ": " << e.what() << "\n";
}
}
开发者ID:ankit--sethi,项目名称:AlphaLive,代码行数:27,代码来源:OscInput.cpp
示例4: ProcessMessage
void OscListener::ProcessMessage(const osc::ReceivedMessage& message, const IpEndpointName& endpoint)
{
char addressBuffer[256];
endpoint.AddressAsString(addressBuffer);
QList<QVariant> arguments;
for (osc::ReceivedMessage::const_iterator iterator = message.ArgumentsBegin(); iterator != message.ArgumentsEnd(); ++iterator)
{
const osc::ReceivedMessageArgument& argument = *iterator;
if (argument.IsBool())
arguments.push_back(argument.AsBool());
else if (argument.IsInt32())
arguments.push_back(QVariant::fromValue<qint32>(argument.AsInt32()));
else if (argument.IsInt64())
arguments.push_back(QVariant::fromValue<qint64>(argument.AsInt64()));
else if (argument.IsFloat())
arguments.push_back(argument.AsFloat());
else if (argument.IsDouble())
arguments.push_back(argument.AsDouble());
else if (argument.IsString())
arguments.push_back(argument.AsString());
}
QString eventPath = QString("%1%2").arg(addressBuffer).arg(message.AddressPattern());
QMutexLocker locker(&eventsMutex);
this->events[eventPath] = arguments;
}
开发者ID:,项目名称:,代码行数:30,代码来源:
示例5: ProcessMessage
void OSCHandler::ProcessMessage(const osc::ReceivedMessage& m, const IpEndpointName& /*remoteEndpoint*/)
{
const String stripWildcard = OSCPrefix + "strip/*";
try
{
String msgPattern = m.AddressPattern();
if (msgPattern.equalsIgnoreCase(OSCPrefix + "press"))
{
// we need three arguments for button presses
const int numArgs = m.ArgumentCount();
if (numArgs != 3) throw osc::Exception();
osc::ReceivedMessageArgumentStream args = m.ArgumentStream();
// unpack the monome button, row and state (button up or down)
osc::int32 row, col, state;
args >> row >> col >> state >> osc::EndMessage;
buttonPressCallback(row, col, state == 1);
}
else if (msgPattern.matchesWildcard(stripWildcard, false))
{
// strip off the /mlrvst/strip/ part of the message
msgPattern = msgPattern.substring(stripWildcard.length() - 1);
// and extract the SampleStrip rowID from the message
const String rowIDStr = msgPattern.upToFirstOccurrenceOf("/", false, false);
const int stripID = rowIDStr.getIntValue();
handleStripMessage(stripID, m);
}
}
开发者ID:grimtraveller,项目名称:mlrVST,代码行数:34,代码来源:OSCHandler.cpp
示例6: ProcessMessage
void BitalinoPacketListener::ProcessMessage( const osc::ReceivedMessage& m ) {
try{
if( std::strcmp( m.AddressPattern(), "/wek/inputs" ) == 0 ){
osc::ReceivedMessage::const_iterator arg = m.ArgumentsBegin();
float emg = (arg++)->AsFloat();
float emgFilt = (arg++)->AsFloat();
float eda = (arg++)->AsFloat();
this->emgBuffer[this->curEmgBuffIdx++] = emgFilt;
if (this->curEmgBuffIdx >= BUFFER_SIZE) {
this->curEmgBuffIdx = 0;
}
this->emgStd = minMax(this->emgBuffer, BUFFER_SIZE);
float ecg = (arg++)->AsFloat();
this->accelMean =(arg++)->AsFloat();
this->lux = (arg++)->AsFloat();
//std::cout << "emg: " << emg << " emgfilt: " << emgFilt << " eda: " << eda << " ecg: " << ecg << " accel: " << accel << " lux: " << lux << '\n';
}
}catch( osc::Exception& e ){
// any parsing errors such as unexpected argument types, or
// missing arguments get thrown as exceptions.
std::cout << "error while parsing message: "
<< m.AddressPattern() << ": " << e.what() << "\n";
}
}
开发者ID:richard-vogl,项目名称:JucyPaintAlinoBrick,代码行数:31,代码来源:OSCStuff.cpp
示例7: ProcessMessage
void Receiver::ProcessMessage( const osc::ReceivedMessage &m, const osc::IpEndpointName& remoteEndpoint ) {
// convert the m to a Message, return at the end to other main thread
Message message;
// set the address
message.setAddress( m.AddressPattern() );
// set the sender ip/host
char endpoint_host[ osc::IpEndpointName::ADDRESS_STRING_LENGTH ];
remoteEndpoint.AddressAsString( endpoint_host );
message.setRemoteEndpoint( endpoint_host, remoteEndpoint.port );
// transfer the arguments
for ( osc::ReceivedMessage::const_iterator arg = m.ArgumentsBegin();
arg != m.ArgumentsEnd();
++arg )
{
if ( arg->IsInt32() ) {
message.addIntArg( arg->AsInt32Unchecked() );
} else if ( arg->IsFloat() ) {
message.addFloatArg( arg->AsFloatUnchecked() );
} else if ( arg->IsString() ) {
message.addStringArg( arg->AsStringUnchecked() );
} else {
assert( false && "message argument is not int, float, or string" );
}
}
// at this point we are running inside the thread created by start()
// since we are returning a copy no shared memory management
for(unsigned int i=0; i<_oscHandlers.size(); ++i) {
_oscHandlers[i]->oscReceive( message );
}
}
开发者ID:OpenWerkplek,项目名称:VirtualAwesome,代码行数:35,代码来源:Receiver.cpp
示例8: ProcessMessage
//------------------------------------------------------------------------
void OSCListener::ProcessMessage( const osc::ReceivedMessage& m, const IpEndpointName& src )
{
string address(m.AddressPattern());
if (address == kGreensoundsAddr) {
ReceivedMessageArgumentIterator i = m.ArgumentsBegin();
while (i != m.ArgumentsEnd()) {
if (i->IsString()) {
string msg(i->AsStringUnchecked());
if (msg == "hello") {
char buff[120];
src.AddressAsString(buff);
fSensors->connect(buff);
}
else if (msg == "version") {
fSensors->send (kGreensoundsAddr, "version", kVersion);
}
}
else if (i->IsInt32()) {
}
else if (i->IsFloat()) {
}
i++;
}
}
}
开发者ID:dfober,项目名称:greensounds,代码行数:28,代码来源:Sensors.cpp
示例9: ProcessMessage
// Process incoming OSC. Used for Kyma communication.
//
void SoundplaneModel::ProcessMessage(const osc::ReceivedMessage& m, const IpEndpointName& remoteEndpoint)
{
osc::ReceivedMessageArgumentStream args = m.ArgumentStream();
osc::int32 a1;
try
{
if( std::strcmp( m.AddressPattern(), "/osc/response_from" ) == 0 )
{
args >> a1 >> osc::EndMessage;
// set Kyma mode
if (mOSCOutput.getKymaMode())
{
mKymaIsConnected = true;
}
}
else if (std::strcmp( m.AddressPattern(), "/osc/notify/midi/Soundplane" ) == 0 )
{
args >> a1 >> osc::EndMessage;
// set voice count to a1
int newTouches = clamp((int)a1, 0, kSoundplaneMaxTouches);
if(mKymaIsConnected)
{
// Kyma is sending 0 sometimes, which there is probably
// no reason to respond to
if(newTouches > 0)
{
setProperty("max_touches", newTouches);
}
}
}
开发者ID:drobilla,项目名称:soundplane,代码行数:32,代码来源:SoundplaneModel.cpp
示例10: ProcessMessage
void ofxOscReceiver::ProcessMessage( const osc::ReceivedMessage &m, const osc::IpEndpointName& remoteEndpoint )
{
// convert the message to an ofxOscMessage
ofxOscMessage msg;
// set the address
msg.setAddress( m.AddressPattern() );
// set the sender ip/host
char endpoint_host[ osc::IpEndpointName::ADDRESS_STRING_LENGTH ];
remoteEndpoint.AddressAsString( endpoint_host );
msg.setRemoteEndpoint( endpoint_host, remoteEndpoint.port );
// transfer the arguments
for ( osc::ReceivedMessage::const_iterator arg = m.ArgumentsBegin();
arg != m.ArgumentsEnd();
++arg )
{
if ( arg->IsInt32() )
msg.addIntArg( arg->AsInt32Unchecked() );
else if ( arg->IsInt64() )
msg.addInt64Arg( arg->AsInt64Unchecked() );
else if ( arg->IsFloat() )
msg.addFloatArg( arg->AsFloatUnchecked() );
else if ( arg->IsDouble() )
msg.addDoubleArg( arg->AsDoubleUnchecked() );
else if ( arg->IsString() )
msg.addStringArg( arg->AsStringUnchecked() );
else if ( arg->IsSymbol() )
msg.addSymbolArg( arg->AsSymbolUnchecked() );
else if ( arg->IsChar() )
msg.addCharArg( arg->AsCharUnchecked() );
else if ( arg->IsMidiMessage() )
msg.addMidiMessageArg( arg->AsMidiMessageUnchecked() );
else if ( arg->IsBool())
msg.addBoolArg( arg->AsBoolUnchecked() );
else if ( arg->IsInfinitum() )
msg.addTriggerArg();
else if ( arg->IsTimeTag() )
msg.addTimetagArg( arg->AsTimeTagUnchecked() );
else if ( arg->IsRgbaColor() )
msg.addRgbaColorArg( arg->AsRgbaColorUnchecked() );
else if ( arg->IsBlob() ){
const char * dataPtr;
osc::osc_bundle_element_size_t len = 0;
arg->AsBlobUnchecked((const void*&)dataPtr, len);
ofBuffer buffer(dataPtr, len);
msg.addBlobArg( buffer );
}
else
{
ofLogError("ofxOscReceiver") << "ProcessMessage: argument in message " << m.AddressPattern() << " is not an int, float, or string";
}
}
// send msg to main thread
messagesChannel.send( std::move(msg) );
}
开发者ID:AbdelghaniDr,项目名称:openFrameworks,代码行数:58,代码来源:ofxOscReceiver.cpp
示例11: if
void MLT3DHub::ProcessMessage(const osc::ReceivedMessage& msg, const IpEndpointName&)
{
osc::TimeTag frameTime;
osc::int32 frameID, touchID, deviceID;
float x, y, z, note;
// todo keep track of alive touches again to fix deadbeats
// int alive[MLProcInputToSignals::kFrameHeight] = {0};
try
{
osc::ReceivedMessageArgumentStream args = msg.ArgumentStream();
const char * addy = msg.AddressPattern();
//debug() << "t3d: " << addy << "\n";
// frame message.
// /t3d/frm (int)frameID int)deviceID
if (strcmp(addy, "/t3d/frm") == 0)
{
args >> frameID >> deviceID;
mT3DWaitTime = 0;
if(!mConnected)
{
mConnected = true;
notifyListeners("connected", 1);
}
//debug() << "FRM " << frameID << "\n";
}
// match tch[n] message
else if (strncmp(addy, "/t3d/tch", 8) == 0)
{
// get trailing number
touchID = 1;
int len = strlen(addy);
if(len == 9)
{
touchID = addy[8] - 48;
}
else if(len == 10)
{
touchID = 10*(addy[8] - 48) + (addy[9] - 48);
}
touchID = clamp(touchID - 1, (osc::int32)0, (osc::int32)16);
// t3d/tch[ID], (float)x, (float)y, (float)z, (float)note
args >> x >> y >> z >> note;
//debug() << "TCH " << touchID << " " << x << " " << y << " " << z << " " << note << "\n";
mOutputFrame(0, touchID) = x;
mOutputFrame(1, touchID) = y;
mOutputFrame(2, touchID) = z;
mOutputFrame(3, touchID) = note;
}
开发者ID:drobilla,项目名称:madronalib,代码行数:56,代码来源:MLT3DHub.cpp
示例12: ofxOscMessage
void ofxOscReceiver::ProcessMessage( const osc::ReceivedMessage &m, const IpEndpointName& remoteEndpoint )
{
// convert the message to an ofxOscMessage
ofxOscMessage* ofMessage = new ofxOscMessage();
// set the address
ofMessage->setAddress( m.AddressPattern() );
// set the sender ip/host
char endpoint_host[ IpEndpointName::ADDRESS_STRING_LENGTH ];
remoteEndpoint.AddressAsString( endpoint_host );
ofMessage->setRemoteEndpoint( endpoint_host, remoteEndpoint.port );
// transfer the arguments
for ( osc::ReceivedMessage::const_iterator arg = m.ArgumentsBegin();
arg != m.ArgumentsEnd();
++arg )
{
if ( arg->IsInt32() )
ofMessage->addIntArg( arg->AsInt32Unchecked() );
else if ( arg->IsFloat() )
ofMessage->addFloatArg( arg->AsFloatUnchecked() );
else if ( arg->IsString() )
ofMessage->addStringArg( arg->AsStringUnchecked() );
else if ( arg->IsBlob() )
{
osc::Blob blob;
arg->AsBlobUnchecked( blob.data, blob.size );
ofMessage->addBlobArg( blob );
}
else
{
assert( false && "message argument is not int, float, string, or blob" );
}
}
// now add to the queue
// at this point we are running inside the thread created by startThread,
// so anyone who calls hasWaitingMessages() or getNextMessage() is coming
// from a different thread
// so we have to practise shared memory management
// grab a lock on the queue
grabMutex();
// add incoming message on to the queue
messages.push_back( ofMessage );
// release the lock
releaseMutex();
}
开发者ID:010175,项目名称:switchboard,代码行数:53,代码来源:ofxOscReceiver.cpp
示例13: ProcessMessage
void MyPacketListener::ProcessMessage(const osc::ReceivedMessage &m, const IpEndpointName &remoteEndpoint)
{
(void) remoteEndpoint;
try {
auto args = m.ArgumentStream();
const char* msg;
args >> msg >> osc::EndMessage;
emit parent_->message(m.AddressPattern(), msg);
} catch (const osc::Exception& e) {
std::cerr << "[OSCReceiver] Error while parsing process message." << std::endl;
std::cerr << m.AddressPattern() << ": " << e.what() << std::endl;
}
}
开发者ID:charlesveasey,项目名称:vDome-player,代码行数:14,代码来源:osc_receiver.cpp
示例14: parseMinuitGetAnswer
void MinuitGetAnswer::parseMinuitGetAnswer(const osc::ReceivedMessage&m)
{
osc::ReceivedMessage::const_iterator arg = m.ArgumentsBegin();
std::ostringstream ossWithAddress;
std::ostringstream ossWithoutAddress;
std::ostringstream floatCorrection;
// get the address
ossWithAddress << arg->AsString();
++arg;
while(arg != m.ArgumentsEnd()) {
if (arg->IsChar()) {
ossWithAddress << arg->AsChar();
ossWithoutAddress << arg->AsChar();
} else if (arg->IsInt32()) {
ossWithAddress << arg->AsInt32();
ossWithoutAddress << arg->AsInt32();
} else if (arg->IsString()) {
ossWithAddress << arg->AsString();
ossWithoutAddress << arg->AsString();
}else if (arg->IsFloat()) {
floatCorrection.str("");
floatCorrection << arg->AsFloat();
std::string floatWithPoint = floatCorrection.str();
if(floatWithPoint.find(".") == floatWithPoint.npos) {
floatWithPoint = floatWithPoint + ".";
}
ossWithAddress << floatWithPoint;
ossWithoutAddress << floatWithPoint;
}
++arg;
if(arg != m.ArgumentsEnd()){
ossWithAddress << " ";
ossWithoutAddress << " ";
}
}
m_getStringWithAddress = ossWithAddress.str();
m_getStringWithoutAddress = ossWithoutAddress.str();
m_state = ANSWER_RECEIVED;
}
开发者ID:blueyeti,项目名称:Device-Manager,代码行数:49,代码来源:MinuitGetAnswer.cpp
示例15: ProcessMessage
void Network::ProcessMessage(const osc::ReceivedMessage& m,
const IpEndpointName& remoteEndpoint)
{
try {
std::string address = m.AddressPattern();
if (address != "/mouse/position") // too noisy!
std::cerr << "Port " << m_port << " >>> Received '" << address << "' message with arguments: ";
(this->*(m_handlers[address]))(m, remoteEndpoint);
} catch(osc::Exception& e) {
std::cerr << "error while parsing message: "
<< m.AddressPattern() << ": " << e.what() << std::endl;
}
rescueOrphans();
}
开发者ID:emarschner,项目名称:playround,代码行数:15,代码来源:Network.cpp
示例16: ProcessMessage
void ExamplePacketListener::ProcessMessage( const osc::ReceivedMessage& m, const IpEndpointName& remoteEndpoint )
{
try{
// example of parsing single messages. osc::OsckPacketListener
// handles the bundle traversal.
OSCData *d = new OSCData; //new OSCData;
d->header = oscNothing;
osc::ReceivedMessage::const_iterator arg = m.ArgumentsBegin();
if( strcmp( m.AddressPattern(), "/obs") == 0 ) // this is a packet of feature data: /obs len x x x x
{
d = new OSCData;
int len = (arg++)->AsInt32();
for (int i = 0; i < len; i++)
d->data.push_back((arg++)->AsFloat()); // the observed state
d->header = oscUpdate;
} else if( strcmp( m.AddressPattern(), "/spo") == 0 ) // set the RL's willingness to jump to new categories
{
d = new OSCData;
d->data.push_back((arg++)->AsFloat()); // the observed state
d->header = oscSponteneity;
} else if( strcmp( m.AddressPattern(), "/reset") == 0 ) // start over!
{
d = new OSCData;
d->header = oscReset;
} else if( strcmp( m.AddressPattern(), "/analyze") == 0 ) // toggle between purely analyzing and predicting states
{
d = new OSCData;
d->header = oscAnalyze;
} else if( strcmp( m.AddressPattern(), "/learnRate") == 0 ) // toggle between purely analyzing and predicting states
{
d = new OSCData;
d->header = oscLearnRates;
for (int i = 0; i < 4; i++)
d->data.push_back((arg++)->AsFloat()); // the observed state
} else if( strcmp( m.AddressPattern(), "/rewardWeight") == 0 ) // toggle between purely analyzing and predicting states
{
d = new OSCData;
d->header = oscRewardWeights;
for (int i = 0; i < 4; i++)
d->data.push_back((arg++)->AsFloat()); // the observed state
}
if (d->header != oscNothing)
{
pthread_mutex_lock(MusiVerse::oscmutex); //wait for the lock
MusiVerse::rxCommands.push_back(d);
pthread_mutex_unlock(MusiVerse::oscmutex);
} else
delete d;
}catch( osc::Exception& e )
{
// any parsing errors such as unexpected argument types, or
// missing arguments get thrown as exceptions.
std::cout << "error while parsing message: "
<< m.AddressPattern() << ": " << e.what() << "\n";
}
}
开发者ID:bens1984,项目名称:PianoPlayer,代码行数:58,代码来源:OSCReceive.cpp
示例17: handlePeerDownMessage
void Network::handlePeerDownMessage(const osc::ReceivedMessage& m,
const IpEndpointName& remoteEndpoint)
{
// Utility data structures
char buffer[1024];
osc::OutboundPacketStream ps(buffer, 1024);
// Parse OSC message
osc::int32 port;
osc::int64 address;
m.ArgumentStream() >> address >> port >> osc::EndMessage;
if (address == 0)
address = remoteEndpoint.address;
char ipStr[INET_ADDRSTRLEN];
uint32_t endian = htonl(address);
std::cerr << inet_ntop(AF_INET, &(endian), ipStr, INET_ADDRSTRLEN) << ", " << (int)port << std::endl;
// Check for known peer, add & broadcast if unknown
IpEndpointName peerEndpoint((unsigned long)address, (int)port);
PeerMap::iterator peer = m_peers.find(peerEndpoint);
if (peer != m_peers.end()) {
m_peers.erase(peer);
// Tell the world
ps << osc::BeginMessage("/network/peer/down") << address << port << osc::EndMessage;
broadcast(ps);
}
}
开发者ID:emarschner,项目名称:playround,代码行数:28,代码来源:Network.cpp
示例18: handlePeerTextMessage
void Network::handlePeerTextMessage(const osc::ReceivedMessage& m,
const IpEndpointName& remoteEndpoint)
{
// Utility data structures
char buffer[1024];
osc::OutboundPacketStream ps(buffer, 1024);
// Parse OSC message
osc::Symbol text;
osc::int64 address;
osc::int32 port;
m.ArgumentStream() >> address >> port >> text >> osc::EndMessage;
if (address == 0)
address = remoteEndpoint.address;
char ipStr[INET_ADDRSTRLEN];
uint32_t endian = htonl(address);
std::cerr << inet_ntop(AF_INET, &(endian), ipStr, INET_ADDRSTRLEN) << ": " << text << std::endl;
// Check for known peer, add & broadcast if unknown
IpEndpointName peerEndpoint((unsigned long)address, (int)port);
PeerMap::iterator peer = m_peers.find(peerEndpoint);
if (peer != m_peers.end())
peer->second->setDisplayName(std::string(text));
}
开发者ID:emarschner,项目名称:playround,代码行数:26,代码来源:Network.cpp
示例19: handleObjectPadMessage
void Network::handleObjectPadMessage(const osc::ReceivedMessage& m,
const IpEndpointName& remoteEndpoint)
{
// Utility data structures
char buffer[1024];
osc::OutboundPacketStream ps(buffer, 1024);
// Parse OSC message
float x, y, radius;
osc::Symbol uuid;
m.ArgumentStream() >> uuid >> x >> y >> radius >> osc::EndMessage;
std::cerr << uuid << ", " << x << ", " << y << ", " << radius << std::endl;
// Check for known pad, add & broadcast if unknown
WidgetMap* widgets = Widget::getAll();
WidgetMap::iterator wit = widgets->find(std::string(uuid));
if (wit == widgets->end()) {
RoundPad* newPad = new RoundPad(Point2D(x, y), radius);
newPad->setUuid(uuid);
widgets->insert(WidgetData(std::string(uuid), newPad));
m_engine->addChild(newPad);
// Tell the world
newPad->toOutboundPacketStream(ps);
broadcast(ps);
}
}
开发者ID:emarschner,项目名称:playround,代码行数:27,代码来源:Network.cpp
示例20: processServerStatusMessage
void ScServer::processServerStatusMessage(const osc::ReceivedMessage &message )
{
if (!isRunning())
return;
int unused;
int ugenCount;
int synthCount;
int groupCount;
int defCount;
float avgCPU;
float peakCPU;
auto args = message.ArgumentStream();
try
{
args >> unused
>> ugenCount
>> synthCount
>> groupCount
>> defCount
>> avgCPU
>> peakCPU;
}
catch (osc::MissingArgumentException)
{
qCritical("Misformatted server status message.");
return;
}
emit updateServerStatus(ugenCount, synthCount,
groupCount, defCount,
avgCPU, peakCPU);
}
开发者ID:edsonedge,项目名称:supercollider,代码行数:35,代码来源:sc_server.cpp
注:本文中的osc::ReceivedMessage类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论