}
public void Execute( SECDMachine machine )
{
final Request request = new Request();
final LispValue args = machine.S.pop();
final String sourceName = args.first().toStringSimple().toUpperCase();
final LispValue params = args.basic_length() >= 2 ? args.second() : f_lisp.NIL;
LispValue trnsArg, rcvArg;
final de.sciss.app.Application app = AbstractApplication.getApplication();
try {
request.medium = args.basic_length() >= 3 ? lisp.getObject( args.third().toJava() ) : null;
request.mediumOptions = args.basic_length() >= 4 ? args.fourth() : f_lisp.NIL;
//System.err.println( "request.medium "+request.medium+"; request.mediumOptions "+request.mediumOptions );
if( sourceName.equals( requestKeyNames[ REQUEST_SENSE ])) {
request.type = REQUEST_SENSE;
if( params.basic_consp() ) {
trnsArg = params.car();
rcvArg = params.cdr();
if( trnsArg.basic_numberp() && rcvArg.basic_numberp() ) {
request.params = new Point(
(int) ((LispNumber) trnsArg).getLongValue(),
(int) ((LispNumber) rcvArg).getLongValue()
);
// System.err.println( ((Point) request.params).x +" , "+((Point) request.params).y );