Credit Andrew - fix vorbis audio which was scratchy and ensure aging plugin does...
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / deinterlace-cv / deinterwindow-cv.h
1
2 /*
3  * CINELERRA
4  * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
5  * Copyright (C) 2003-2016 Cinelerra CV contributors
6  *
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.
11  *
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.
16  *
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
20  *
21  */
22
23 #ifndef DEINTERWINDOW_H
24 #define DEINTERWINDOW_H
25
26
27 class DeInterlaceThread;
28 class DeInterlaceWindow;
29
30 #include "guicast.h"
31 #include "mutex.h"
32 #include "deinterlace-cv.h"
33 #include "pluginclient.h"
34
35
36 class DeInterlaceOption;
37 class DeInterlaceMode;
38 class DeInterlaceDominanceTop;
39 class DeInterlaceDominanceBottom;
40 class DeInterlaceAdaptive;
41 class DeInterlaceThreshold;
42
43 class DeInterlaceWindow : public PluginClientWindow
44 {
45 public:
46         DeInterlaceWindow(DeInterlaceMain *client);
47         ~DeInterlaceWindow();
48
49         void create_objects();
50         int set_mode(int mode, int recursive);
51         void get_status_string(char *string, int changed_rows);
52
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;
60         BC_Title *status;
61 };
62
63 class DeInterlaceOption : public BC_Radial
64 {
65 public:
66         DeInterlaceOption(DeInterlaceMain *client,
67                 DeInterlaceWindow *window,
68                 int output,
69                 int x,
70                 int y,
71                 char *text);
72         ~DeInterlaceOption();
73         int handle_event();
74
75         DeInterlaceMain *client;
76         DeInterlaceWindow *window;
77         int output;
78 };
79
80 class DeInterlaceAdaptive : public BC_CheckBox
81 {
82 public:
83         DeInterlaceAdaptive(DeInterlaceMain *client, int x, int y);
84         int handle_event();
85         DeInterlaceMain *client;
86 };
87
88 class DeInterlaceDominanceTop : public BC_Radial
89 {
90 public:
91         DeInterlaceDominanceTop(DeInterlaceMain *client, DeInterlaceWindow *window, int x, int y, char * title);
92         int handle_event();
93         DeInterlaceMain *client;
94         DeInterlaceWindow *window;
95
96 };
97 class DeInterlaceDominanceBottom : public BC_Radial
98 {
99 public:
100         DeInterlaceDominanceBottom(DeInterlaceMain *client, DeInterlaceWindow *window, int x, int y, const char * title);
101         int handle_event();
102         DeInterlaceMain *client;
103         DeInterlaceWindow *window;
104 };
105
106 class DeInterlaceThreshold : public BC_IPot
107 {
108 public:
109         DeInterlaceThreshold(DeInterlaceMain *client, int x, int y);
110         ~DeInterlaceThreshold();
111
112         int handle_event();
113         DeInterlaceMain *client;
114         BC_Title *title_caption;
115 };
116
117
118
119 class DeInterlaceMode : public BC_PopupMenu
120 {
121 public:
122         DeInterlaceMode(DeInterlaceMain *client,
123                 DeInterlaceWindow *window,
124                 int x,
125                 int y);
126         void create_objects();
127         static char* to_text(int shape);
128         static int from_text(char *text);
129         int handle_event();
130         DeInterlaceMain *plugin;
131         DeInterlaceWindow *gui;
132 };
133
134
135 #endif