Example #1
0
bool OscController::sendMessage(const char *path, const char *types, ...)
{
	if(path == NULL || types == NULL || transmitAddress_ == NULL)
		return false;
	
	va_list ap;
	bool ret = false;
	
	char *totalPath = (char *)malloc((strlen(path) + globalPrefix_.length())*sizeof(char));
	strcpy(totalPath, globalPrefix_.c_str());
	strcat(totalPath, path);
	
	lo_message msg = lo_message_new();
	va_start(ap, types);
	
	ret = (lo_message_add_varargs(msg, types, ap) == 0);	// Check for success (return of 0)
	if(!ret)
		cerr << "Error in OscController::sendMessage -- lo_message_add_varargs failed.\n";
	else	
		ret = (lo_send_message(transmitAddress_, totalPath, msg) == 0);
	
	va_end(ap);
	lo_message_free(msg);
	free(totalPath);
	return ret;
}
Example #2
0
File: Osc.cpp Project: EQ4/MRP
void OscTransmitter::sendMessage(const char * path, const char * type, ...)
{
	va_list v;
	
	va_start(v, type);
	lo_message msg = lo_message_new();
	lo_message_add_varargs(msg, type, v);

	/*if(debugMessages_) {
		cout << path << " " << type << ": ";
		
		lo_arg **args = lo_message_get_argv(msg);
		
		for(int i = 0; i < lo_message_get_argc(msg); i++) {
			switch(type[i]) {
				case 'i':
					cout << args[i]->i << " ";
					break;
				case 'f':
					cout << args[i]->f << " ";
					break;
				default:
					cout << "? ";
			}
		}
		
		cout << endl;
		//lo_message_pp(msg);
	}*/
	
	sendMessage(path, type, msg);

	lo_message_free(msg);
	va_end(v);
}
Example #3
0
void OscSender::sendMessage(const std::string &OSCpath, const char *types, va_list ap) const
{
    lo_message msg = lo_message_new();
    int err = lo_message_add_varargs(msg, types, ap);

    if (!err)
        sendMessage(OSCpath, msg);
    else 
        std::cout << "ERROR (OscSender::sendMessage): " << err << std::endl;
}
Example #4
0
int test_varargs(lo_address a, const char *path, const char *types, ...)
{
    va_list ap;
    lo_message m = lo_message_new();
    int error;
    va_start(ap, types);
    if ((error=lo_message_add_varargs(m, types, ap))==0)
        lo_send_message(a, path, m);
    else
        printf("lo_message_add_varargs returned %d\n", error);
    lo_message_free(m);
    return error<0;
}