X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fanalogtv.h;h=9c03559ca23112f6b1b0d9c3a63dbf2b32346ee1;hb=c1b9b55ad8d59dc05ef55e316aebf5863e7dfa56;hp=54092f338be9da5b18e9ff5f4d4621ac584fc400;hpb=bc7b7a8eb122206d239ec0e693676bcce31be1aa;p=xscreensaver diff --git a/hacks/analogtv.h b/hacks/analogtv.h index 54092f33..9c03559c 100644 --- a/hacks/analogtv.h +++ b/hacks/analogtv.h @@ -65,7 +65,12 @@ enum { ANALOGTV_SIGNAL_LEN=ANALOGTV_V*ANALOGTV_H, /* The number of intensity levels we deal with for gamma correction &c */ - ANALOGTV_CV_MAX=1024 + ANALOGTV_CV_MAX=1024, + + /* MAX_LINEHEIGHT corresponds to 2400 vertical pixels, beyond which + it interpolates extra black lines. */ + ANALOGTV_MAX_LINEHEIGHT=12 + }; typedef struct analogtv_input_s { @@ -152,9 +157,10 @@ typedef struct analogtv_s { XShmSegmentInfo shm_info; #endif int visdepth,visclass,visbits; - int red_invprec,red_shift,red_mask; - int green_invprec,green_shift,green_mask; - int blue_invprec,blue_shift,blue_mask; + int red_invprec, red_shift; + int green_invprec, green_shift; + int blue_invprec, blue_shift; + unsigned int red_mask, green_mask, blue_mask; Colormap colormap; int usewidth,useheight,xrepl,subwidth; @@ -162,10 +168,6 @@ typedef struct analogtv_s { GC gc; int screen_xo,screen_yo; /* centers image in window */ - void (*event_handler)(Display *dpy, XEvent *event); - int (*key_handler)(Display *dpy, XEvent *event,void *key_data); - void *key_data; - int flutter_horiz_desync; int flutter_tint; @@ -212,6 +214,11 @@ typedef struct analogtv_s { double rx_signal_level; double rx_signal[ANALOGTV_SIGNAL_LEN + 2*ANALOGTV_H]; + struct { + int index; + double value; + } leveltable[ANALOGTV_MAX_LINEHEIGHT+1][ANALOGTV_MAX_LINEHEIGHT+1]; + } analogtv; @@ -283,6 +290,7 @@ int analogtv_handle_events (analogtv *it); "*Background: Black", \ "*use_cmap: 0", \ "*geometry: 800x600", \ + "*fpsSolid: True", \ ANALOGTV_DEFAULTS_SHM #define ANALOGTV_OPTIONS \