You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.3 KiB
Python

FluidProviderTest : UGen {
/* var <> server;
var <> nodeID;
*new{ |server, name|
}*/
*kr{ |name|
^this.multiNew('control',name);
}
*new1 { |rate, name|
var ascii = name.ascii;
^super.new1(*[rate, ascii.size].addAll(ascii));
}
init { |size...chars|
//Send the number of inputs (size of provider string) as specialIndex,
//so server plugin knows what's going onnode
specialIndex = -1;
inputs = [size].addAll(chars);
}
addPoint{|server, nodeID, args, action|
this.prSendMsg(server, nodeID, 'addPoint',args,action);
}
updatePoint{|server, nodeID, args, action|
this.prSendMsg(server, nodeID, 'updatePoint',args,action);
}
deletePoint{|server, nodeID, args, action|
this.prSendMsg(server,nodeID, 'deletePoint',args,action);
}
prSendMsg { |server, nodeID, msg, args, action,parser|
server = server ? Server.default;
server.listSendMsg(['/u_cmd',nodeID.nodeID,this.synthIndex,msg].addAll(args));
OSCFunc(
{ |msg|
var result = FluidMessageResponse.collectArgs(parser,msg.drop(3));
if(action.notNil){action.value(result)}{action.value};
},'/'++msg).oneShot;
}
}