//global flags int power = 1; //0 is off, 1 is on, set to 1 initially to get control of cd player int play_pause = 0; //0 is pause, 1 is play, set intially to pause so that we can play the first track int t = 4.1; //initalize to length of tracks, MUST ADJUST THIS VALUE void initialize_cd_player() { int i; for (i=0; i<=4; i++) { set_digital_out(i); } //get control of cd player sleep (1.0); power_off(); //turn cd play on sleep(3.0); //wait for shutdown to complete power_on(); printf ("Initialization done\n"); } void init_CD() { //set digital outputs 0-4 = 1 initialize_cd_player(); //DO STUFF HERE -- remember to put some sleeps in to accomodate for physical speed } /* Here's what the 5 pins do 0: white = power 1: grey = stop 2: purple = fast forwards 3: blue = play/pause 4: green = backwards In order to do an operation we must first clear then set */ void power_on() { if (power == 0) { //like pressing on button clear_digital_out(0); sleep(0.5); set_digital_out(0); power = 1; } } void power_off() { if (power == 1) { clear_digital_out(0); sleep(0.5); set_digital_out(0); power = 0; } } void cd_stop() { clear_digital_out(1); sleep(0.5); set_digital_out(1); } void play() { if (play_pause == 0) //we know it was paused or the code is just starting up { clear_digital_out(3); sleep(0.5); set_digital_out(3); play_pause = 1; //set flag to play } } void pause() { if (play_pause == 1) { clear_digital_out(3); sleep(0.5); set_digital_out(3); play_pause = 0; //set flag to pause } } //sleep fastforwards to length of time; will use this to get to appropriate tracks void fast_forward(int track_number) { int i; for (i=0; i<= track_number; i++) { clear_digital_out(2); sleep(t); set_digital_out(2); } } //sleep backwards to length of time; could use this to get to appropriate tracks //-- will probably only use fastforwards void backwards(int track_number) { int i; for (i=0; i<= track_number; i++) { clear_digital_out(4); sleep(t); set_digital_out(4); } }