add new boxblur plugin, mods to videoscope, fix segv for menu btns kfrm-tweak/kfrm...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / x10tv.h
1 #ifndef __X10TV_H__
2 #define __X10TV_H__
3 #ifdef HAVE_X10TV
4
5 #include "remotecontrol.h"
6 #include "thread.h"
7
8 #define X10_A           0x001e
9 #define X10_B           0x0030
10 #define X10_POWER       0x0074
11 #define X10_TV          0x0179
12 #define X10_DVD         0x0185
13 #define X10_WWW         0x0096
14 #define X10_BOOK        0x009c
15 #define X10_EDIT        0x00b0
16 #define X10_VOLDN       0x0072
17 #define X10_VOLUP       0x0073
18 #define X10_MUTE        0x0071
19 #define X10_CH_DN       0x0193
20 #define X10_CH_UP       0x0192
21 #define X10_1           0x0201
22 #define X10_2           0x0202
23 #define X10_3           0x0203
24 #define X10_4           0x0204
25 #define X10_5           0x0205
26 #define X10_6           0x0206
27 #define X10_7           0x0207
28 #define X10_8           0x0208
29 #define X10_9           0x0209
30 #define X10_MENU        0x008b
31 #define X10_0           0x0200
32 #define X10_SETUP       0x008d
33 #define X10_C           0x002e
34 #define X10_UP          0x0067
35 #define X10_D           0x0020
36 #define X10_PROPS       0x0082
37 #define X10_LT          0x0069
38 #define X10_OK          0x0160
39 #define X10_RT          0x006a
40 #define X10_SCRN        0x0177
41 #define X10_E           0x0012
42 #define X10_DN          0x006c
43 #define X10_F           0x0021
44 #define X10_REW         0x00a8
45 #define X10_PLAY        0x00cf
46 #define X10_FWD         0x00d0
47 #define X10_REC         0x00a7
48 #define X10_STOP        0x00a6
49 #define X10_PAUSE       0x0077
50
51 // unknown keysyms
52 //#define X10_NEXT      0x0000
53 //#define X10_PREV      0x0000
54 //#define X10_INFO      0x0000
55 //#define X10_HOME      0x0000
56 //#define X10_END       0x0000
57 //#define X10_SELECT    0x0000
58
59 struct input_event;
60
61 class X10TV : public Thread
62 {
63 public:
64         X10TV(MWindow *mwindow, int *ifd, int nfds);
65         ~X10TV();
66
67         void stop();
68         void start();
69         static int open_usb_inputs(int vendor, int product, int &version,
70                         int *ifds, int nfds);
71         static X10TV *probe(MWindow *mwindow);
72         void run();
73         void handle_event(int fd);
74         int check_menu_keys(int code);
75         virtual int process_code() { return 1; }
76
77         MWindow *mwindow;
78         input_event *ev;
79         int done;
80         int *ifds, nfds;
81         int last_code, code;
82         fd_set rfds;
83         int mfd;
84 };
85
86 class X10TVCWindowHandler : public RemoteHandler
87 {
88 public:
89         X10TVCWindowHandler(X10TV *wintv, RemoteControl *remote_control);
90         int x10tv_process_code(int code);
91         int process_key(int key);
92         int is_x10tv() { return 1; }
93
94         X10TV *x10tv;
95 };
96
97 class X10TVRecordHandler : public RemoteHandler
98 {
99 public:
100         X10TVRecordHandler(X10TV *wintv, RemoteControl *remote_control);
101         int wintv_process_code(int code);
102         int process_key(int key);
103         int is_x10tv() { return 1; }
104
105         X10TV *x10tv;
106 };
107
108 #endif
109 #endif