*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
- double tint_control,color_control,brightness_control,contrast_control;
- double height_control, width_control, squish_control;
- double horiz_desync;
- double squeezebottom;
- double powerup;
+ float tint_control,color_control,brightness_control,contrast_control;
+ float height_control, width_control, squish_control;
+ float horiz_desync;
+ float squeezebottom;
+ float powerup;
int visdepth,visclass,visbits;
int red_invprec, red_shift;
int green_invprec, green_shift;
int blue_invprec, blue_shift;
int visdepth,visclass,visbits;
int red_invprec, red_shift;
int green_invprec, green_shift;
int blue_invprec, blue_shift;
Colormap colormap;
int usewidth,useheight,xrepl,subwidth;
Colormap colormap;
int usewidth,useheight,xrepl,subwidth;
unsigned int red_values[ANALOGTV_CV_MAX];
unsigned int green_values[ANALOGTV_CV_MAX];
unsigned int blue_values[ANALOGTV_CV_MAX];
unsigned int red_values[ANALOGTV_CV_MAX];
unsigned int green_values[ANALOGTV_CV_MAX];
unsigned int blue_values[ANALOGTV_CV_MAX];
+ /* Only valid during draw. */
+ unsigned random0, random1;
+ double noiselevel;
+ const analogtv_reception *const *recs;
+ unsigned rec_count;
+
+ float *signal_subtotals;
+
+ float puheight;
int analogtv_set_demod(analogtv *it);
void analogtv_setup_frame(analogtv *it);
void analogtv_setup_sync(analogtv_input *input, int do_cb, int do_ssavi);
int analogtv_set_demod(analogtv *it);
void analogtv_setup_frame(analogtv *it);
void analogtv_setup_sync(analogtv_input *input, int do_cb, int do_ssavi);
-void analogtv_draw(analogtv *it);
+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);
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]);
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]);
# 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_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"
+/* 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.
+ */
+
{ "-use-cmap", ".use_cmap", XrmoptionSepArg, 0 }, \
{ "-tv-color", ".TVColor", XrmoptionSepArg, 0 }, \
{ "-tv-tint", ".TVTint", XrmoptionSepArg, 0 }, \
{ "-use-cmap", ".use_cmap", XrmoptionSepArg, 0 }, \
{ "-tv-color", ".TVColor", XrmoptionSepArg, 0 }, \
{ "-tv-tint", ".TVTint", XrmoptionSepArg, 0 }, \