X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fanalogtv.h;h=e3170f1d2590d1eb029fc953b1987df3eb9bdc96;hb=c85f503f5793839a6be4c818332aca4a96927bb2;hp=00d8e38994e738ad22947a9e497d381e8da25f4c;hpb=8afc01a67be4fbf3f1cc0fce9adf01b5289a21c6;p=xscreensaver diff --git a/hacks/analogtv.h b/hacks/analogtv.h index 00d8e389..e3170f1d 100644 --- a/hacks/analogtv.h +++ b/hacks/analogtv.h @@ -1,4 +1,4 @@ -/* analogtv, Copyright (c) 2003, 2004 Trevor Blackwell +/* analogtv, Copyright (c) 2003-2018 Trevor Blackwell * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -15,6 +15,10 @@ #include "thread_util.h" #include "xshm.h" +#if defined(USE_IPHONE) || defined(HAVE_ANDROID) +# define HAVE_MOBILE +#endif + /* You'll need these to generate standard NTSC TV signals */ @@ -157,17 +161,15 @@ typedef struct analogtv_s { int fakeit_scroll; int redraw_all; - int use_shm,use_cmap,use_color; + int use_cmap,use_color; int bilevel_signal; -#ifdef HAVE_XSHM_EXTENSION XShmSegmentInfo shm_info; -#endif int visdepth,visclass,visbits; int red_invprec, red_shift; int green_invprec, green_shift; int blue_invprec, blue_shift; - unsigned int red_mask, green_mask, blue_mask; + unsigned long red_mask, green_mask, blue_mask; Colormap colormap; int usewidth,useheight,xrepl,subwidth; @@ -207,6 +209,8 @@ typedef struct analogtv_s { int cmap_i_levels; int cmap_q_levels; + float tint_i, tint_q; + int cur_hsync; int line_hsync[ANALOGTV_V]; int cur_vsync; @@ -248,7 +252,9 @@ void analogtv_setup_sync(analogtv_input *input, int do_cb, int do_ssavi); void analogtv_draw(analogtv *it, double noiselevel, const analogtv_reception *const *recs, unsigned rec_count); -int analogtv_load_ximage(analogtv *it, analogtv_input *input, XImage *pic_im); +int analogtv_load_ximage(analogtv *it, analogtv_input *input, + XImage *pic_im, XImage *mask_im, + int xoff, int yoff, int width, int height); void analogtv_reception_update(analogtv_reception *inp); @@ -281,8 +287,6 @@ void analogtv_draw_string(analogtv_input *input, analogtv_font *f, char *s, int x, int y, int ntsc[4]); void analogtv_draw_string_centered(analogtv_input *input, analogtv_font *f, char *s, int x, int y, int ntsc[4]); -void analogtv_draw_xpm(analogtv *tv, analogtv_input *input, - const char * const *xpm, int left, int top); int analogtv_handle_events (analogtv *it); @@ -292,15 +296,24 @@ int analogtv_handle_events (analogtv *it); #define ANALOGTV_DEFAULTS_SHM #endif -#ifndef USE_IPHONE +#ifndef HAVE_MOBILE # define ANALOGTV_DEF_BRIGHTNESS "2" # define ANALOGTV_DEF_CONTRAST "150" #else /* Need to really crank this up for it to look good on the iPhone screen. */ # define ANALOGTV_DEF_BRIGHTNESS "3" -# define ANALOGTV_DEF_CONTRAST "1000" +# define ANALOGTV_DEF_CONTRAST "400" #endif +/* Brightness: useful range is around -75 to 100. + Contrast: useful range is around 0 - 500. + Color: useful range is around +/- 500. + Tint: range is mod 360. + + The values in the 'analogtv' struct are the resource divided by 100.0, + except for tint, which is exact. + */ + #define ANALOGTV_DEFAULTS \ "*TVColor: 70", \ "*TVTint: 5", \ @@ -310,6 +323,7 @@ int analogtv_handle_events (analogtv *it); "*use_cmap: 0", \ "*geometry: 800x600", \ "*fpsSolid: True", \ + "*lowrez: True", \ THREAD_DEFAULTS \ ANALOGTV_DEFAULTS_SHM