CanPHP框架技术讨论

导航

 
//Open and parse a M3U file:
int M3U_open(char *fileName){
    FILE *f;
    char lineText[512];
    char chrLength[20];
    char title[264];
    struct M3U_songEntry *singleEntry;
    int playListCount = lPlayList.songCount;
 
    f = fopen(fileName, "rt");
    if (f == NULL){
        //Error opening file:
        return(-1);
    }
 
    while(fgets(lineText, 256, f) != NULL){
        if (!strncmp(lineText, "#EXTINF:", 8)){
            //Length and title:
            splitSongInfo(lineText, chrLength, title);
        }else if (!strncmp(lineText, "#EXTM3U", 7)){
            //Nothing to do. :)
        }else if (strlen(lineText) > 2){
            //Store song info:
            singleEntry = &lPlayList.songs[playListCount++];
            strncpy(singleEntry->fileName, lineText, 263);
            singleEntry->fileName[263] = '\0';
            if ((int)singleEntry->fileName[strlen(singleEntry->fileName) - 1] == 10 || (int)singleEntry->fileName[strlen(singleEntry->fileName) - 1] == 13 ){
                singleEntry->fileName[strlen(singleEntry->fileName) - 1] = '\0';
            }
            if ((int)singleEntry->fileName[strlen(singleEntry->fileName) - 1] == 10 || (int)singleEntry->fileName[strlen(singleEntry->fileName) - 1] == 13 ){
                singleEntry->fileName[strlen(singleEntry->fileName) - 1] = '\0';
            }
 
            if (strlen(title)){
                strncpy(singleEntry->title, title, 263);
            }else{
                getFileName(singleEntry->fileName, singleEntry->title);
            }
            singleEntry->title[263] = '\0';
            singleEntry->length = atoi(chrLength);
            if (playListCount == MAX_SONGS){
                break;
            }
        }
    }
    fclose(f);
 
    lPlayList.modified = 0;
    lPlayList.songCount = playListCount;
    strcpy(lPlayList.fileName, fileName);
    return(0);
}
posted on 2012-11-26 11:34  創丗仼  阅读(1128)  评论(0编辑  收藏  举报