00001 #ifndef VIDEOWINDOW_H 00002 #define VIDEOWINDOW_H 00003 00004 00005 #include "defaults.inc" 00006 #include "mwindow.inc" 00007 #include "thread.h" 00008 #include "vframe.inc" 00009 #include "videowindowgui.inc" 00010 00011 00012 class VideoWindow : public Thread 00013 { 00014 public: 00015 VideoWindow(MWindow *mwindow); 00016 ~VideoWindow(); 00017 00018 int create_objects(); 00019 int init_window(); 00020 int load_defaults(Defaults *defaults); 00021 int update_defaults(Defaults *defaults); 00022 int get_aspect_ratio(float &aspect_w, float &aspect_h); 00023 int fix_size(int &w, int &h, int width_given, float aspect_ratio); 00024 int get_full_sizes(int &w, int &h); 00025 void run(); 00026 00027 int show_window(); 00028 int hide_window(); 00029 int resize_window(); 00030 int original_size(); // Put the window at its original size 00031 int reset(); 00032 int init_video(); 00033 int stop_video(); 00034 int update(BC_Bitmap *frame); 00035 int get_w(); 00036 int get_h(); 00037 int start_cropping(); 00038 int stop_cropping(); 00039 BC_Bitmap* get_bitmap(); // get a bitmap for playback 00040 00041 // allocated according to playback buffers 00042 float **peak_history; 00043 00044 int video_visible; 00045 int video_cropping; // Currently performing a cropping operation 00046 // float zoom_factor; 00047 int video_window_w; // Horizontal size of the window independant of frame size 00048 VFrame **vbuffer; // output frame buffer 00049 VideoWindowGUI *gui; 00050 MWindow *mwindow; 00051 }; 00052 00053 00054 00055 00056 00057 #endif
1.4.4