void CtrlrPanelProcessor::processBlock(MidiBuffer &midiMessages, MidiBuffer &leftoverBuffer, const AudioPlayHead::CurrentPositionInfo &info) { if (owner.getMidiOptionBool(panelMidiInputFromHostCompare)) { owner.getMIDIInputThread().handleMIDIFromHost(midiMessages); } leftoverBuffer.clear(); processLua(midiMessages, info); MidiBuffer::Iterator i(midiMessages); MidiMessage m; int time; while (i.getNextEvent(m,time)) { _MIN("VST INPUT", m, time); if (owner.getMidiOptionBool(panelMidiThruH2D) == true) { if (owner.getMidiOptionBool(panelMidiThruH2DChannelize)) { m.setChannel (owner.getMidiChannel(panelMidiOutputChannelDevice)); } owner.sendMidi(m); } if (owner.getMidiOptionBool(panelMidiThruH2H) == true) { if (owner.getMidiOptionBool(panelMidiThruH2HChannelize)) { m.setChannel (owner.getMidiChannel(panelMidiOutputChannelHost)); } leftoverBuffer.addEvent (m, time); } } }
void Flow::lua(lua_State* vm, bool detailed_dump) { char buf[64]; lua_newtable(vm); if(get_cli_host()) { if(detailed_dump) lua_push_str_table_entry(vm, "cli.host", get_cli_host()->get_name(buf, sizeof(buf), false)); lua_push_int_table_entry(vm, "cli.source_id", get_cli_host()->getSourceId()); lua_push_str_table_entry(vm, "cli.ip", get_cli_host()->get_ip()->print(buf, sizeof(buf))); lua_push_bool_table_entry(vm, "cli.systemhost", get_cli_host()->isSystemHost()); } else { lua_push_nil_table_entry(vm, "cli.host"); lua_push_nil_table_entry(vm, "cli.ip"); } lua_push_int_table_entry(vm, "cli.port", get_cli_port()); if(get_srv_host()) { if(detailed_dump) lua_push_str_table_entry(vm, "srv.host", get_srv_host()->get_name(buf, sizeof(buf), false)); lua_push_int_table_entry(vm, "srv.source_id", get_cli_host()->getSourceId()); lua_push_str_table_entry(vm, "srv.ip", get_srv_host()->get_ip()->print(buf, sizeof(buf))); lua_push_bool_table_entry(vm, "srv.systemhost", get_srv_host()->isSystemHost()); } else { lua_push_nil_table_entry(vm, "srv.host"); lua_push_nil_table_entry(vm, "srv.ip"); } lua_push_int_table_entry(vm, "srv.port", get_srv_port()); lua_push_int_table_entry(vm, "vlan", get_vlan_id()); lua_push_str_table_entry(vm, "proto.l4", get_protocol_name()); if(((cli2srv_packets+srv2cli_packets) > NDPI_MIN_NUM_PACKETS) || (ndpi_detected_protocol != NDPI_PROTOCOL_UNKNOWN) || iface->is_ndpi_enabled() || iface->is_sprobe_interface()) { lua_push_str_table_entry(vm, "proto.ndpi", get_detected_protocol_name()); } else lua_push_str_table_entry(vm, "proto.ndpi", (char*)CONST_TOO_EARLY); lua_push_int_table_entry(vm, "bytes", cli2srv_bytes+srv2cli_bytes); lua_push_int_table_entry(vm, "bytes.last", get_current_bytes_cli2srv() + get_current_bytes_srv2cli()); lua_push_int_table_entry(vm, "seen.first", get_first_seen()); lua_push_int_table_entry(vm, "seen.last", get_last_seen()); lua_push_int_table_entry(vm, "duration", get_duration()); lua_push_int_table_entry(vm, "cli2srv.bytes", cli2srv_bytes); lua_push_int_table_entry(vm, "srv2cli.bytes", srv2cli_bytes); if(detailed_dump) { lua_push_int_table_entry(vm, "tcp_flags", getTcpFlags()); lua_push_str_table_entry(vm, "category", categorization.category ? categorization.category : (char*)""); lua_push_str_table_entry(vm, "moreinfo.json", get_json_info()); } if(client_proc) processLua(vm, client_proc, true); if(server_proc) processLua(vm, server_proc, false); //ntop->getTrace()->traceEvent(TRACE_NORMAL, "%.2f", bytes_thpt); lua_push_float_table_entry(vm, "throughput", bytes_thpt); lua_push_int_table_entry(vm, "throughput_trend", bytes_thpt_trend); if(!detailed_dump) { lua_pushinteger(vm, key()); // Index lua_insert(vm, -2); lua_settable(vm, -3); } else { lua_push_int_table_entry(vm, "cli2srv.packets", cli2srv_packets); lua_push_int_table_entry(vm, "srv2cli.packets", srv2cli_packets); } }