device_status mock_depth_stream::on_initialize() { // Populate modes add_available_mode(stream_mode(320, 240, 30, ASTRA_PIXEL_FORMAT_DEPTH_MM)); add_available_mode(stream_mode(320, 240, 60, ASTRA_PIXEL_FORMAT_DEPTH_MM)); add_available_mode(stream_mode(640, 480, 30, ASTRA_PIXEL_FORMAT_DEPTH_MM)); add_available_mode(stream_mode(640, 480, 60, ASTRA_PIXEL_FORMAT_DEPTH_MM)); set_active_mode(*modes_begin()); generator_ = std::make_unique<depth_generator>(active_mode().width(), active_mode().height()); return device_status_value::ok; }
device_status mock_ir_stream::on_initialize() { // Populate modes add_available_mode(stream_mode(320, 240, 30, ASTRA_PIXEL_FORMAT_RGB888)); add_available_mode(stream_mode(320, 240, 60, ASTRA_PIXEL_FORMAT_RGB888)); add_available_mode(stream_mode(640, 480, 30, ASTRA_PIXEL_FORMAT_RGB888)); add_available_mode(stream_mode(640, 480, 60, ASTRA_PIXEL_FORMAT_RGB888)); set_active_mode(*modes_begin()); generator_ = astra::make_unique<infrared_generator>(active_mode().width(), active_mode().height()); return device_status_value::ok; }
device_status mock_depth_stream::on_read_into(void* dest, std::size_t size, std::int32_t timeout) { int width = active_mode().width(); int height = active_mode().height(); std::stringstream ss; ss << "depth" << std::endl << active_mode() << std::endl; if (flags().has_flags()) { ss << "(" << flags() << ")"; } generator_->set_size(width, height); generator_->set_overlayText(ss.str()); generator_->set_overlayColor(255, 0, 0, 255); generator_->generate(); const std::uint8_t* src = generator_->pixels(); std::uint16_t* pixelDest = static_cast<std::uint16_t*>(dest); for(int y = 0; y < height; y++) { for(int x = 0; x < width ; x++) { std::size_t offset = (y * width + x) * 4; float r = src[offset]; std::uint16_t mm = r > 128 ? 2000 : 50000; pixelDest[y * width + x] = mm; } } return device_status_value::ok; }
device_status mock_ir_stream::on_read_into(void* dest, std::size_t size, std::int32_t timeout) { int width = active_mode().width(); int height = active_mode().height(); std::stringstream ss; ss << "infrared" << std::endl << active_mode() << std::endl; if (flags().has_flags()) { ss << "(" << flags() << ")"; } generator_->set_size(width, height); generator_->set_overlayText(ss.str()); generator_->set_overlayColor(0, 255, 255, 255); generator_->generate(); const std::uint8_t* src = reinterpret_cast<const std::uint8_t*>(generator_->pixels()); orbbec::copy_rgba_to_rgb(reinterpret_cast<std::uint8_t*>(dest), src, width * height); return device_status_value::ok; }
void BeyeContext::main_loop() { __filesize_t OldCurrFilePos; /** means previous File position */ int ch; __filesize_t savep = 0,cfp,nfp,flen; unsigned long lwidth; plugin_position rc; Search& s = search(); bm_file().seek(LastOffset,binary_stream::Seek_Set); drawPrompt(); rc.textshift=0; rc = active_mode().paint(KE_SUPERKEY,rc.textshift); bm_file().seek(LastOffset,binary_stream::Seek_Set); draw_title(rc.lastbyte); while(1) { unsigned che; ch = GetEvent(drawPrompt,MainActionFromMenu,NULL); nfp = cfp = OldCurrFilePos = tell(); flen = flength(); lwidth = active_mode().curr_line_width(); che = ch & 0x00FF; if(((che >= '0' && che <= '9') || (che >= 'A' && che <= 'Z') || (che >= 'a' && che <= 'z') || ch == KE_BKSPACE) && (active_mode().flags() & Plugin::UseCodeGuide) == Plugin::UseCodeGuide) { nfp = codeguider().get_go_address(ch); goto GO; } switch(ch) { case KE_CTL_F(1): if(active_mode().action_F1()) { ch = KE_SUPERKEY; drawPrompt(); } break; case KE_CTL_F(2): if(active_mode().action_F2()) { ch = KE_SUPERKEY; drawPrompt(); } break; case KE_CTL_F(3): if(active_mode().action_F3()) { ch = KE_SUPERKEY; drawPrompt(); } break; case KE_CTL_F(4): if(active_mode().action_F4()) { ch = KE_SUPERKEY; drawPrompt(); } break; case KE_CTL_F(5): if(active_mode().action_F5()) { ch = KE_SUPERKEY; drawPrompt(); } break; case KE_CTL_F(6): if(active_mode().action_F6()) { ch = KE_SUPERKEY; drawPrompt(); } break; case KE_CTL_F(7): if(active_mode().action_F7()) { ch = KE_SUPERKEY; drawPrompt(); } break; case KE_CTL_F(8): if(active_mode().action_F8()) { ch = KE_SUPERKEY; drawPrompt(); } break; case KE_CTL_F(9): if(active_mode().action_F9()) { ch = KE_SUPERKEY; drawPrompt(); } break; case KE_CTL_F(10): if(active_mode().action_F10()) { ch = KE_SUPERKEY; drawPrompt(); } break; case KE_ALT_F(1): nfp=bin_format().action_F1(); break; case KE_ALT_F(2): nfp=bin_format().action_F2(); break; case KE_ALT_F(3): nfp=bin_format().action_F3(); break; case KE_ALT_F(4): nfp=bin_format().action_F4(); break; case KE_ALT_F(5): nfp=bin_format().action_F5(); break; case KE_ALT_F(6): nfp=bin_format().action_F6(); break; case KE_ALT_F(7): nfp=bin_format().action_F7(); break; case KE_ALT_F(8): nfp=bin_format().action_F8(); break; case KE_ALT_F(9): nfp=bin_format().action_F9(); break; case KE_ALT_F(10): nfp=bin_format().action_F10(); break; case KE_SUPERKEY: goto DRAW; case KE_F(1) : About(); continue; default : continue; case KE_SHIFT_F(1): active_mode().help(); break; case KE_F(10): case KE_ESCAPE : return; case KE_ENTER: quick_select_mode(); drawPrompt(); ch = KE_SUPERKEY; break; case KE_F(2): if(select_mode()) ch = KE_SUPERKEY; break; case KE_F(3): if(new_source()) { ch = KE_SUPERKEY; s.reset(); PaintTitle(); } break; case KE_F(4): __filesize_t sfp; sfp = tell(); active_mode().misckey_action(); ch = KE_SUPERKEY; PaintTitle(); drawPrompt(); bm_file().seek(sfp,binary_stream::Seek_Set); break; case KE_F(5): { static __filesize_t shift = 0; static unsigned long flags = GJDLG_FILE_TOP; if(GetJumpDlg(&shift,&flags)) { switch(flags&0xFF) { default: case GJDLG_PERCENTS: shift=shift>100?100:shift; nfp = flength()*shift/100; break; case GJDLG_FILE_TOP: nfp = shift; break; case GJDLG_RELATIVE: nfp += (long)shift; break; case GJDLG_REL_EOF: nfp = flength()+(long)shift; break; case GJDLG_VIRTUAL: __filesize_t temp_fp; nfp = shift; temp_fp = bin_format().va2pa(shift); if(temp_fp==Plugin::Bad_Address) ErrMessageBox(NOT_ENTRY,""); else nfp = temp_fp; break; } if((active_mode().flags() & Plugin::UseCodeGuide) == Plugin::UseCodeGuide) codeguider().add_back_address(); ch = KE_SUPERKEY; } } break; case KE_SHIFT_F(5): { WhereAMI wami(beye_context()); nfp = wami.run(nfp); } break; case KE_F(6): bm_file().reread(); s.reset(); ch = KE_SUPERKEY; PaintTitle(); break; case KE_SHIFT_F(6): select_sysinfo(); break; case KE_F(7): nfp = s.run(false); ch = KE_JUSTFIND; break; case KE_SHIFT_F(7): nfp = s.run(true); ch = KE_JUSTFIND; break; case KE_F(8): nfp = bin_format().show_header(); break; case KE_SHIFT_F(8): select_tool(); break; case KE_F(9): { class Setup* setup = new class Setup(*this); setup->run(); delete setup; } break; case KE_SHIFT_F(10): if(FileUtils()) { s.reset(); ch = KE_SUPERKEY; PaintTitle(); } break; case KE_HOME: rc.textshift = 0; break; case KE_END: rc.textshift = active_mode().get_max_line_length() - tconsole().vio_width()/2; break; case KE_UPARROW: nfp = cfp - active_mode().prev_line_width(); break; case KE_DOWNARROW: nfp = cfp + active_mode().curr_line_width(); break; case KE_RIGHTARROW: if((active_mode().flags() & Plugin::Text) == Plugin::Text) rc.textshift+=active_mode().get_symbol_size(); else nfp = cfp + active_mode().get_symbol_size(); break; case KE_LEFTARROW: if((active_mode().flags() & Plugin::Text) == Plugin::Text) rc.textshift-=active_mode().get_symbol_size(); else nfp = cfp - active_mode().get_symbol_size(); if(rc.textshift < 0) rc.textshift = 0; break; case KE_CTL_RIGHTARROW: if((active_mode().flags() & Plugin::Text) == Plugin::Text) rc.textshift+=8*active_mode().get_symbol_size(); else nfp = cfp + 8*active_mode().get_symbol_size(); break; case KE_CTL_LEFTARROW: if((active_mode().flags() & Plugin::Text) == Plugin::Text) rc.textshift-=8*active_mode().get_symbol_size(); else nfp = cfp - 8*active_mode().get_symbol_size(); if(rc.textshift < 0) rc.textshift = 0; break; case KE_PGUP: nfp = cfp - active_mode().prev_page_size(); break; case KE_PGDN: nfp = cfp + active_mode().curr_page_size(); break; case KE_CTL_PGUP: nfp = 0; break; case KE_CTL_PGDN: nfp = flen; break; case KE_CTL_(O): /** User screen */ { unsigned evt; main_wnd().hide(); title_wnd().hide(); do { evt = GetEvent(drawEmptyPrompt,NULL,NULL); } while(!(evt == KE_ESCAPE || evt == KE_F(10) || evt == KE_CTL_(O))); main_wnd().show(); title_wnd().show(); } continue; } GO: if(cfp != nfp && nfp != Plugin::Bad_Address) { unsigned long twidth = ( active_mode().flags() & Plugin::Text ) == Plugin::Text ? active_mode().get_symbol_size() : ( active_mode().flags() & Plugin::Disasm ) == Plugin::Disasm ? 1 : lwidth; __filesize_t p = flen - twidth; if((__fileoff_t)nfp < 0) nfp = 0; if(nfp > 0) if(nfp > p) nfp = p; } bm_file().seek(nfp,binary_stream::Seek_Set); DRAW: if((active_mode().flags() & Plugin::Text) != Plugin::Text) savep = tell(); rc = active_mode().paint(ch,rc.textshift); if((active_mode().flags() & Plugin::Text) != Plugin::Text) bm_file().seek(savep,binary_stream::Seek_Set); draw_title(rc.lastbyte); } }
void mock_depth_stream::refresh_conversion_cache() { populate_conversion_cache(hFov(), vFov(), active_mode().width(), active_mode().height(), conversionCache_); }