Exemplo n.º 1
0
void TopLists::cb_toplistAlbumsComplete(sp_toplistbrowse *result,
		void *userdata) {
	Logger::printOut("toplist albums callback");
	TopLists *lists = (TopLists*) (userdata);

	vector<SxAlbum*> newAlbums;

	for (int index = 0; index < sp_toplistbrowse_num_albums(result); index++) {
		sp_album* tempalbum = sp_toplistbrowse_album(result, index);
		if (tempalbum == NULL)
			continue;
		while (!sp_album_is_loaded(tempalbum))
			;

		if (sp_album_is_available(tempalbum)) {
			SxAlbum* album = AlbumStore::getInstance()->getAlbum(tempalbum, true);
			if (album != NULL)
				newAlbums.push_back(album);
		}
	}

	lists->removeAllAlbums();
	lists->m_albums = newAlbums;

	struct timeb tmb;
	ftime(&tmb);
	lists->m_albumsNextReload.Set(1000 * 60 * 60 * 24);
	lists->m_waitingForAlbums = false;
	lists->m_albumsLoaded = true;
	Logger::printOut("Toplist albums loaded");
}
Exemplo n.º 2
0
bool QSpotifyAlbum::updateData()
{
    bool updated = false;

    bool isAvailable = sp_album_is_available(m_sp_album);
    sp_artist *a = sp_album_artist((m_sp_album));
    QString artist;
    if (a)
        artist = QString::fromUtf8(sp_artist_name(a));
    QString name = QString::fromUtf8(sp_album_name(m_sp_album));
    int year = sp_album_year(m_sp_album);
    Type type = Type(sp_album_type(m_sp_album));

    // Get cover
    const byte *album_cover_id = sp_album_cover(m_sp_album, SP_IMAGE_SIZE_NORMAL);
    if (album_cover_id != 0 && m_coverId.isEmpty()) {
        sp_link *link = sp_link_create_from_album_cover(m_sp_album, SP_IMAGE_SIZE_NORMAL);
        if (link) {
            char buffer[200];
            int uriSize = sp_link_as_string(link, &buffer[0], 200);
            m_coverId = QString::fromUtf8(&buffer[0], uriSize);
            sp_link_release(link);
            updated = true;
        }
    }

    if (isAvailable != m_isAvailable) {
        m_isAvailable = isAvailable;
        updated = true;
    }
    if (artist != m_artist) {
        m_artist = artist;
        updated = true;
    }
    if (name != m_name) {
        m_name = name;
        updated = true;
    }
    if (year != m_year) {
        m_year = year;
        updated = true;
    }
    if (type != m_type) {
        m_type = type;
        updated = true;
    }

    return updated;
}
void QSpotifySearch::populateAlbums(sp_search *search)
{
    m_albumResults->clear();
    if (m_enablePreview)
        m_albumResultsPreview->clear();


    if (search) {
        int c = sp_search_num_albums(search);
        for (int i = 0; i < c; ++i) {
            sp_album *a = sp_search_album(search, i);
            if (!sp_album_is_available(a))
                continue;
            std::shared_ptr<QSpotifyAlbum> album = QSpotifyCacheManager::instance().getAlbum(a);
            m_albumResults->appendRow(album);
            if(m_enablePreview && i < m_numPreviewItems)
                m_albumResultsPreview->appendRow(album);
        }
    }
}
Exemplo n.º 4
0
static PyObject *
Album_is_available(Album * self)
{
    return Py_BuildValue("i", sp_album_is_available(self->_album));
}