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"); }
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); } } }
static PyObject * Album_is_available(Album * self) { return Py_BuildValue("i", sp_album_is_available(self->_album)); }