4 * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
5 * Copyright (C) 2003-2016 Cinelerra CV contributors
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 #ifndef DEINTERWINDOW_H
24 #define DEINTERWINDOW_H
27 class DeInterlaceThread;
28 class DeInterlaceWindow;
32 #include "deinterlace-cv.h"
33 #include "pluginclient.h"
36 class DeInterlaceOption;
37 class DeInterlaceMode;
38 class DeInterlaceDominanceTop;
39 class DeInterlaceDominanceBottom;
40 class DeInterlaceAdaptive;
41 class DeInterlaceThreshold;
43 class DeInterlaceWindow : public PluginClientWindow
46 DeInterlaceWindow(DeInterlaceMain *client);
49 void create_objects();
50 int set_mode(int mode, int recursive);
51 void get_status_string(char *string, int changed_rows);
53 DeInterlaceMain *client;
54 DeInterlaceMode *mode;
55 DeInterlaceAdaptive *adaptive;
56 DeInterlaceDominanceTop *dominance_top;
57 DeInterlaceDominanceBottom *dominance_bottom;
58 DeInterlaceThreshold *threshold;
59 int optional_controls_x,optional_controls_y;
63 class DeInterlaceOption : public BC_Radial
66 DeInterlaceOption(DeInterlaceMain *client,
67 DeInterlaceWindow *window,
75 DeInterlaceMain *client;
76 DeInterlaceWindow *window;
80 class DeInterlaceAdaptive : public BC_CheckBox
83 DeInterlaceAdaptive(DeInterlaceMain *client, int x, int y);
85 DeInterlaceMain *client;
88 class DeInterlaceDominanceTop : public BC_Radial
91 DeInterlaceDominanceTop(DeInterlaceMain *client, DeInterlaceWindow *window, int x, int y, char * title);
93 DeInterlaceMain *client;
94 DeInterlaceWindow *window;
97 class DeInterlaceDominanceBottom : public BC_Radial
100 DeInterlaceDominanceBottom(DeInterlaceMain *client, DeInterlaceWindow *window, int x, int y, const char * title);
102 DeInterlaceMain *client;
103 DeInterlaceWindow *window;
106 class DeInterlaceThreshold : public BC_IPot
109 DeInterlaceThreshold(DeInterlaceMain *client, int x, int y);
110 ~DeInterlaceThreshold();
113 DeInterlaceMain *client;
114 BC_Title *title_caption;
119 class DeInterlaceMode : public BC_PopupMenu
122 DeInterlaceMode(DeInterlaceMain *client,
123 DeInterlaceWindow *window,
126 void create_objects();
127 static char* to_text(int shape);
128 static int from_text(char *text);
130 DeInterlaceMain *plugin;
131 DeInterlaceWindow *gui;