X-Git-Url: https://cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fwintv.h;fp=cinelerra-5.1%2Fcinelerra%2Fwintv.h;h=cefb6440f52ff160e5ba91d5fd1a6275d8c0d257;hb=4c207ab325a8e8e6b79a9a18d4647273b5f59f93;hp=0000000000000000000000000000000000000000;hpb=3878a693e0ea8626268a95333a11954cf9c10930;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/wintv.h b/cinelerra-5.1/cinelerra/wintv.h new file mode 100644 index 00000000..cefb6440 --- /dev/null +++ b/cinelerra-5.1/cinelerra/wintv.h @@ -0,0 +1,93 @@ +#ifndef __WINTV_H__ +#define __WINTV_H__ +// as of 2020/01/06 using kernel version 5.3.16 +// a patch is needed for: drivers/media/usb/em28xx/em28xx-rc.ko +// prototype in thirdparty/src/em28xx-input.patch1 +//#define HAVE_WINTV +#ifdef HAVE_WINTV + +#include "remotecontrol.h" +#include "thread.h" + +#define WTV_OK 0x0160 +#define WTV_LT 0x0069 +#define WTV_UP 0x0067 +#define WTV_RT 0x006a +#define WTV_DN 0x006c +#define WTV_HOME 0x0162 +#define WTV_BACK 0x00ae +#define WTV_MENU 0x008b +#define WTV_TV 0x0179 +#define WTV_POWER 0x0074 +#define WTV_VOLUP 0x0073 +#define WTV_VOLDN 0x0072 +#define WTV_CH_UP 0x0192 +#define WTV_CH_DN 0x0193 +#define WTV_1 0x0201 +#define WTV_2 0x0202 +#define WTV_3 0x0203 +#define WTV_4 0x0204 +#define WTV_5 0x0205 +#define WTV_6 0x0206 +#define WTV_7 0x0207 +#define WTV_8 0x0208 +#define WTV_9 0x0209 +#define WTV_TEXT 0x0184 +#define WTV_0 0x0200 +#define WTV_CC 0x0172 +#define WTV_BOX 0x0080 +#define WTV_START 0x0195 +#define WTV_REV 0x00a8 +#define WTV_STOP 0x0077 +#define WTV_PLAY 0x00cf +#define WTV_FWD 0x00d0 +#define WTV_END 0x0197 +#define WTV_MUTE 0x0071 +#define WTV_PREV 0x019c +#define WTV_RED 0x00a7 + +struct input_event; + +class WinTV : public Thread +{ +public: + WinTV(MWindow *mwindow, int ifd); + ~WinTV(); + + void stop(); + void start(); + static int open_usb_input(int vendor, int product, int &version); + static WinTV *probe(MWindow *mwindow); + void run(); + void handle_event(); + int check_menu_keys(int code); + virtual int process_code() { return 1; } + + MWindow *mwindow; + input_event *ev; + int done, ifd; + int last_code, code; +}; + +class WinTVCWindowHandler : public RemoteHandler +{ +public: + WinTVCWindowHandler(WinTV *wintv, RemoteControl *remote_control); + int wintv_process_code(int code); + int process_key(int key); + + WinTV *wintv; +}; + +class WinTVRecordHandler : public RemoteHandler +{ +public: + WinTVRecordHandler(WinTV *wintv, RemoteControl *remote_control); + int wintv_process_code(int code); + int process_key(int key); + + WinTV *wintv; +}; + +#endif +#endif