cefb6440f52ff160e5ba91d5fd1a6275d8c0d257
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / wintv.h
1 #ifndef __WINTV_H__
2 #define __WINTV_H__
3 // as of 2020/01/06 using kernel version 5.3.16
4 //  a patch is needed for: drivers/media/usb/em28xx/em28xx-rc.ko
5 //  prototype in thirdparty/src/em28xx-input.patch1
6 //#define HAVE_WINTV
7 #ifdef HAVE_WINTV
8
9 #include "remotecontrol.h"
10 #include "thread.h"
11
12 #define WTV_OK          0x0160
13 #define WTV_LT          0x0069
14 #define WTV_UP          0x0067
15 #define WTV_RT          0x006a
16 #define WTV_DN          0x006c
17 #define WTV_HOME        0x0162
18 #define WTV_BACK        0x00ae
19 #define WTV_MENU        0x008b
20 #define WTV_TV          0x0179
21 #define WTV_POWER       0x0074
22 #define WTV_VOLUP       0x0073
23 #define WTV_VOLDN       0x0072
24 #define WTV_CH_UP       0x0192
25 #define WTV_CH_DN       0x0193
26 #define WTV_1           0x0201
27 #define WTV_2           0x0202
28 #define WTV_3           0x0203
29 #define WTV_4           0x0204
30 #define WTV_5           0x0205
31 #define WTV_6           0x0206
32 #define WTV_7           0x0207
33 #define WTV_8           0x0208
34 #define WTV_9           0x0209
35 #define WTV_TEXT        0x0184
36 #define WTV_0           0x0200
37 #define WTV_CC          0x0172
38 #define WTV_BOX         0x0080
39 #define WTV_START       0x0195
40 #define WTV_REV         0x00a8
41 #define WTV_STOP        0x0077
42 #define WTV_PLAY        0x00cf
43 #define WTV_FWD         0x00d0
44 #define WTV_END         0x0197
45 #define WTV_MUTE        0x0071
46 #define WTV_PREV        0x019c
47 #define WTV_RED         0x00a7
48
49 struct input_event;
50
51 class WinTV : public Thread
52 {
53 public:
54         WinTV(MWindow *mwindow, int ifd);
55         ~WinTV();
56
57         void stop();
58         void start();
59         static int open_usb_input(int vendor, int product, int &version);
60         static WinTV *probe(MWindow *mwindow);
61         void run();
62         void handle_event();
63         int check_menu_keys(int code);
64         virtual int process_code() { return 1; }
65
66         MWindow *mwindow;
67         input_event *ev;
68         int done, ifd;
69         int last_code, code;
70 };
71
72 class WinTVCWindowHandler : public RemoteHandler
73 {
74 public:
75         WinTVCWindowHandler(WinTV *wintv, RemoteControl *remote_control);
76         int wintv_process_code(int code);
77         int process_key(int key);
78
79         WinTV *wintv;
80 };
81
82 class WinTVRecordHandler : public RemoteHandler
83 {
84 public:
85         WinTVRecordHandler(WinTV *wintv, RemoteControl *remote_control);
86         int wintv_process_code(int code);
87         int process_key(int key);
88
89         WinTV *wintv;
90 };
91
92 #endif
93 #endif