void net_set_in_value(s32 inIdx, io_t val) { if (inIdx < 0) return; if (inIdx < net->numIns) { op_set_in_val(net->ops[net->ins[inIdx].opIdx], net->ins[inIdx].opInIdx, val); } else { // parameter inIdx -= net->numIns; set_param_value(inIdx, val); } }
// increment input value void op_inc_in_val(op_t* op, const s16 idx, const io_t inc) { /* print_dbg("\r\n op_inc_in_val, "); */ /* print_dbg(" op @ 0x"); */ /* print_dbg_hex((u32)op); */ /* print_dbg(" old : 0x"); */ /* print_dbg_hex((u32)op_get_in_val(op, idx)); */ /* print_dbg(" inc : 0x"); */ /* print_dbg_hex((u32)inc); */ /* print_dbg(" new : 0x"); */ /* print_dbg_hex( (u32)op_sadd( op_get_in_val(op, idx), inc) ); */ op_set_in_val( op, idx, op_sadd( op_get_in_val(op, idx), inc) ); }
// activate an input node with a value void net_activate(s16 inIdx, const io_t val, void* op) { static inode_t* pIn; s16 pIndex; u8 vis; print_dbg("\r\n net_activate, input idx: "); print_dbg_hex(inIdx); print_dbg(" , value: "); print_dbg_hex(val); print_dbg(" , op index: "); print_dbg_ulong(net->ins[inIdx].opIdx); print_dbg(" , input idx: "); print_dbg_ulong(net->ins[inIdx].opInIdx); if(!netActive) { if(op != NULL) { // if the net isn't active, dont respond to requests from operators print_dbg(" ... ignoring node activation from op."); return; } } if(inIdx < 0) { return; } vis = net_get_in_play(inIdx); print_dbg(" , play visibility flag : "); print_dbg_ulong(vis); if(inIdx < net->numIns) { // this is an op input pIn = &(net->ins[inIdx]); print_dbg(" ; input node pointer: 0x"); print_dbg_hex((u32)pIn); op_set_in_val(net->ops[pIn->opIdx], pIn->opInIdx, val); } else { // this is a parameter //// FIXME this is horrible pIndex = inIdx - net->numIns; if (pIndex >= net->numParams) { return; } print_dbg(" ; param index: 0x"); print_dbg_ulong(pIndex); set_param_value(pIndex, val); } /// only process for play mode if we're in play mode if(pageIdx == ePagePlay) { print_dbg(" , play mode "); if(opPlay) { // operators have focus, do nothing print_dbg(" , op focus mode"); } else { // process if play-mode-visibility is set on this input if(vis) { print_dbg(" , input enabled"); play_input(inIdx); } } } }