コード例 #1
0
ファイル: Connection.cpp プロジェクト: PatrickGleeson/mpdmm
std::vector<Album> Connection::get_albums(){ // All
	return parse_albums(execute_and_return("list album"));
} // Tested
コード例 #2
0
ファイル: data_manager.cpp プロジェクト: freedombird/xm-cli
int DataManager::ParseAlbumsInfo(struct MemoryStruct *pJson)
{
    Json::Reader reader;
    Json::Value root;
    bool ret;

    ret = reader.parse((const char*)pJson->memory, root);
    if (!ret)
    {
        std::cout  << "Failed to parse configuration\n"
                   << reader.getFormatedErrorMessages();
        return  0;
    }
    bool isNull = root["status"].isNull();
    if (isNull)
    {
        printf("get ParseAlbumsInfo null\n");
        return 0;
    }
    bool flags=false;
    int size =0;
    int i=0;

    flags = root.isMember("collects");
    if(flags) {
        Json::Value collects;
        std::string isMyCollect;
        const char *mine = "true";
        retCollectNum=0;
        retFavCollectNum=0;

        printf("*** parse collects\n");
        collects = root["collects"];
        if(collects.isNull())
            return 0;
        size = collects.size();
        isMyCollect = collects[i]["ismycollect"].asString();
        if(mine == isMyCollect) {
            retFavCollectNum = size;
            printf("*** favCollectNum size=%d\n", retFavCollectNum);
        }
        else  {
            retCollectNum= size;
            printf("*** collectNum size=%d\n", retCollectNum);
        }
        parse_albums(collects, MyAlbums);
    }
    flags = root.isMember("albums");
    if(flags) {
        printf("*** parse albums\n");
        Json::Value albums = root["albums"];
        retAlbumNum =0;
        artist_total_album=0;
        if(albums.isNull())
            return 0;
        if(root.isMember("albums_count")) {
            std::string albums_cnt;
            albums_cnt = root["albums_count"].asString();
            artist_total_album = atoi(albums_cnt.c_str());
        }
        retAlbumNum= albums.size();
        parse_albums(albums, MyAlbums);
    }
    flags = root.isMember("artists");
    if(flags) {
        printf("*** parse artists\n");
        Json::Value artists = root["artists"];
        std::string alb_cnt;
        retArtistNum =0;
        if(artists.isNull())
            return 0;
        alb_cnt = root["albums_count"].asInt();
        retAlbumNum = atoi(alb_cnt.c_str()); // artist's total album number
        retArtistNum = artists.size();
        parse_albums(artists, MyAlbums);
    }
    return 1;
}
コード例 #3
0
ファイル: Connection.cpp プロジェクト: PatrickGleeson/mpdmm
std::vector<Album> Connection::get_albums(const char* artist){ // Not happy with this as it would cause multiple local objects representing the same db objects
	std::stringstream command;
	command << "list album \"" << artist << "\"";
	return parse_albums(execute_and_return(command.str().c_str()));
} // Tested