Example #1
0
/*
 * Main procedure loops over user requests.
 */
int main()
{
  int	  i = 0 ;
  char	  c ; // Command Read From Input.

  // Open CD ROM Drive.
  if	( cd_init() < 0 )
	{
	  show_error( ERROR, cd_error ) ;
	  return 1;
  	}
	
  // Shows possible commands.
  show_usage();

  // While Not Quit.
  while ((c = read_cmd()) != 'q' )
	{

          if	(( i = valid_cmd( c )) == -1 )
		{
		  printf("Unrecognised command: `%c'\n", c ) ;
		}
	  else
		{
		  (*myCmdStruct[i].func)() ;
		}
    	}

  // Stop Device.
  cd_exit();
    
  return 0 ;
}
Example #2
0
static int check_cdrom_str(void)
{
char *str;
	if ((str = get_string_var(CD_DEVICE_VAR)))
	{
		if (!drive)
			cd_init(str);
		return 1;
	}
	put_it("%s: /SET CD_DEVICE  - The name of the CDROM device",cparse(cdrom_prompt));
	return 0;
}
Example #3
0
void set_cd_device(Window *win, char *str, int blah)
{
	if (drive) 
  		close(drive);
	if (!str || !check_mount(str))
	{
		put_it("%s: ERROR: CDROM is already mounted, please unmount, and try again",cparse(cdrom_prompt));
		set_string_var(CD_DEVICE_VAR,NULL);
		return;
	}

	if (cd_init(str) < 0)
	{
		put_it("%s: ERROR: Could not initalize the CDROM, check if a disk is inside",cparse(cdrom_prompt));
		set_string_var(CD_DEVICE_VAR,NULL);
		return;
	}
	put_it("%s: CDROM device is now set to - %s",cparse(cdrom_prompt),str);
	set_string_var(CD_DEVICE_VAR,str);
}
Example #4
0
char	*my_lcd(int fd, FILE *fp, char *param, char **pwds)
{
  char	*d;

  if (!(param = get_path(fd, fp, param)) ||
      !strcmp(param, ESYNTAX) || !strcmp(param, ENOTTAKEN))
    return (param);
  d = cd_init(fd, fp, param, pwds);
  if (!d || !strcmp(d, EBADSEQ))
    return (d);
  if (d[0] != '/')
    {
      param = d;
      d = malloc(sizeof(*d) * (strlen(param) + strlen(pwds[CURRENT]) + 2));
      if (!d)
        return (alloc_err(fd, fp, 0));
      strcpy(d, pwds[CURRENT]);
      if (strcmp(d + strlen(d) - 10, "Anonymous/"))
	strcat(d, "/");
      strcat(d, param);
      free(param);
    }
  return (process_cd(fd, fp, d, pwds));
}
static GstStateChangeReturn
cdplayer_change_state (GstElement * element, GstStateChange transition)
{
  CDPlayer *cdp;
  GstState state = GST_STATE (element);
  GstState pending = GST_STATE_PENDING (element);

  g_return_val_if_fail (GST_IS_CDPLAYER (element), GST_STATE_CHANGE_FAILURE);

  cdp = CDPLAYER (element);

  switch (pending) {
    case GST_STATE_READY:
      if (state != GST_STATE_PAUSED) {
        if (cd_init (CDPLAYER_CD (cdp), cdp->device) == FALSE) {
          return GST_STATE_CHANGE_FAILURE;
        }
        cdp->num_tracks = cdp->cd.num_tracks;
        cdp->cddb_discid = cd_cddb_discid (CDPLAYER_CD (cdp));
      }
      break;
    case GST_STATE_PAUSED:
      /* ready->paused is not useful */
      if (state != GST_STATE_READY) {
        if (cd_pause (CDPLAYER_CD (cdp)) == FALSE) {
          return GST_STATE_CHANGE_FAILURE;
        }

        cdp->paused = TRUE;
      }

      break;
    case GST_STATE_PLAYING:
      if (cdp->paused == TRUE) {
        if (cd_resume (CDPLAYER_CD (cdp)) == FALSE) {
          return GST_STATE_CHANGE_FAILURE;
        }

        cdp->paused = FALSE;
      } else {
        if (cd_start (CDPLAYER_CD (cdp), cdp->start_track,
                cdp->end_track) == FALSE) {
          return GST_STATE_CHANGE_FAILURE;
        }
      }

      break;
    case GST_STATE_NULL:
      /* stop & close fd */
      if (cd_stop (CDPLAYER_CD (cdp)) == FALSE
          || cd_close (CDPLAYER_CD (cdp)) == FALSE) {
        return GST_STATE_CHANGE_FAILURE;
      }

      break;
    default:
      break;
  }

  if (GST_ELEMENT_CLASS (parent_class)->change_state) {
    GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
  }

  return GST_STATE_CHANGE_SUCCESS;
}
int main(int argc, char *argv[])
{
	volumenode *left_node, *right_node;

	cd_parameter p;
	p.max_length = atoi(argv[9]);
	p.max_triangle = atoi(argv[10]);

	left_node = cd_init(argv[1], &p);
	right_node = cd_init(argv[2], &p);
	
	clock_t start, end;
	start = clock();
	
	JAngle robotangle(atof(argv[3]), atof(argv[4]), atof(argv[5]), atof(argv[6]),
		  atof(argv[7]), atof(argv[8]));
	
	/* JAngle robotangle(0.0, -23.00, 52.500, 16.00, 19.00, 0.00); */
	JAngle exangle(0.00, 0.00, 0.00, 0.00, 0.00, 0.00);
	

	TRANS j0_trans = Transform::getTransWorldToBase(exangle);
	TRANS j1_trans, j2_trans, j3_trans, j4_trans, j5_trans, j6_trans;
	TRANS part_trans, newgun_trans;

	Transform::getTransBaseToJoints(robotangle, j1_trans, j2_trans, j3_trans, j4_trans, j5_trans, j6_trans);
	newgun_trans = Transform::getTrans6ToGun();
	
	j1_trans = j0_trans * j1_trans;
	j2_trans = j0_trans * j2_trans;
	j3_trans = j0_trans * j3_trans;
	j4_trans = j0_trans * j4_trans;
	j5_trans = j0_trans * j5_trans;
	j6_trans = j0_trans * j6_trans;
	newgun_trans = j6_trans * newgun_trans;
	
	part_trans = Transform::getTransWorldToWorkpiece(exangle);
	
	/* newgun_trans.rot.mem[0][0] = -0.31028574744121573; */
	/* newgun_trans.rot.mem[0][1] = -0.76055620150283443; */
	/* newgun_trans.rot.mem[0][2] = 0.57033062278859459; */
	/* newgun_trans.rot.mem[1][0] = -0.20326345994589520; */
	/* newgun_trans.rot.mem[1][1] = 0.63914569443991687; */
	/* newgun_trans.rot.mem[1][2] = 0.74173900202816612; */
	/* newgun_trans.rot.mem[2][0] = -0.92865855985161161; */
	/* newgun_trans.rot.mem[2][1] = 0.11422366494950395; */
	/* newgun_trans.rot.mem[2][2] = -0.35291108452389802; */
	/* /\* newgun_trans.pos.dx = -600.00000000000000; *\/ */
	/* /\* newgun_trans.pos.dy = 429.99999998934874; *\/ */
	/* /\* newgun_trans.pos.dz = 2087.0000000021946; *\/ */
	
	/* newgun_trans.pos.dx = 94.771302128496586; */
	/* newgun_trans.pos.dy = -505.20287976357167; */
	/* newgun_trans.pos.dz = 1222.0426991063437; */

	newgun_trans.rot.mem[0][0] = -0.036801385144649992;
	newgun_trans.rot.mem[0][1] = -0.74802231932451657;
	newgun_trans.rot.mem[0][2] = 0.66265244875711904;
	newgun_trans.rot.mem[1][0] = 0.73624785273584337;
	newgun_trans.rot.mem[1][1] = 0.42807339281869838;
	newgun_trans.rot.mem[1][2] = 0.52411093263024766;
	newgun_trans.rot.mem[2][0] = -0.67571055740849195;
	newgun_trans.rot.mem[2][1] = 0.50716445079782491;
	newgun_trans.rot.mem[2][2] = 0.53497613260186283;
	
	newgun_trans.pos.dx = 159.55751427696521;
	newgun_trans.pos.dy = 700.79742899056282;
	newgun_trans.pos.dz = 2790.4503015644741;

	part_trans.rot.mem[0][0] =-5.1036340138841535e-012;
	part_trans.rot.mem[0][1] = 1.0000000000000000;
	part_trans.rot.mem[0][2] = -5.1036340138841535e-012;
	part_trans.rot.mem[1][0] = -1.0000000000000000;
	part_trans.rot.mem[1][1] = -5.1036340138581062e-012;
	part_trans.rot.mem[1][2] = -5.1036340139102000e-012;
	part_trans.rot.mem[2][0] = -5.1036340138841527e-012;
	part_trans.rot.mem[2][1] = -5.1036340139102008e-012;
	part_trans.rot.mem[2][2] = 1.0000000000000000;


	part_trans.pos.dx = -600.0000000000;
	part_trans.pos.dy = 429.99999998934874;
	part_trans.pos.dz = 2087.0000000021946;

	/* TRANS gun; */
	/* TRANS part; */
	
	/* newgun_trans.rot.mem[0][0] = -0.31028574744121573; */
	/* newgun_trans.rot.mem[0][1] = -0.76055620150283443; */
	/* newgun_trans.rot.mem[0][2] = 0.57033062278859459; */
	/* newgun_trans.rot.mem[1][0] = -0.20326345994589520; */
	/* newgun_trans.rot.mem[1][1] = 0.63914569443991687; */
	/* newgun_trans.rot.mem[1][2] = 0.74173900202816612; */
	/* newgun_trans.rot.mem[2][0] = -0.92865855985161161; */
	/* newgun_trans.rot.mem[2][1] = 0.11422366494950395; */
	/* newgun_trans.rot.mem[2][2] = -0.35291108452389802; */
	/* newgun_trans.pos.dx = -600.00000000000000; */
	/* newgun_trans.pos.dy = 429.99999998934874; */
	/* newgun_trans.pos.dz = 2087.0000000021946; */

	/* part_trans.rot.mem[0][0] =-5.1036340138841535e-012; */
	/* part_trans.rot.mem[0][1] = 1.0000000000000000; */
	/* part_trans.rot.mem[0][2] = -5.1036340138841535e-012; */
	/* part_trans.rot.mem[1][0] = -1.0000000000000000; */
	/* part_trans.rot.mem[1][1] = -5.1036340138581062e-012; */
	/* part_trans.rot.mem[1][2] = -5.1036340139102000e-012; */
	/* part_trans.rot.mem[2][0] = -5.1036340138841527e-012; */
	/* part_trans.rot.mem[2][1] = -5.1036340139102008e-012; */
	/* part_trans.rot.mem[2][2] = 1.0000000000000000; */
	/* part_trans.pos.dx = 94.771302128496586; */
	/* part_trans.pos.dy = -505.20287976357167; */
	/* part_trans.pos.dz = 1222.0426991063437; */
		

	vector3d tmp1, tmp2;
	tmp1.x = newgun_trans.pos.dx;
	tmp1.y = newgun_trans.pos.dy;
	tmp1.z = newgun_trans.pos.dz;

	tmp2.x = part_trans.pos.dx;
	tmp2.y = part_trans.pos.dy;
	tmp2.z = part_trans.pos.dz;

	int i;

	for (i = 0; i < 1; ++i) {
		if (collision_detection2(right_node, part_trans.rot.mem, &tmp2, left_node, newgun_trans.rot.mem, &tmp1)) {
			printf("\ncollision detected!\n\n");
		} else {
			printf("\nno collision!\n\n");
		}
		/* collision_detection2(left_top_node, right_top_node); */
	}
	
	end = clock();
	
	printf("run %d times, time elapsed %f\n", i, (double)(end - start) / CLOCKS_PER_SEC);

#ifdef DEBUG
	printf("cdcount = %d\n", cdcount);

	printf("triangle_cd_count = %d\n", triangle_cd_count);
#endif

#ifdef SHOW
	show_tree_recur(left_node, 0);
	printf("rightnode\n");
	show_tree_recur(right_node, 0);
#endif
	
	cd_finish(left_node);
	cd_finish(right_node);

	return 0;
}
Example #7
0
int main()
{
    char cmd[20];
    int done = 0;
    int ret, trk, a, b;

    if (cd_init() < 0) {
	printf("Error initialising libcda (%s)\n", cd_error);
	return 1;
    }
	
    show_cmds();

    do {  
	printf(">>> ");
	fflush(stdout);
	scanf("%s", cmd);

	switch (cmd[0]) {
	    case '?':
		show_cmds();
		break;

	    case 'p':
		trk = input_int("Track");
		ret = cd_play(trk);
		if (ret != 0)
		    printf("Error occurred (%s)\n", cd_error);
		break;

	    case 'r':
		a = input_int("First track");
		b = input_int("Last track");
		ret = cd_play_range(a, b);
		if (ret != 0)
		    printf("Error occurred (%s)\n", cd_error);
		break;

	    case 'f':
		trk = input_int("Start track");
		ret = cd_play_from(trk);
		if (ret != 0)
		    printf("Error occurred (%s)\n", cd_error);
		break;

	    case 'P':
		trk = cd_current_track();
		if (trk)
		    printf("Playing track %d\n", trk);
		else
		    printf("Not playing\n");
		break;

	    case 'w':
		cd_pause();
		break;

	    case 'W':
		cd_resume();
		break;

	    case 'S':
		ret = cd_is_paused();
		if (ret)
		    printf("Paused\n");
		else
		    printf("Not paused\n");
		break;

	    case 's':
		cd_stop();
		break;

	    case 'i':
		ret = cd_get_tracks(&a, &b);
		if (ret != 0)
		    printf("Error occurred (%s)\n", cd_error);
		else
		    printf("First track: %d\nLast track: %d\n", a, b);
		break;

	    case 'a':
		trk = input_int("Track");
		ret = cd_is_audio(trk);
		if (ret < 0)
		    printf("Error occurred (%s)\n", cd_error);
		else
		    printf("Track %d is %s\n", trk, (ret ? "audio" : "data"));
		break;

	    case 'v':
		a = input_int("Left (0-255)");
		b = input_int("Right (0-255)");
		cd_set_volume(a, b);
		break;

	    case 'V':
		cd_get_volume(&a, &b);
		printf("Left volume: %d\nRight volume: %d\n", a, b);
		break;

	    case 'e':
		cd_eject();
		break;

	    case 'c':
		cd_close();
		break;

	    case 'q':
		done = 1;
		break;

	    default:
		printf("Unrecognised command: `%c'\n", cmd[0]);
	}
    } while (!done);

    cd_exit();
    
    return 0;
}