/* * 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 ; }
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; }
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); }
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; }
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; }