Audio-CD

 view release on metacpan or  search on metacpan

CD.xs  view on Meta::CPAN


int
cd_eject(cd_desc)
    Audio::CD cd_desc

int
cd_close(cd_desc)
    Audio::CD cd_desc

Audio::CD::Info
cd_stat(cd_desc)
    Audio::CD cd_desc

    CODE:
    RETVAL = (Audio__CD__Info)safemalloc(sizeof(*RETVAL));
    cd_stat(cd_desc, RETVAL);

    OUTPUT:
    RETVAL

int
cd_play_frames(cd_desc, startframe, endframe)
    Audio::CD cd_desc
    int startframe
    int endframe

cddb_lookup.c  view on Meta::CPAN

    if (ixs_func) {
	return (*ixs_func)();
    }
    else {
	char inbuffer[256];
	fgets(inbuffer, sizeof(inbuffer), stdin);
	return strtol(inbuffer, NULL, 10);
    }
}

int cdcd_cd_stat(int cd_desc, struct disc_info *disc)
{
   cd_stat(cd_desc, disc);
   if(!disc->disc_present) {
      cd_close(cd_desc);
      cd_stat(cd_desc, disc);
      if(!disc->disc_present) {
	 if (verbosity) puts("No disc in drive");
	 return -1;
      }
   }
    
   return 0;
}

void cddb_lookup(int cd_desc, struct disc_data *data)

cddb_lookup.c  view on Meta::CPAN

   int index, serverindex, selection, sock = -1;
   struct disc_info disc;
   struct cddb_conf conf;
   struct cddb_serverlist list;
   struct cddb_server *proxy;
   struct cddb_entry entry;
   struct cddb_hello hello;
   struct cddb_query query;
   char http_string[512], discid[CDINDEX_ID_SIZE];
   
   if(cdcd_cd_stat(cd_desc, &disc) < 0)
     return;
   
   if(0)
     cddb_read_disc_data(cd_desc, data);
   else {
      cddb_stat_disc_data(cd_desc, &entry);
      
      if(entry.entry_present) {
	 if(entry.entry_timestamp == timestamp && entry.entry_id == timestamped_discid)
	   return;



( run in 1.004 second using v1.01-cache-2.11-cpan-49f99fa48dc )