⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpia.c

📁 优龙2410linux2.6.8内核源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
				command_flags |= COMMAND_SETEXPOSURE;				if (new_params.exposure.gain >				    new_params.exposure.gainMode-1)					retval = -EINVAL;			}		} else if (MATCH("fine_exp")) {			if (!retval)				val = VALUE/2;			if (!retval) {				if (val < 256) {					/* 1-02 firmware limits fineExp/2 to 127*/					if (FIRMWARE_VERSION(1,2) && val > 127)						val = 127;					new_params.exposure.fineExp = val;					new_params.exposure.expMode = 1;					command_flags |= COMMAND_SETEXPOSURE;					if(new_params.flickerControl.flickerMode != 0)						command_flags |= COMMAND_SETFLICKERCTRL;					new_params.flickerControl.flickerMode = 0;					command_flags |= COMMAND_SETFLICKERCTRL;				} else					retval = -EINVAL;			}		} else if (MATCH("coarse_exp")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val <= MAX_EXP) {					if (FIRMWARE_VERSION(1,2) &&					    val > MAX_EXP_102)						val = MAX_EXP_102;					new_params.exposure.coarseExpLo =						val & 0xff;					new_params.exposure.coarseExpHi =						val >> 8;					new_params.exposure.expMode = 1;					command_flags |= COMMAND_SETEXPOSURE;					if(new_params.flickerControl.flickerMode != 0)						command_flags |= COMMAND_SETFLICKERCTRL;					new_params.flickerControl.flickerMode = 0;					command_flags |= COMMAND_SETFLICKERCTRL;				} else					retval = -EINVAL;			}		} else if (MATCH("red_comp")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val >= COMP_RED && val <= 255) {					new_params.exposure.redComp = val;					new_params.exposure.compMode = 1;					command_flags |= COMMAND_SETEXPOSURE;				} else					retval = -EINVAL;			}		} else if (MATCH("green1_comp")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val >= COMP_GREEN1 && val <= 255) {					new_params.exposure.green1Comp = val;					new_params.exposure.compMode = 1;					command_flags |= COMMAND_SETEXPOSURE;				} else					retval = -EINVAL;			}		} else if (MATCH("green2_comp")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val >= COMP_GREEN2 && val <= 255) {					new_params.exposure.green2Comp = val;					new_params.exposure.compMode = 1;					command_flags |= COMMAND_SETEXPOSURE;				} else					retval = -EINVAL;			}		} else if (MATCH("blue_comp")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val >= COMP_BLUE && val <= 255) {					new_params.exposure.blueComp = val;					new_params.exposure.compMode = 1;					command_flags |= COMMAND_SETEXPOSURE;				} else					retval = -EINVAL;			}		} else if (MATCH("apcor_gain1")) {			if (!retval)				val = VALUE;			if (!retval) {				command_flags |= COMMAND_SETAPCOR;				if (val <= 0xff)					new_params.apcor.gain1 = val;				else					retval = -EINVAL;			}		} else if (MATCH("apcor_gain2")) {			if (!retval)				val = VALUE;			if (!retval) {				command_flags |= COMMAND_SETAPCOR;				if (val <= 0xff)					new_params.apcor.gain2 = val;				else					retval = -EINVAL;			}		} else if (MATCH("apcor_gain4")) {			if (!retval)				val = VALUE;			if (!retval) {				command_flags |= COMMAND_SETAPCOR;				if (val <= 0xff)					new_params.apcor.gain4 = val;				else					retval = -EINVAL;			}		} else if (MATCH("apcor_gain8")) {			if (!retval)				val = VALUE;			if (!retval) {				command_flags |= COMMAND_SETAPCOR;				if (val <= 0xff)					new_params.apcor.gain8 = val;				else					retval = -EINVAL;			}		} else if (MATCH("vl_offset_gain1")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val <= 0xff)					new_params.vlOffset.gain1 = val;				else					retval = -EINVAL;			}			command_flags |= COMMAND_SETVLOFFSET;		} else if (MATCH("vl_offset_gain2")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val <= 0xff)					new_params.vlOffset.gain2 = val;				else					retval = -EINVAL;			}			command_flags |= COMMAND_SETVLOFFSET;		} else if (MATCH("vl_offset_gain4")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val <= 0xff)					new_params.vlOffset.gain4 = val;				else					retval = -EINVAL;			}			command_flags |= COMMAND_SETVLOFFSET;		} else if (MATCH("vl_offset_gain8")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val <= 0xff)					new_params.vlOffset.gain8 = val;				else					retval = -EINVAL;			}			command_flags |= COMMAND_SETVLOFFSET;		} else if (MATCH("flicker_control")) {			if (!retval && MATCH("on")) {				set_flicker(&new_params, &command_flags, 1);			} else if (!retval && MATCH("off")) {				set_flicker(&new_params, &command_flags, 0);			} else				retval = -EINVAL;			command_flags |= COMMAND_SETFLICKERCTRL;		} else if (MATCH("mains_frequency")) {			if (!retval && MATCH("50")) {				new_mains = 0;				new_params.flickerControl.coarseJump = 					flicker_jumps[new_mains]					[new_params.sensorFps.baserate]					[new_params.sensorFps.divisor];				if (new_params.flickerControl.flickerMode)					command_flags |= COMMAND_SETFLICKERCTRL;			} else if (!retval && MATCH("60")) {				new_mains = 1;				new_params.flickerControl.coarseJump = 					flicker_jumps[new_mains]					[new_params.sensorFps.baserate]					[new_params.sensorFps.divisor];				if (new_params.flickerControl.flickerMode)					command_flags |= COMMAND_SETFLICKERCTRL;			} else				retval = -EINVAL;		} else if (MATCH("allowable_overexposure")) {			if (!retval && MATCH("auto")) {				new_params.flickerControl.allowableOverExposure = 					-find_over_exposure(new_params.colourParams.brightness);				if(new_params.flickerControl.flickerMode != 0)					command_flags |= COMMAND_SETFLICKERCTRL;			} else {				if (!retval)					val = VALUE;				if (!retval) {					if (val <= 0xff) {						new_params.flickerControl.							allowableOverExposure = val;						if(new_params.flickerControl.flickerMode != 0)							command_flags |= COMMAND_SETFLICKERCTRL;					} else						retval = -EINVAL;				}			}		} else if (MATCH("compression_mode")) {			if (!retval && MATCH("none"))				new_params.compression.mode =					CPIA_COMPRESSION_NONE;			else if (!retval && MATCH("auto"))				new_params.compression.mode =					CPIA_COMPRESSION_AUTO;			else if (!retval && MATCH("manual"))				new_params.compression.mode =					CPIA_COMPRESSION_MANUAL;			else				retval = -EINVAL;			command_flags |= COMMAND_SETCOMPRESSION;		} else if (MATCH("decimation_enable")) {			if (!retval && MATCH("off"))				new_params.compression.decimation = 0;			else if (!retval && MATCH("on"))				new_params.compression.decimation = 1;			else				retval = -EINVAL;			command_flags |= COMMAND_SETCOMPRESSION;		} else if (MATCH("compression_target")) {			if (!retval && MATCH("quality"))				new_params.compressionTarget.frTargeting = 					CPIA_COMPRESSION_TARGET_QUALITY;			else if (!retval && MATCH("framerate"))				new_params.compressionTarget.frTargeting = 					CPIA_COMPRESSION_TARGET_FRAMERATE;			else				retval = -EINVAL;			command_flags |= COMMAND_SETCOMPRESSIONTARGET;		} else if (MATCH("target_framerate")) {			if (!retval)				val = VALUE;			if (!retval) {				if(val > 0 && val <= 30)					new_params.compressionTarget.targetFR = val;				else					retval = -EINVAL;			}			command_flags |= COMMAND_SETCOMPRESSIONTARGET;		} else if (MATCH("target_quality")) {			if (!retval)				val = VALUE;			if (!retval) {				if(val > 0 && val <= 64)					new_params.compressionTarget.targetQ = val;				else 					retval = -EINVAL;			}			command_flags |= COMMAND_SETCOMPRESSIONTARGET;		} else if (MATCH("y_threshold")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val < 32)					new_params.yuvThreshold.yThreshold = val;				else					retval = -EINVAL;			}			command_flags |= COMMAND_SETYUVTHRESH;		} else if (MATCH("uv_threshold")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val < 32)					new_params.yuvThreshold.uvThreshold = val;				else					retval = -EINVAL;			}			command_flags |= COMMAND_SETYUVTHRESH;		} else if (MATCH("hysteresis")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val <= 0xff)					new_params.compressionParams.hysteresis = val;				else					retval = -EINVAL;			}			command_flags |= COMMAND_SETCOMPRESSIONPARAMS;		} else if (MATCH("threshold_max")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val <= 0xff)					new_params.compressionParams.threshMax = val;				else					retval = -EINVAL;			}			command_flags |= COMMAND_SETCOMPRESSIONPARAMS;		} else if (MATCH("small_step")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val <= 0xff)					new_params.compressionParams.smallStep = val;				else					retval = -EINVAL;			}			command_flags |= COMMAND_SETCOMPRESSIONPARAMS;		} else if (MATCH("large_step")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val <= 0xff)					new_params.compressionParams.largeStep = val;				else					retval = -EINVAL;			}			command_flags |= COMMAND_SETCOMPRESSIONPARAMS;		} else if (MATCH("decimation_hysteresis")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val <= 0xff)					new_params.compressionParams.decimationHysteresis = val;				else					retval = -EINVAL;			}			command_flags |= COMMAND_SETCOMPRESSIONPARAMS;		} else if (MATCH("fr_diff_step_thresh")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val <= 0xff)					new_params.compressionParams.frDiffStepThresh = val;				else					retval = -EINVAL;			}			command_flags |= COMMAND_SETCOMPRESSIONPARAMS;		} else if (MATCH("q_diff_step_thresh")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val <= 0xff)					new_params.compressionParams.qDiffStepThresh = val;				else					retval = -EINVAL;			}			command_flags |= COMMAND_SETCOMPRESSIONPARAMS;		} else if (MATCH("decimation_thresh_mod")) {			if (!retval)				val = VALUE;			if (!retval) {				if (val <= 0xff)					new_params.compressionParams.decimationThreshMod = val;				else					retval = -EINVAL;			}			command_flags |= COMMAND_SETCOMPRESSIONPARAMS;		} else if (MATCH("toplight")) {		        if (!retval && MATCH("on"))				new_params.qx3.toplight = 1;			else if (!retval && MATCH("off"))				new_params.qx3.toplight = 0;			else 				retval = -EINVAL;			command_flags |= COMMAND_SETLIGHTS;		} else if (MATCH("bottomlight")) {		        if (!retval && MATCH("on"))				new_params.qx3.bottomlight = 1;			else if (!retval && MATCH("off"))  				new_params.qx3.bottomlight = 0;			else 				retval = -EINVAL;			command_flags |= COMMAND_SETLIGHTS;		} else {			DBG("No match found\n");			retval = -EINVAL;		}		if (!retval) {			while (count && isspace(*buffer) && *buffer != '\n') {				--count;				++buffer;			}			if (count) {				if (*buffer == '\0' && count != 1)					retval = -EINVAL;				else if (*buffer != '\n' && *buffer != ';' &&					 *buffer != '\0')					retval = -EINVAL;				else {					--count;					++buffer;				}			}		}	}#undef MATCH	#undef VALUE#undef FIRMWARE_VERSION	if (!retval) {		if (command_flags & COMMAND_SETCOLOURPARAMS) {			/* Adjust cam->vp to reflect these changes */			cam->vp.brightness =				new_params.colourParams.brightness*65535/100;			cam->vp.contrast =				new_params.colourParams.contrast*65535/100;			cam->vp.colour =				new_params.colourParams.saturation*65535/100;		}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -