Example #1
0
int pick_framerate(QSP_ARG_DECL  PGR_Cam *pgcp,const char *pmpt)
{
	int i;
	int j;
	dc1394framerates_t	framerates;
	const char **choices;
	const char *s;

	if( pgcp == NULL ) return -1;

	// format7 doesn't have a framerate!?
	if( mode_is_format7(pgcp) ){
		WARN("Can't specify framerate for format7 video mode...");
		// eat the argument
		s = NAMEOF("dummy argument");
		return -1;
	}

	if ( dc1394_video_get_supported_framerates( pgcp->pc_cam_p, pgcp->pc_video_mode, &framerates )
			!= DC1394_SUCCESS )
		return -1;

	choices = (const char **) getbuf( framerates.num * sizeof(char *) );
	j=0;
	for(i=0;i<framerates.num;i++){
		s=name_for_framerate(framerates.framerates[i]);
		if( s != NULL ){
			choices[j] = s;
			j++;
		}
	}
	i=WHICH_ONE(pmpt,j,choices);
	givbuf(choices);
	return(i);
}
Example #2
0
File: ascmenu.c Project: E-LLP/QuIP
static COMMAND_FUNC( do_set_fmt )
{
	int i;

	if( ! fmt_names_inited ) init_print_fmt_names();

	i = WHICH_ONE("format",N_PRINT_FORMATS,print_fmt_name);
	if( i < 0 ) return;
	set_integer_print_fmt(QSP_ARG  (Number_Fmt)i);
}
Example #3
0
File: glmenu.c Project: nasa/QuIP
static COMMAND_FUNC(	do_gl_material )
{
	int i;
	float pvec[4];

	i=WHICH_ONE("property",N_MATERIAL_PROPERTIES,property_names);
	if( i < 0 ) return;

	switch(i){
		case 0: {
			pvec[0] = (float)HOW_MUCH("ambient red");
			pvec[1] = (float)HOW_MUCH("ambient green");
			pvec[2] = (float)HOW_MUCH("ambient blue");
			pvec[3] = (float)HOW_MUCH("ambient alpha");
			if( debug & gl_debug ) advise("glMaterialfv GL_FRONT_AND_BACK GL_DIFFUSE (ambient?)");
			/* diffuse or ambient??? */
			glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, pvec);
			break; }
		case 1: {
			pvec[0] = (float)HOW_MUCH("diffuse red");
			pvec[1] = (float)HOW_MUCH("diffuse green");
			pvec[2] = (float)HOW_MUCH("diffuse blue");
			pvec[3] = (float)HOW_MUCH("diffuse alpha");
			if( debug & gl_debug ) advise("glMaterialfv GL_FRONT_AND_BACK GL_DUFFUSE");
			glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, pvec);
			break; }
		case 2: {
			pvec[0] = (float)HOW_MUCH("specular red");
			pvec[1] = (float)HOW_MUCH("specular green");
			pvec[2] = (float)HOW_MUCH("specular blue");
			pvec[3] = (float)HOW_MUCH("specular alpha");
			if( debug & gl_debug ) advise("glMaterialfv GL_FRONT_AND_BACK GL_SPECULAR");
			glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, pvec);
			break; }
		case 3: {
			pvec[0] = (float)HOW_MUCH("shininess");
			if( debug & gl_debug ) advise("glMaterialfv GL_FRONT_AND_BACK GL_SHININESS");
			glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, pvec);
			break; }
		case 4:
			pvec[0] = (float)HOW_MUCH("emission red");
			pvec[1] = (float)HOW_MUCH("emission green");
			pvec[2] = (float)HOW_MUCH("emission blue");
			pvec[2] = (float)HOW_MUCH("emission alpha");
			if( debug & gl_debug ) advise("glMaterialfv GL_FRONT_AND_BACK GL_EMISSION");
			glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, pvec);
			break;
		default:
			error1("do_gl_material:  bad property (shouldn't happen)");
			break;
	}
}
Example #4
0
File: glmenu.c Project: nasa/QuIP
static COMMAND_FUNC( select_shader )
{
	int i;

	i=WHICH_ONE("shading model",N_SHADING_MODELS,shading_models);
	if( i < 0 ) return;

	if( debug & gl_debug ) advise("glShadeModel");
	switch(i){
		case 0:	glShadeModel(GL_FLAT); break;
		case 1:	glShadeModel(GL_SMOOTH); break;
	}
}
Example #5
0
File: glmenu.c Project: nasa/QuIP
static COMMAND_FUNC( set_atten )
{
	int i;
	float f;

	i=WHICH_ONE("attenuation model",N_ATTENUATIONS,atten_names);
	f=(float)HOW_MUCH("attenuation constant");
	if( i < 0 ) return;
	if( debug & gl_debug ) advise("glLightf");
	switch(i){
		case 0: glLightf(which_light,GL_CONSTANT_ATTENUATION,f); break;
		case 1: glLightf(which_light,GL_LINEAR_ATTENUATION,f); break;
		case 2: glLightf(which_light,GL_QUADRATIC_ATTENUATION,f); break;
	}
}
Example #6
0
File: glmenu.c Project: nasa/QuIP
static COMMAND_FUNC( do_check_extension )
{
	int i;

	i=WHICH_ONE("GL extension",N_KNOWN_EXTENSIONS,extension_table);
	if( i < 0 ) return;

#ifndef BUILD_FOR_OBJC
	if( check_extension(QSP_ARG  extension_table[i]) ){
		assign_reserved_var("extension_present","1");
	} else {
		assign_reserved_var("extension_present","0");
	}
#else // ! BUILD_FOR_OBJC
	WARN("Sorry, can't check for extensions in native Apple build...");
#endif // ! BUILD_FOR_OBJC
}
Example #7
0
static COMMAND_FUNC( do_ilace )
{
	const char *obj_name;
	Data_Obj *dp, *newdp;
	int parity;

	obj_name=NAMEOF("name for subimage");

	dp=get_img( QSP_ARG  NAMEOF("name of parent image") );
	if( dp==NULL ) return;

	parity=WHICH_ONE("parity of selected lines",2,parlist);
	if( parity < 0 ) return;

	newdp=mk_ilace(dp,obj_name,parity);
	if( newdp == NULL )
		warn("couldn't create interlaced subimage");
}
Example #8
0
static COMMAND_FUNC( do_newpipe )
{
	const char *pipe_name;
	const char *cmd;
	const char *mode;
	int n;

	pipe_name=NAMEOF("name for pipe");

	n=WHICH_ONE("read/write",N_RW_CHOICES,rw_choices);

	cmd=NAMEOF("command");

	if( n < 0 || n >= 2 ) return;
	if( n == 0 ) mode="r";
	else mode="w";
	
	creat_pipe(QSP_ARG  pipe_name,cmd,mode);
}
Example #9
0
dc1394video_mode_t pick_fmt7_mode(QSP_ARG_DECL  PGR_Cam *pgcp,const char *pmpt)
{
	int i;
	int j,k;
	dc1394video_modes_t	video_modes;
	const char **choices;
	dc1394video_mode_t *	modelist;
	dc1394video_mode_t	m;

	if( pgcp == NULL ) return BAD_VIDEO_MODE;

	if ( dc1394_video_get_supported_modes( pgcp->pc_cam_p, &video_modes ) != DC1394_SUCCESS )
		return BAD_VIDEO_MODE;

	choices = (const char **)getbuf( video_modes.num * sizeof(char *) );
	modelist = (dc1394video_mode_t *) getbuf( video_modes.num * sizeof(dc1394video_mode_t) );
	j=0;
	for(i=0;i<video_modes.num;i++){
		k=index_of_video_mode(video_modes.modes[i]);	/* get index into our table... */
								/* could probably get this by subtraction if
								 * our table is in the correct order...
								 */
		if( k >= 0 && video_modes.modes[i] >= DC1394_VIDEO_MODE_FORMAT7_0
			   && video_modes.modes[i] <= DC1394_VIDEO_MODE_FORMAT7_7 ){
			choices[j] = all_video_modes[k].nvm_name;
			modelist[j] = all_video_modes[k].nvm_mode;
			j++;
		}
	}
	i=WHICH_ONE(pmpt,j,choices);
	givbuf(choices);
	if( i >= 0 )
		m=modelist[i];
	else
		m=BAD_VIDEO_MODE;
	givbuf(modelist);

	return(m);
}
Example #10
0
dc1394video_mode_t pick_video_mode(QSP_ARG_DECL  PGR_Cam *pgcp,const char *pmpt)
{
	int i;
	int j,k;
	const char **choices;
	dc1394video_mode_t *	modelist;
	dc1394video_mode_t	m;

	if( pgcp == NULL ) return BAD_VIDEO_MODE;

	choices = (const char **)getbuf( pgcp->pc_video_modes.num * sizeof(char *) );
	modelist = (dc1394video_mode_t *)
		getbuf( pgcp->pc_video_modes.num * sizeof(dc1394video_mode_t) );
	j=0;
	for(i=0;i<pgcp->pc_video_modes.num;i++){
		/* get index into our table... */
		/* could probably get this by subtraction if
		 * our table is in the correct order...
		 */
		k=index_of_video_mode(pgcp->pc_video_modes.modes[i]);
		if( k >= 0 ){
			choices[j] = all_video_modes[k].nvm_name;
			modelist[j] = all_video_modes[k].nvm_mode;
			j++;
		}
	}
	i=WHICH_ONE(pmpt,j,choices);
	givbuf(choices);
	if( i >= 0 )
		m=modelist[i];
	else
		m=BAD_VIDEO_MODE;
	givbuf(modelist);

	return(m);
}