static void usage_all(void) { common_usage(); tuner_usage(); io_usage(); stds_usage(); vidcap_usage(); vidout_usage(); overlay_usage(); vbi_usage(); sdr_usage(); selection_usage(); misc_usage(); streaming_usage(); edid_usage(); }
void overlay_cmd(int ch, char *optarg) { unsigned int *set_overlay_fmt_ptr = NULL; struct v4l2_format *overlay_fmt_ptr = NULL; char *value, *subs; switch (ch) { case OptSetOverlayFormat: case OptTryOverlayFormat: case OptSetOutputOverlayFormat: case OptTryOutputOverlayFormat: switch (ch) { case OptSetOverlayFormat: case OptTryOverlayFormat: set_overlay_fmt_ptr = &set_overlay_fmt; overlay_fmt_ptr = &overlay_fmt; break; case OptSetOutputOverlayFormat: case OptTryOutputOverlayFormat: set_overlay_fmt_ptr = &set_overlay_fmt_out; overlay_fmt_ptr = &overlay_fmt_out; break; } subs = optarg; while (*subs != '\0') { static const char *const subopts[] = { "chromakey", "global_alpha", "left", "top", "width", "height", "field", NULL }; switch (parse_subopt(&subs, subopts, &value)) { case 0: overlay_fmt_ptr->fmt.win.chromakey = strtol(value, 0L, 0); *set_overlay_fmt_ptr |= FmtChromaKey; break; case 1: overlay_fmt_ptr->fmt.win.global_alpha = strtol(value, 0L, 0); *set_overlay_fmt_ptr |= FmtGlobalAlpha; break; case 2: overlay_fmt_ptr->fmt.win.w.left = strtol(value, 0L, 0); *set_overlay_fmt_ptr |= FmtLeft; break; case 3: overlay_fmt_ptr->fmt.win.w.top = strtol(value, 0L, 0); *set_overlay_fmt_ptr |= FmtTop; break; case 4: overlay_fmt_ptr->fmt.win.w.width = strtol(value, 0L, 0); *set_overlay_fmt_ptr |= FmtWidth; break; case 5: overlay_fmt_ptr->fmt.win.w.height = strtol(value, 0L, 0); *set_overlay_fmt_ptr |= FmtHeight; break; case 6: overlay_fmt_ptr->fmt.win.field = parse_field(value); *set_overlay_fmt_ptr |= FmtField; break; default: overlay_usage(); break; } } break; case OptSetFBuf: subs = optarg; while (*subs != '\0') { static const char *const subopts[] = { "chromakey", "global_alpha", "local_alpha", "local_inv_alpha", NULL }; switch (parse_subopt(&subs, subopts, &value)) { case 0: fbuf.flags |= strtol(value, 0L, 0) ? V4L2_FBUF_FLAG_CHROMAKEY : 0; set_fbuf |= V4L2_FBUF_FLAG_CHROMAKEY; break; case 1: fbuf.flags |= strtol(value, 0L, 0) ? V4L2_FBUF_FLAG_GLOBAL_ALPHA : 0; set_fbuf |= V4L2_FBUF_FLAG_GLOBAL_ALPHA; break; case 2: fbuf.flags |= strtol(value, 0L, 0) ? V4L2_FBUF_FLAG_LOCAL_ALPHA : 0; set_fbuf |= V4L2_FBUF_FLAG_LOCAL_ALPHA; break; case 3: fbuf.flags |= strtol(value, 0L, 0) ? V4L2_FBUF_FLAG_LOCAL_INV_ALPHA : 0; set_fbuf |= V4L2_FBUF_FLAG_LOCAL_INV_ALPHA; break; default: overlay_usage(); break; } } break; case OptOverlay: overlay = strtol(optarg, 0L, 0); break; } }