X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fvicon.h;h=86474095411c66e3d205f3d2771efb1a8faf4fd8;hb=refs%2Fheads%2Fmaster;hp=544e1f963031db6e20b85a0a105547821e82569c;hpb=230f4fdce9d4b62d8780702bb406a1f5f629a3c3;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/guicast/vicon.h b/cinelerra-5.1/guicast/vicon.h index 544e1f96..86474095 100644 --- a/cinelerra-5.1/guicast/vicon.h +++ b/cinelerra-5.1/guicast/vicon.h @@ -1,3 +1,24 @@ +/* + * CINELERRA + * Copyright (C) 2016-2020 William Morrow + * + * 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 __VICON_H__ #define __VICON_H__ @@ -24,7 +45,6 @@ public: class VIFrame { unsigned char *img_data; - VFrame *vfrm; public: VIFrame(int ww, int hh, int vcmdl) { int size = BC_CModels::calculate_datasize(ww, hh, -1, vcmdl); @@ -32,8 +52,7 @@ public: vfrm = new VFrame(img_data, -1, ww, hh, vcmdl, -1); } ~VIFrame() { delete vfrm; delete [] img_data; } - - operator VFrame *() { return vfrm; } + VFrame *vfrm; }; class VIcon @@ -53,7 +72,7 @@ public: void init_audio(int audio_size); virtual int64_t set_seq_no(int64_t no) { return seq_no = no; } - virtual VFrame *frame() { return *images[seq_no]; } + virtual VFrame *frame() { return images[seq_no]->vfrm; } virtual int get_vx() { return 0; } virtual int get_vy() { return 0; } virtual void load_audio() {} @@ -76,13 +95,16 @@ public: Timer *timer; Condition *draw_lock; ViewPopup *view_win; - VIcon *viewing, *vicon; + VIcon *viewing, *vicon, *solo; int vw, vh, view_w, view_h; int draw_x0, draw_y0; int draw_x1, draw_y1; int img_dirty, win_dirty; double refresh_rate; + int64_t now; + int64_t draw_flash; int64_t stop_age; + int64_t seq_no; ArrayListt_heap; VIcon *low_vicon(); @@ -91,7 +113,7 @@ public: void run(); void flash(); int draw(VIcon *vicon); - int update_view(); + int update_view(int do_audio); void draw_images(); void start_drawing(); void stop_drawing(); @@ -105,7 +127,8 @@ public: int zoom_scale(int dir); void close_view_popup(); void hide_vicons(int v=1); - virtual ViewPopup *new_view_window(); + int show_vicon(VIcon *next); + virtual ViewPopup *new_view_window(ViewPopup *vpopup); virtual bool visible(VIcon *vicon, int x, int y); virtual void drawing_started() {}