Пример #1
0
int main(int argc, char** argv)
{
    astra::initialize();

    set_key_handler();

    astra::StreamSet streamSet;
    astra::StreamReader reader = streamSet.create_reader();

    SampleFrameListener listener;

    reader.stream<astra::DepthStream>().start();

    std::cout << "depthStream -- hFov: "
              << reader.stream<astra::DepthStream>().hFov()
              << " vFov: "
              << reader.stream<astra::DepthStream>().vFov()
              << std::endl;

    reader.add_listener(listener);

    do
    {
        astra_temp_update();
    } while (shouldContinue);

    reader.remove_listener(listener);

    astra::terminate();
}
Пример #2
0
int main(int argc, char** argv)
{
    astra::initialize();

    set_key_handler();

    sf::RenderWindow window(sf::VideoMode(1280, 960), "Hand Viewer");

    astra::StreamSet streamSet;
    astra::StreamReader reader = streamSet.create_reader();

    reader.stream<astra::PointStream>().start();
    reader.stream<astra::HandStream>().start();

    HandFrameListener listener;

    reader.add_listener(listener);

    while (window.isOpen())
    {
        astra_temp_update();

        sf::Event event;
        while (window.pollEvent(event))
        {
            switch (event.type)
            {
            case sf::Event::Closed:
                window.close();
                break;
            case sf::Event::KeyPressed:
                {
                    if (event.key.code == sf::Keyboard::Escape ||
                        (event.key.code == sf::Keyboard::C && event.key.control))
                    {
                        window.close();
                    }
                }
            default:
                break;
            }
        }

        // clear the window with black color
        window.clear(sf::Color::Black);

        listener.draw_to(window);
        window.display();

        if (!shouldContinue)
        {
            window.close();
        }
    }

    astra::terminate();

    return 0;
}
Пример #3
0
int main(int argc, char* argv[])
{
    set_key_handler();

    astra_initialize();

    astra_streamsetconnection_t sensor;

    astra_streamset_open("device/default", &sensor);

    astra_reader_t reader;
    astra_reader_create(sensor, &reader);

    astra_depthstream_t depthStream;
    astra_reader_get_depthstream(reader, &depthStream);

    float hFov, vFov;
    astra_depthstream_get_hfov(depthStream, &hFov);
    astra_depthstream_get_vfov(depthStream, &vFov);

    printf("depth sensor -- hFov: %f radians vFov: %f radians\n", hFov, vFov);

    astra_stream_start(depthStream);

    astra_frame_index_t lastFrameIndex = -1;

    do
    {
        astra_temp_update();

        astra_reader_frame_t frame;
        astra_status_t rc = astra_reader_open_frame(reader, 0, &frame);

        if (rc == ASTRA_STATUS_SUCCESS)
        {
            astra_depthframe_t depthFrame;
            astra_frame_get_depthframe(frame, &depthFrame);

            astra_frame_index_t newFrameIndex;
            astra_depthframe_get_frameindex(depthFrame, &newFrameIndex);

            if (lastFrameIndex == newFrameIndex)
            {
                printf("duplicate frame index: %d\n", lastFrameIndex);
            }
            lastFrameIndex = newFrameIndex;

            print_depth(depthFrame);

            astra_reader_close_frame(&frame);
        }

    } while (shouldContinue);

    astra_reader_destroy(&reader);
    astra_streamset_close(&sensor);

    astra_terminate();
}
Пример #4
0
Evas_Object *init_entrybox(Evas *evas,const char* title,const char *defaultentry,int maxlength,entry_handler handler, Evas_Object *parent)
{

	entry_info_struct *info =
		(entry_info_struct *) malloc(sizeof(entry_info_struct));
    
    info->entry=(char*)malloc(sizeof(char)*(maxlength+1));
    (info->entry)[0]='\0';

    if(strlen(defaultentry) <= maxlength)
    {
        info->curchar = strlen(defaultentry);
        strcpy(info->entry,defaultentry);
    }
    else
        info->curchar = 0;
    
    
	info->maxchar = maxlength;
	info->handler = handler;
	info->parent = parent;

    Evas_Object *win=edje_object_add(evas);
    char *themefile=get_theme_file();

    edje_object_file_set(win,themefile, "dlg_entrybox");
    evas_object_data_set(win,"entry_info",(void *)info);
    set_key_handler(win, &entrybox_handlers);
    int edje_w,edje_h;
    edje_object_size_min_get(win, &edje_w, &edje_h);
    evas_object_resize(win,edje_w,edje_h);
    evas_object_move (win,0,0);
    if(title)
        edje_object_part_text_set(win,"dlg_entrybox/titletext",title);
    edje_object_part_text_set(win,"dlg_entrybox/entrytext",info->entry);
    evas_object_show(win);
    evas_object_focus_set(win,1);
    
    
    
    
    free(themefile);
	return win;
}
Пример #5
0
int main(int argc, char** argv)
{
    astra::initialize();

    set_key_handler();

#ifdef _WIN32
    auto fullscreenStyle = sf::Style::None;
#else
    auto fullscreenStyle = sf::Style::Fullscreen;
#endif

    const sf::VideoMode fullScreenMode = sf::VideoMode::getFullscreenModes()[0];
    const sf::VideoMode windowedMode(1800, 675);

    bool isFullScreen = false;
    sf::RenderWindow window(windowedMode, "Stream Viewer");

    astra::StreamSet streamSet;
    astra::StreamReader reader = streamSet.create_reader();

    reader.stream<astra::PointStream>().start();

    auto depthStream = configure_depth(reader);
    depthStream.start();

    auto colorStream = configure_color(reader);
    colorStream.start();

    auto irStream = configure_ir(reader, false);

    MultiFrameListener listener;
    listener.set_mode(MODE_COLOR);

    reader.add_listener(listener);

    while (window.isOpen())
    {
        astra_temp_update();

        sf::Event event;
        while (window.pollEvent(event))
        {
            switch (event.type)
            {
            case sf::Event::Closed:
                window.close();
                break;
            case sf::Event::KeyPressed:
                {
                    switch (event.key.code)
                    {
                    case sf::Keyboard::Escape:
                        window.close();
                        break;
                    case sf::Keyboard::F:
                        if (isFullScreen)
                        {
                            isFullScreen = false;
                            window.create(windowedMode, "Stream Viewer", sf::Style::Default);
                        }
                        else
                        {
                            isFullScreen = true;
                            window.create(fullScreenMode, "Stream Viewer", fullscreenStyle);
                        }
                        break;
                    case sf::Keyboard::R:
                        depthStream.enable_registration(!depthStream.registration_enabled());
                        break;
                    case sf::Keyboard::M:
                        {
                            const bool newMirroring = !depthStream.mirroring_enabled();
                            depthStream.enable_mirroring(newMirroring);
                            colorStream.enable_mirroring(newMirroring);
                            irStream.enable_mirroring(newMirroring);
                        }
                        break;
                    case sf::Keyboard::G:
                        colorStream.stop();
                        configure_ir(reader, false);
                        listener.set_mode(MODE_IR_16);
                        irStream.start();
                        break;
                    case sf::Keyboard::I:
                        colorStream.stop();
                        configure_ir(reader, true);
                        listener.set_mode(MODE_IR_RGB);
                        irStream.start();
                        break;
                    case sf::Keyboard::O:
                        listener.toggle_depth_overlay();
                        if (listener.get_overlay_depth())
                        {
                            depthStream.enable_registration(true);
                        }
                        break;
                    case sf::Keyboard::P:
                        listener.toggle_paused();
                        break;
                    case sf::Keyboard::C:
                        if (event.key.control)
                        {
                            window.close();
                        }
                        else
                        {
                            irStream.stop();
                            listener.set_mode(MODE_COLOR);
                            colorStream.start();
                        }
                        break;
                    default:
                        break;
                    }
                    break;
                }
            default:
                break;
            }
        }

        // clear the window with black color
        window.clear(sf::Color::Black);
        listener.draw_to(window, sf::Vector2f(0.f, 0.f), sf::Vector2f(window.getSize().x, window.getSize().y));
        window.display();

        if (!shouldContinue)
        {
            window.close();
        }
    }

    astra::terminate();
    return 0;
}