コード例 #1
0
ファイル: MediaScanner.cpp プロジェクト: Jiangyi/12055
MediaScanner::MediaScanner()
    #ifdef VENDOR_EDIT
    //[email protected] add for ID3 support of different countries 2013/08/26
    : mLocale(NULL), mAudioFileNameRegion(NULL), mSkipList(NULL), mSkipIndex(NULL) {
    #else /* VENDOR_EDIT */
    : mLocale(NULL), mSkipList(NULL), mSkipIndex(NULL) {
    #endif /* VENDOR_EDIT */
    loadSkipList();
}

MediaScanner::~MediaScanner() {
    setLocale(NULL);
    #ifdef VENDOR_EDIT
    //[email protected] add for ID3 support of different countries 2013/08/26
    setAudioFileNameRegion(NULL);
    #endif /* VENDOR_EDIT */
    free(mSkipList);
    free(mSkipIndex);
}

void MediaScanner::setLocale(const char *locale) {
    if (mLocale) {
        free(mLocale);
        mLocale = NULL;
    }
    if (locale) {
        mLocale = strdup(locale);
    }
}

#ifdef VENDOR_EDIT
//[email protected] add for ID3 support of different countries 2013/08/26
void MediaScanner::setAudioFileNameRegion(const char *audioFileNameRegion) {
    if (mAudioFileNameRegion) {
        free(mAudioFileNameRegion);
        mAudioFileNameRegion = NULL;
    }
    if (audioFileNameRegion) {
        mAudioFileNameRegion = strdup(audioFileNameRegion);
    }
}
#endif /* VENDOR_EDIT */
const char *MediaScanner::locale() const {
    return mLocale;
}

#ifdef VENDOR_EDIT
//[email protected] add for ID3 support of different countries 2013/08/26
const char *MediaScanner::getAudioFileNameRegion() const {
    return mAudioFileNameRegion;
}
#endif /* VENDOR_EDIT */

void MediaScanner::loadSkipList() {
    mSkipList = (char *)malloc(PROPERTY_VALUE_MAX * sizeof(char));
    if (mSkipList) {
        property_get("testing.mediascanner.skiplist", mSkipList, "");
    }
    if (!mSkipList || (strlen(mSkipList) == 0)) {
        free(mSkipList);
        mSkipList = NULL;
        return;
    }
    mSkipIndex = (int *)malloc(PROPERTY_VALUE_MAX * sizeof(int));
    if (mSkipIndex) {
        // dup it because strtok will modify the string
        char *skipList = strdup(mSkipList);
        if (skipList) {
            char * path = strtok(skipList, ",");
            int i = 0;
            while (path) {
                mSkipIndex[i++] = strlen(path);
                path = strtok(NULL, ",");
            }
            mSkipIndex[i] = -1;
            free(skipList);
        }
    }
}
コード例 #2
0
MediaScanner::MediaScanner()
    : mLocale(NULL), mSkipList(NULL), mSkipIndex(NULL) {
    loadSkipList();
}