dvb chan tuner api upgrade, slip/ripple handle drag keyfrm fix, load menu tweaks
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / yuv / yuvwindow.h
1
2 /*
3  * CINELERRA
4  * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20  */
21
22 #ifndef YUVWINDOW_H
23 #define YUVWINDOW_H
24
25 #include "bcbase.h"
26
27 class YUVThread;
28 class YUVWindow;
29
30 #include "filexml.h"
31 #include "mutex.h"
32 #include "yuv.h"
33
34 class YUVThread : public Thread
35 {
36 public:
37         YUVThread(YUVMain *client);
38         ~YUVThread();
39
40         void run();
41
42         Mutex gui_started; // prevent loading data until the GUI is started
43         YUVMain *client;
44         YUVWindow *window;
45 };
46
47 class YSlider;
48 class USlider;
49 class VSlider;
50 class AutomatedFn;
51
52 class YUVWindow : public BC_Window
53 {
54 public:
55         YUVWindow(YUVMain *client);
56         ~YUVWindow();
57
58         void create_objects();
59         int close_event();
60
61         YUVMain *client;
62         YSlider *y_slider;
63         USlider *u_slider;
64         VSlider *v_slider;
65         AutomatedFn *automation[3];
66 };
67
68 class YSlider : public BC_ISlider
69 {
70 public:
71         YSlider(YUVMain *client, int x, int y);
72         ~YSlider();
73         int handle_event();
74
75         YUVMain *client;
76 };
77
78 class USlider : public BC_ISlider
79 {
80 public:
81         USlider(YUVMain *client, int x, int y);
82         ~USlider();
83         int handle_event();
84
85         YUVMain *client;
86 };
87
88 class VSlider : public BC_ISlider
89 {
90 public:
91         VSlider(YUVMain *client, int x, int y);
92         ~VSlider();
93         int handle_event();
94
95         YUVMain *client;
96 };
97
98 class AutomatedFn : public BC_CheckBox
99 {
100 public:
101         AutomatedFn(YUVMain *client, YUVWindow *window, int x, int y, int number);
102         ~AutomatedFn();
103         int handle_event();
104
105         YUVMain *client;
106         YUVWindow *window;
107         int number;
108 };
109
110
111 #endif