void SpotifySearchProvider::LoadTracksAsync(int id, const Result& result) { switch (result.type_) { case globalsearch::Type_Track: { SongMimeData* mime_data = new SongMimeData; mime_data->songs = SongList() << result.metadata_; emit TracksLoaded(id, mime_data); break; } case globalsearch::Type_Album: { SpotifyServer* s = server(); if (!s) { emit TracksLoaded(id, NULL); return; } QString uri = result.metadata_.url().toString(); pending_tracks_[uri] = id; s->AlbumBrowse(uri); break; } default: break; } }
void GoogleDriveService::FilesDeleted(const QList<QUrl>& files) { foreach (const QUrl& url, files) { Song song = library_backend_->GetSongByUrl(url); qLog(Debug) << "Deleting:" << url << song.title(); if (song.is_valid()) { library_backend_->DeleteSongs(SongList() << song); } }
SongList PlaylistParser::LoadFromDevice(QIODevice* device, const QString& path_hint, const QDir& dir_hint) const { // Find a parser that supports this data ParserBase* parser = ParserForMagic(device->peek(kMagicSize)); if (!parser) { return SongList(); } return parser->Load(device, path_hint, dir_hint); }
void TagFetcher::PuidFound(int index, const QString& puid) { if (index >= songs_.count()) { return; } const Song& song = songs_[index]; if (puid.isEmpty()) { emit ResultAvailable(song, SongList()); return; } emit Progress(song, tr("Downloading metadata")); musicbrainz_client_->Start(index, puid); }
SongList PlaylistParser::LoadFromFile(const QString& filename) const { QFileInfo info(filename); // Find a parser that supports this file extension ParserBase* parser = ParserForExtension(info.suffix()); if (!parser) { qLog(Warning) << "Unknown filetype:" << filename; return SongList(); } // Open the file QFile file(filename); file.open(QIODevice::ReadOnly); return parser->Load(&file, filename, info.absolutePath()); }
void TagFetcher::FingerprintFound(int index) { QFutureWatcher<QString>* watcher = reinterpret_cast<QFutureWatcher<QString>*>(sender()); if (!watcher || index >= songs_.count()) { return; } const QString fingerprint = watcher->resultAt(index); const Song& song = songs_[index]; if (fingerprint.isEmpty()) { emit ResultAvailable(song, SongList()); return; } emit Progress(song, tr("Identifying song")); acoustid_client_->Start(index, fingerprint, song.length_nanosec() / kNsecPerMsec); }
void __fastcall TdmRemote::PlaylistRefreshExecute(TObject *) { frmPlaylist->lstSongs->Items->BeginUpdate(); try { try { WinampRemote::Utils::CursorGuard ci; LastLength = client->getPlaylistLength(); LastIndex = CurrentIndex; CurrentIndex = client->getCurrentPlayPosition(); frmPlaylist->lstSongs->Items->Clear(); std::auto_ptr<TStringList> SongList(new TStringList()); std::string list = client->getStringList(IPC_GETPLAYLISTTITLE); SongList->Clear(); SongList->Text = list.c_str(); frmPlaylist->lstSongs->Items->Assign(SongList.get()); } catch( ERPCException &E) { frmPlaylist->lstSongs->Items->Text = AnsiString().sprintf(sListUnobtainable.c_str(), E.what()); } } __finally { frmPlaylist->lstSongs->Items->EndUpdate(); } }