Ejemplo n.º 1
0
void parse_directory(const char *dirpath) {
    DIR *dir;
    struct dirent *dentry;
    unsigned i;
    char *newpath, *extension;
    struct cue cue;
   
    dir = opendir(dirpath);
    if(!dir)
        return;
    for(;;) {
        dentry = readdir(dir);
        if(!dentry)
            break;
        if(dentry->d_name[0]=='.') {
            if(dentry->d_namlen==1 
            ||(dentry->d_namlen==2 && dentry->d_name[1]=='.'))
                continue;
        }

        asprintf(&newpath, "%s/%s", dirpath, dentry->d_name);
        extension = strrchr(dentry->d_name, '.');
        if(extension && !strcasecmp(extension+1, "cue")) {
            cue_from_file(&cue, newpath);
            export_cue_libsndfile(&cue, dirpath);
        } else {
            parse_directory(newpath);
        }
        free(newpath);
    }
    closedir(dir);

}
Ejemplo n.º 2
0
int cue_get_ntracks(const char *filename)
{
	struct cue_sheet *cd = cue_from_file(filename);
	if (!cd)
		return -1;
	size_t n = cd->num_tracks;
	cue_free(cd);
	return n;
}