1 #include <X11/Xlib.h> 2 #include <X11/Xmd.h> 3 #ifdef HAVE_LIBXXF86DGA 4 # include <X11/extensions/Xxf86dga.h> 5 # include <X11/extensions/xf86dgaproto.h> 6 #endif 7 #ifdef HAVE_LIBXXF86VM 8 # include <X11/extensions/xf86vmode.h> 9 # include <X11/extensions/xf86vmproto.h> 10 #endif 11 #ifdef HAVE_LIBXINERAMA 12 # include <X11/extensions/Xinerama.h> 13 #endif 14 #ifdef HAVE_LIBXV 15 # include <X11/extensions/Xv.h> 16 # include <X11/extensions/Xvlib.h> 17 #endif 18 #ifdef HAVE_LIBXRANDR 19 # include <X11/extensions/Xrandr.h> 20 #endif 21 #ifdef HAVE_LIBXDPMS 22 # include <X11/extensions/dpms.h> 23 /* XFree 3.3.x has'nt prototypes for this ... */ 24 Bool DPMSQueryExtension(Display*, int*, int*); 25 Bool DPMSCapable(Display*); 26 Status DPMSInfo(Display*, CARD16*, BOOL*); 27 Status DPMSEnable(Display*); 28 Status DPMSDisable(Display*); 29 #endif 30 31 struct ARGS { 32 /* char */ 33 char *device; 34 char *driver; 35 char *dspdev; 36 char *vbidev; 37 char *joydev; 38 char *basename; 39 char *conffile; 40 char *alsa_cap; 41 char *alsa_pb; 42 43 /* int */ 44 int debug; 45 int bpp; 46 int shift; 47 int xv_port; 48 int parallel; 49 int bufcount; 50 int alsa_latency; /* In ms */ 51 52 /* boolean */ 53 int remote; 54 int readconfig; 55 int fullscreen; 56 int fbdev; 57 int xv; 58 int xv_video; 59 int xv_image; 60 int gl; 61 int alsa; 62 int vidmode; 63 int dga; 64 int randr; 65 int help; 66 int hwscan; 67 }; 68 69 extern struct ARGS args; 70 extern XtResource args_desc[]; 71 extern XrmOptionDescRec opt_desc[]; 72 73 extern const int args_count; 74 extern const int opt_count; 75 76 /*----------------------------------------------------------------------*/ 77 78 extern XtAppContext app_context; 79 extern Widget app_shell, tv; 80 extern Widget on_shell; 81 extern Display *dpy; 82 extern int stay_on_top; 83 84 extern XVisualInfo vinfo; 85 extern Colormap colormap; 86 87 extern int have_dga; 88 extern int have_vm; 89 extern int have_randr; 90 extern int fs; 91 92 extern void *movie_state; 93 extern int movie_blit; 94 95 extern XtIntervalId zap_timer,scan_timer; 96 97 #ifdef HAVE_LIBXXF86VM 98 extern int vm_count; 99 extern XF86VidModeModeInfo **vm_modelines; 100 #endif 101 #ifdef HAVE_LIBXINERAMA 102 extern XineramaScreenInfo *xinerama; 103 extern int nxinerama; 104 #endif 105 #ifdef HAVE_LIBXRANDR 106 extern XRRScreenSize *randr; 107 extern int nrandr; 108 #endif 109 110 extern char v4l_conf[128]; 111 112 #define ZAP_TIME 8000 113 #define CAP_TIME 100 114 #define SCAN_TIME 100 115 116 #define ONSCREEN_TIME 5000 117 #define TITLE_TIME 6000 118 #define WIDTH_INC 32 119 #define HEIGHT_INC 24 120 #define VIDMODE_DELAY 100 /* 0.1 sec */ 121 122 /*----------------------------------------------------------------------*/ 123 124 /* defined in main.c / motif.c */ 125 void toolkit_set_label(Widget widget, char *str); 126 127 /*----------------------------------------------------------------------*/ 128 129 Boolean ExitWP(XtPointer client_data); 130 void ExitCB(Widget widget, XtPointer client_data, XtPointer calldata); 131 void do_exit(void); 132 void CloseMainAction(Widget widget, XEvent *event, 133 String *params, Cardinal *num_params); 134 void ZapAction(Widget, XEvent*, String*, Cardinal*); 135 void ScanAction(Widget, XEvent*, String*, Cardinal*); 136 void RatioAction(Widget, XEvent*, String*, Cardinal*); 137 void LaunchAction(Widget, XEvent*, String*, Cardinal*); 138 void VtxAction(Widget, XEvent*, String*, Cardinal*); 139 void FilterAction(Widget, XEvent*, String*, Cardinal*); 140 void EventAction(Widget, XEvent*, String*, Cardinal*); 141 142 Boolean MyResize(XtPointer client_data); 143 void do_fullscreen(void); 144 145 void create_onscreen(WidgetClass class); 146 Boolean rec_work(XtPointer client_data); 147 148 void exec_done(int signal); 149 /* static void exec_output(XtPointer data, int *fd, XtInputId * iproc); */ 150 int exec_x11(char **argv); 151 void exec_player(char *moviefile); 152 void xt_siginit(void); 153 154 void new_title(char *txt); 155 void new_message(char *txt); 156 void change_audio(int mode); 157 void tv_expose_event(Widget widget, XtPointer client_data, 158 XEvent *event, Boolean *d); 159 160 /*----------------------------------------------------------------------*/ 161 162 struct DO_CMD { 163 int argc; 164 char *argv[8]; 165 }; 166 167 void command_cb(Widget widget, XtPointer clientdata, XtPointer call_data); 168 169 /*----------------------------------------------------------------------*/ 170 171 void CommandAction(Widget, XEvent*, String*, Cardinal*); 172 void RemoteAction(Widget, XEvent*, String*, Cardinal*); 173 void set_property(int freq, char *channel, char *name); 174 175 /*----------------------------------------------------------------------*/ 176 177 void x11_misc_init(Display *dpy); 178 void xfree_dga_init(Display *dpy); 179 void xfree_xinerama_init(Display *dpy); 180 void xfree_vm_init(Display *dpy); 181 void xfree_randr_init(Display *dpy); 182 183 void grabber_init(void); 184 void grabber_scan(void); 185 void x11_check_remote(void); 186 void visual_init(char *n1, char *n2); 187 void hello_world(char *name); 188 void handle_cmdline_args(void); 189 void v4lconf_init(void); 190 int x11_ctrl_alt_backspace(Display *dpy); 191 192 void mouse_event(Widget widget, XtPointer client_data, 193 XEvent *event, Boolean *d); 194 195 /*----------------------------------------------------------------------*/ 196 197 extern char x11_vbi_station[]; 198 199 int x11_vbi_start(char *device); 200 int x11_vbi_tuned(void); 201 void x11_vbi_stop(void); 202 203 /*----------------------------------------------------------------------*/ 204 205 int xt_lirc_init(void); 206 int xt_midi_init(char *dev); 207 int xt_joystick_init(void); 208 void init_icon_window(Widget shell,WidgetClass class); 209 void xt_kbd_init(Widget tv); 210 211 /*----------------------------------------------------------------------*/ 212 213 void create_pointers(Widget); 214 void create_bitmaps(Widget); 215 216 extern Cursor left_ptr; 217 extern Cursor menu_ptr; 218 extern Cursor qu_ptr; 219 extern Cursor no_ptr; 220 221 extern Pixmap bm_yes; 222 extern Pixmap bm_no; 223 224 /*----------------------------------------------------------------------*/ 225 226 int xt_handle_pending(Display *dpy); 227 int xt_vm_randr_input_init(Display *dpy); 228 int xt_main_loop(void); 229