bool ex_event(void *args) { ITheFramework *frame = Factory::GetFramework(); ITheEventBoard *board = Factory::GetEventBoard(); Decorator *decorator = ssi_create(Decorator, 0, true); frame->AddDecorator(decorator); Mouse *mouse = ssi_create(Mouse, 0, true); mouse->getOptions()->mask = Mouse::LEFT; ITransformable *button_t = frame->AddProvider(mouse, SSI_MOUSE_BUTTON_PROVIDER_NAME); ITransformable *cursor_t = frame->AddProvider(mouse, SSI_MOUSE_CURSOR_PROVIDER_NAME); frame->AddSensor(mouse); PythonConsumer *py_send = ssi_create_id(PythonConsumer, 0, "pysend"); py_send->getOptions()->setScript("ssi_send"); ITransformable *input[] = { button_t, cursor_t }; frame->AddConsumer(2, input, py_send, "100ms"); board->RegisterSender(*py_send); PythonObject *py_listen = ssi_create_id(PythonObject, 0, "pylisten"); py_listen->getOptions()->setScript("ssi_listen"); board->RegisterListener(*py_listen, py_send->getEventAddress()); EventMonitor *monitor = ssi_create_id(EventMonitor, 0, "monitor"); board->RegisterListener(*monitor, 0, 10000u); SignalPainter *plot = 0; plot = ssi_create_id(SignalPainter, 0, "plot"); plot->getOptions()->setTitle("CURSOR"); frame->AddEventConsumer(cursor_t, plot, board, py_send->getEventAddress()); decorator->add("console", 0, 0, 650, 800); decorator->add("plot*", 650, 0, 400, 400); decorator->add("monitor*", 650, 400, 400, 400); board->Start(); frame->Start(); frame->Wait(); frame->Stop(); board->Stop(); frame->Clear(); board->Clear(); return true; }
bool ex_annotation(void *arg) { ITheFramework *frame = Factory::GetFramework(); ITheEventBoard *board = Factory::GetEventBoard(); Mouse *mouse = ssi_create(Mouse, 0, true); mouse->getOptions()->sr = 50.0; mouse->getOptions()->mask = Mouse::LEFT; ITransformable *cursor_p = frame->AddProvider(mouse, SSI_MOUSE_CURSOR_PROVIDER_NAME); ITransformable *button_p = frame->AddProvider(mouse, SSI_MOUSE_BUTTON_PROVIDER_NAME); frame->AddSensor(mouse); TriggerEventSender *ezero = 0; ezero = ssi_create(TriggerEventSender, 0, true); ezero->getOptions()->triggerType = TriggerEventSender::TRIGGER::NOT_EQUAL; ezero->getOptions()->setAddress("click@mouse"); ezero->getOptions()->minDuration = 0.2; frame->AddConsumer(button_p, ezero, "0.25s"); board->RegisterSender(*ezero); ezero = ssi_create(TriggerEventSender, 0, true); ezero->getOptions()->triggerType = TriggerEventSender::TRIGGER::NOT_EQUAL; ezero->getOptions()->setAddress("click@mouse"); ezero->getOptions()->minDuration = 0.2; ezero->getOptions()->eventType = SSI_ETYPE_STRING; ezero->getOptions()->setEventString("string"); frame->AddConsumer(button_p, ezero, "0.25s"); board->RegisterSender(*ezero); StringEventSender *ssender = ssender = ssi_create(StringEventSender, 0, true); ssender->getOptions()->setAddress("cursor@string"); ssender->getOptions()->mean = true; frame->AddEventConsumer(cursor_p, ssender, board, ezero->getEventAddress()); board->RegisterSender(*ssender); MapEventSender *msender = 0; msender = ssi_create(MapEventSender, 0, true); msender->getOptions()->setAddress("cursor@map"); msender->getOptions()->setKeys("x,y"); frame->AddEventConsumer(cursor_p, msender, board, ezero->getEventAddress()); board->RegisterSender(*msender); msender = ssi_create(MapEventSender, 0, true); msender->getOptions()->setAddress("cursor@map"); msender->getOptions()->setKeys("y,x"); frame->AddEventConsumer(cursor_p, msender, board, ezero->getEventAddress()); board->RegisterSender(*msender); FileAnnotationWriter *annotation = 0; annotation = ssi_create(FileAnnotationWriter, 0, true); annotation->getOptions()->setAnnoPath("discrete_empty_and_string"); annotation->getOptions()->setSchemePath("scheme_discrete.annotation"); annotation->getOptions()->setDefaultLabel("empty"); annotation->getOptions()->defaultConfidence = 0.5f; annotation->getOptions()->setMeta("annotator=hans;role=wurscht"); board->RegisterListener(*annotation, ezero->getEventAddress()); annotation = ssi_create(FileAnnotationWriter, 0, true); annotation->getOptions()->setAnnoPath("discrete_map"); annotation->getOptions()->setSchemePath("scheme_discrete.annotation"); annotation->getOptions()->mapKeyIndex = 1; annotation->getOptions()->setMeta("annotator=hans;role=wurscht"); board->RegisterListener(*annotation, msender->getEventAddress()); annotation = ssi_create(FileAnnotationWriter, 0, true); annotation->getOptions()->setAnnoPath("free_empty_and_string"); annotation->getOptions()->setSchemePath("scheme_free"); annotation->getOptions()->setDefaultLabel("empty"); annotation->getOptions()->defaultConfidence = 0.5f; annotation->getOptions()->setMeta("annotator=hans;role=wurscht"); board->RegisterListener(*annotation, ezero->getEventAddress()); annotation = ssi_create(FileAnnotationWriter, 0, true); annotation->getOptions()->setAnnoPath("free_map"); annotation->getOptions()->setSchemePath("scheme_free"); annotation->getOptions()->mapKeyIndex = 1; annotation->getOptions()->setMeta("annotator=hans;role=wurscht"); board->RegisterListener(*annotation, msender->getEventAddress()); annotation = ssi_create(FileAnnotationWriter, 0, true); annotation->getOptions()->setAnnoPath("continuous"); annotation->getOptions()->setSchemePath("scheme_continuous"); annotation->getOptions()->setMeta("annotator=hans;role=wurscht"); frame->AddConsumer(cursor_p, annotation, "1.0s"); EventMonitor *monitor = ssi_create_id(EventMonitor, 0, "monitor"); monitor->getOptions()->setPos(CONSOLE_WIDTH, 0, 600, 300); board->RegisterListener(*monitor, 0, 60000); board->Start(); frame->Start(); frame->Wait(); frame->Stop(); board->Stop(); frame->Clear(); board->Clear(); return true; }
bool ex_sender_events (void *arg) { Socket::TYPE::List *type = ssi_pcast(Socket::TYPE::List, arg); ITheFramework *frame = Factory::GetFramework(); ITheEventBoard *board = Factory::GetEventBoard(); // start mouse Mouse *mouse = ssi_create(Mouse, 0, true); mouse->getOptions()->mask = Mouse::LEFT; mouse->getOptions()->sendEvent = true; mouse->getOptions()->setAddress("click@mouse"); ITransformable *cursor_p = frame->AddProvider(mouse, SSI_MOUSE_CURSOR_PROVIDER_NAME); frame->AddSensor(mouse); board->RegisterSender(*mouse); MapEventSender *msender = ssi_create(MapEventSender, 0, true); msender->getOptions()->setAddress("cursor@mouse"); msender->getOptions()->setKeys("x,y"); frame->AddEventConsumer(cursor_p, msender, board, mouse->getEventAddress()); board->RegisterSender(*msender); // start sender and receiver SocketEventWriter *socket_event_writer = 0; socket_event_writer = ssi_create(SocketEventWriter, 0, true); socket_event_writer->getOptions()->setUrl(*type, "localhost", 1111); board->RegisterListener(*socket_event_writer, msender->getEventAddress()); socket_event_writer = ssi_create(SocketEventWriter, 0, true); socket_event_writer->getOptions()->setUrl(*type, "localhost", 2222); socket_event_writer->getOptions()->osc = true; socket_event_writer->getOptions()->xml = false; board->RegisterListener(*socket_event_writer, msender->getEventAddress()); SocketEventReader *socket_event_reader = 0; socket_event_reader = ssi_create(SocketEventReader, 0, true); socket_event_reader->getOptions()->setUrl(*type, "localhost", 1111); socket_event_reader->getOptions()->setAddress("click@remote"); board->RegisterSender(*socket_event_reader); socket_event_reader = ssi_create(SocketEventReader, 0, true); socket_event_reader->getOptions()->setUrl(*type, "localhost", 2222); socket_event_reader->getOptions()->osc = true; socket_event_reader->getOptions()->setAddress("click@remote"); board->RegisterSender(*socket_event_reader); EventMonitor *monitor = ssi_create_id (EventMonitor, 0, "monitor"); monitor->getOptions()->setPos(CONSOLE_WIDTH, 0, 600, CONSOLE_HEIGHT); board->RegisterListener(*monitor, socket_event_reader->getEventAddress(), 60000); board->Start(); frame->Start(); frame->Wait(); frame->Stop(); board->Stop(); frame->Clear(); board->Clear(); return true; }
bool ex_gsr_peaks_online(void *args) { ITheEventBoard *board = Factory::GetEventBoard(); ITheFramework *frame = Factory::GetFramework(); Decorator *decorator = ssi_create(Decorator, 0, true); frame->AddDecorator(decorator); FileReader *reader = ssi_create(FileReader, 0, true); reader->getOptions()->setPath("data\\gsr"); reader->getOptions()->block = 0.2; ITransformable *gsr_p = frame->AddProvider(reader, SSI_FILEREADER_PROVIDER_NAME); frame->AddSensor(reader); Butfilt *lowpass = ssi_create(Butfilt, 0, true); lowpass->getOptions()->low = 0.01; lowpass->getOptions()->order = 3; lowpass->getOptions()->type = Butfilt::LOW; lowpass->getOptions()->zero = true; ITransformable *gsr_low = frame->AddTransformer(gsr_p, lowpass, "0.2s"); GSREventSender *gsr_event = ssi_create(GSREventSender, 0, true); gsr_event->getOptions()->tuple = true; gsr_event->setLogLevel(SSI_LOG_LEVEL_DEBUG); frame->AddConsumer(gsr_low, gsr_event, "4.0s"); board->RegisterSender(*gsr_event); EventMonitor *monitor = ssi_create_id(EventMonitor, 0, "monitor"); board->RegisterListener(*monitor, gsr_event->getEventAddress()); SignalPainter *plot = 0; plot = ssi_create_id(SignalPainter, 0, "plot"); plot->getOptions()->setTitle("gsr"); plot->getOptions()->size = 150.0; frame->AddConsumer(gsr_p, plot, "0.2s"); plot = ssi_create_id(SignalPainter, 0, "plot"); plot->getOptions()->setTitle("gsr(lowpassed)"); plot->getOptions()->size = 150.0; frame->AddConsumer(gsr_low, plot, "0.2s"); plot = ssi_create_id(SignalPainter, 0, "plot"); plot->getOptions()->setTitle("peak"); plot->getOptions()->reset = true; frame->AddEventConsumer(gsr_low, plot, board, "peak@"); plot = ssi_create_id(SignalPainter, 0, "plot"); plot->getOptions()->setTitle("slope"); plot->getOptions()->reset = true; frame->AddEventConsumer(gsr_low, plot, board, "slope@"); plot = ssi_create_id(SignalPainter, 0, "plot"); plot->getOptions()->setTitle("drop"); plot->getOptions()->reset = true; frame->AddEventConsumer(gsr_low, plot, board, "drop@"); decorator->add("console", 0, 0, 650, 800); decorator->add("plot*", 650, 0, 400, 400); decorator->add("monitor*", 650, 400, 400, 400); board->Start(); frame->Start(); frame->Wait(); frame->Stop(); board->Stop(); frame->Clear(); board->Clear(); return true; }