X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fvideowindow.h;fp=cinelerra-5.1%2Fcinelerra%2Fvideowindow.h;h=b8fe1b2a2bc3f4d20c50a6423f40c2c07865f6e4;hb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;hp=0000000000000000000000000000000000000000;hpb=52fcc46226f9df46f9ce9d0566dc568455a7db0b;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/videowindow.h b/cinelerra-5.1/cinelerra/videowindow.h new file mode 100644 index 00000000..b8fe1b2a --- /dev/null +++ b/cinelerra-5.1/cinelerra/videowindow.h @@ -0,0 +1,78 @@ + +/* + * CINELERRA + * Copyright (C) 2008 Adam Williams + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef VIDEOWINDOW_H +#define VIDEOWINDOW_H + + +#include "bchash.inc" +#include "mwindow.inc" +#include "thread.h" +#include "vframe.inc" +#include "videowindowgui.inc" + + +class VideoWindow : public Thread +{ +public: + VideoWindow(MWindow *mwindow); + ~VideoWindow(); + + void create_objects(); + int init_window(); + int load_defaults(BC_Hash *defaults); + int update_defaults(BC_Hash *defaults); + int get_aspect_ratio(float &aspect_w, float &aspect_h); + int fix_size(int &w, int &h, int width_given, float aspect_ratio); + int get_full_sizes(int &w, int &h); + void run(); + + int show_window(); + int hide_window(); + int resize_window(); + int original_size(); // Put the window at its original size + int reset(); + int init_video(); + int stop_video(); + int update(BC_Bitmap *frame); + int get_w(); + int get_h(); + int start_cropping(); + int stop_cropping(); + BC_Bitmap* get_bitmap(); // get a bitmap for playback + +// allocated according to playback buffers + float **peak_history; + + int video_visible; + int video_cropping; // Currently performing a cropping operation +// float zoom_factor; + int video_window_w; // Horizontal size of the window independant of frame size + VFrame **vbuffer; // output frame buffer + VideoWindowGUI *gui; + MWindow *mwindow; +}; + + + + + +#endif