00001 // This is core/vidl/gui/vidl_gui_param_dialog.h 00002 #ifndef vidl_gui_param_dialog_h_ 00003 #define vidl_gui_param_dialog_h_ 00004 //----------------------------------------------------------------------------- 00005 //: 00006 // \file 00007 // \author Matt Leotta 00008 // \date 14 June 2006 00009 // \brief functions to open streams with user input via vgui_dialogs 00010 // 00011 // The functions in this file act as interactive factories. They prompt 00012 // the user with dialog boxes to obtain the required parameters to construct 00013 // a vidl_istream or vidl_ostream. 00014 // 00015 //---------------------------------------------------------------------------- 00016 00017 00018 #include <vcl_vector.h> 00019 #include <vidl/vidl_iidc1394_params.h> 00020 #include <vidl/vidl_istream.h> 00021 #include <vidl/vidl_ostream.h> 00022 00023 00024 // forward declarations 00025 class vidl_image_list_istream; 00026 class vidl_image_list_ostream; 00027 class vidl_ffmpeg_istream; 00028 class vidl_ffmpeg_ostream; 00029 class vidl_dc1394_istream; 00030 class vidl_v4l2_istream; 00031 00032 00033 //: Use vgui dialogs to prompt the user for parameters and open an istream 00034 // Allows the user to select any of the supported istreams 00035 vidl_istream* vidl_gui_open_istream_dialog(); 00036 00037 00038 //: Use vgui dialogs to prompt the user for parameters and open an ostream 00039 // Allows the user to select any of the supported ostreams 00040 vidl_ostream* vidl_gui_open_ostream_dialog(); 00041 00042 00043 //: struct with static members used as a namespace replacement 00044 // Change to a namespace when they are allowed in VXL 00045 struct vidl_gui_param_dialog 00046 { 00047 //: Use vgui dialogs to open an image list istream 00048 static vidl_image_list_istream* image_list_istream(); 00049 00050 //: Use vgui dialogs to open an image list ostream 00051 static vidl_image_list_ostream* image_list_ostream(); 00052 00053 //: Use vgui dialogs to open a FFMPEG istream 00054 static vidl_ffmpeg_istream* ffmpeg_istream(); 00055 00056 //: Use vgui dialogs to open a FFMPEG ostream 00057 static vidl_ffmpeg_ostream* ffmpeg_ostream(); 00058 00059 //: Use vgui dialogs to open a dc1394 istream 00060 static vidl_dc1394_istream* dc1394_istream(); 00061 00062 //: Use vgui dialogs to open a v4l2 istream 00063 static vidl_v4l2_istream* v4l2_istream(); 00064 00065 static bool update_iidc1394_params(vcl_vector<vidl_iidc1394_params:: 00066 feature_options>& features); 00067 }; 00068 00069 00070 #endif // vidl_gui_param_dialog_h_