core/vidl/gui/vidl_gui_param_dialog.h
Go to the documentation of this file.
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_