Go to the documentation of this file.00001 #include "vidfpl_vil_menus.h"
00002
00003 #include <vgui/vgui.h>
00004 #include <vgui/vgui_dialog.h>
00005 #include <vgui/vgui_key.h>
00006 #include <vgui/vgui_menu.h>
00007 #include <vvid/vvid_vil_file_manager.h>
00008
00009 #ifdef HAS_MPEG2
00010 # include <vidl1/vidl1_mpegcodec.h>
00011 # include <vidl1/vidl1_io.h>
00012
00013
00014
00015
00016
00017
00018 static void
00019 vidfpl_vil_load_mpegcodec_callback(vidl1_codec * vc)
00020 {
00021 vgui_dialog dialog( "MPEG player setup");
00022
00023 bool grey_scale = false;
00024 bool demux_video = true;
00025 vcl_string pid = "0x00";
00026 int numframes = -1;
00027
00028 dialog.checkbox("gray scale",grey_scale);
00029 dialog.checkbox("demux",demux_video);
00030 dialog.field("pid",pid);
00031 dialog.field("total frames. if not known, leave it.",numframes);
00032
00033 if ( !dialog.ask())
00034 {
00035 vcl_cout << "vidfpl_vil_load_mpegcodec_callback. did not initialize codec.\n";
00036 }
00037
00038 vidl1_mpegcodec * mpegcodec = vc->castto_vidl1_mpegcodec();
00039 if (!mpegcodec) return;
00040
00041 mpegcodec->set_grey_scale(grey_scale);
00042 if (demux_video) mpegcodec->set_demux_video();
00043 mpegcodec->set_pid(pid.c_str());
00044 mpegcodec->set_number_frames(numframes);
00045 mpegcodec->init();
00046 }
00047
00048 #endif // HAS_MPEG2
00049
00050
00051 void vidfpl_vil_menus::load_video_callback()
00052 {
00053 #ifdef HAS_MPEG2
00054
00055 vidl1_io::load_mpegcodec_callback = &vidfpl_vil_load_mpegcodec_callback;
00056 #endif
00057 vvid_vil_file_manager::instance()->load_video_file();
00058 }
00059
00060 void vidfpl_vil_menus::load_pyramid_video_callback()
00061 {
00062 vvid_vil_file_manager::instance()->load_pyramid_video();
00063 }
00064
00065 void vidfpl_vil_menus::pause_video_callback()
00066 {
00067 vvid_vil_file_manager::instance()->pause_video();
00068 }
00069
00070 void vidfpl_vil_menus::next_frame_callback()
00071 {
00072 vvid_vil_file_manager::instance()->next_frame();
00073 }
00074
00075 void vidfpl_vil_menus::prev_frame_callback()
00076 {
00077 vvid_vil_file_manager::instance()->prev_frame();
00078 }
00079
00080
00081 void vidfpl_vil_menus::start_frame_callback()
00082 {
00083 vvid_vil_file_manager::instance()->start_frame();
00084 }
00085
00086 void vidfpl_vil_menus::end_frame_callback()
00087 {
00088 vvid_vil_file_manager::instance()->end_frame();
00089 }
00090
00091 void vidfpl_vil_menus::play_video_callback()
00092 {
00093 vvid_vil_file_manager::instance()->play_video();
00094 }
00095
00096 void vidfpl_vil_menus::play_pyramid_callback()
00097 {
00098 vvid_vil_file_manager::instance()->play_pyramid();
00099 }
00100
00101 void vidfpl_vil_menus::stop_video_callback()
00102 {
00103 vvid_vil_file_manager::instance()->stop_video();
00104 }
00105
00106 void vidfpl_vil_menus::set_range_params_callback()
00107 {
00108 vvid_vil_file_manager::instance()->set_range_params();
00109 }
00110
00111
00112 void vidfpl_vil_menus::create_box_callback()
00113 {
00114 vvid_vil_file_manager::instance()->create_box();
00115 }
00116
00117 void vidfpl_vil_menus::save_roi_callback()
00118 {
00119 vvid_vil_file_manager::instance()->save_roi();
00120 }
00121
00122 void vidfpl_vil_menus::quit_callback()
00123 {
00124 vvid_vil_file_manager::instance()->quit();
00125 }
00126
00127
00128
00129 vgui_menu vidfpl_vil_menus::get_menu()
00130 {
00131 vgui_menu menubar;
00132 vgui_menu menufile;
00133 vgui_menu menuview;
00134 vgui_menu menuedit;
00135 vgui_menu menutrack;
00136 vgui_menu menuprocess;
00137 vgui_menu menudebug;
00138
00139
00140 menufile.add( "Load", load_video_callback);
00141 menufile.add( "Load Pyramid", load_pyramid_video_callback);
00142
00143 menufile.add( "Save with ROI", save_roi_callback);
00144 menufile.add( "Quit", quit_callback,(vgui_key)'q', vgui_CTRL);
00145
00146
00147
00148 menuview.add( "Start Frame", start_frame_callback);
00149 menuview.add( "End Frame", end_frame_callback);
00150 menuview.add( "Play", play_video_callback);
00151 menuview.add( "Play Pyramid", play_pyramid_callback);
00152 menuview.add( "Pause", pause_video_callback,(vgui_key)'p', vgui_CTRL);
00153 menuview.add( "Next", next_frame_callback,(vgui_key)'f', vgui_CTRL);
00154 menuview.add( "Prev", prev_frame_callback,(vgui_key)'b', vgui_CTRL);
00155 menuview.add( "Stop", stop_video_callback,(vgui_key)'s', vgui_CTRL);
00156 menuview.add( "Set Range Map", set_range_params_callback);
00157
00158
00159 menuedit.add( "Create Box", create_box_callback);
00160
00161
00162
00163
00164
00165 menubar.add( "File", menufile);
00166 menubar.add( "View", menuview);
00167 menubar.add( "Edit", menuedit);
00168 menubar.add( "Track", menutrack);
00169 menubar.add( "Process", menuprocess);
00170 menubar.add( "Debug", menudebug);
00171 return menubar;
00172 }