UrlHandler::LoadResult LastFMUrlHandler::StartLoading(const QUrl& url) { if (!service_->IsAuthenticated()) return LoadResult(); service_->Tune(url); return LoadResult(url, LoadResult::WillLoadAsynchronously); }
UrlHandler::LoadResult LastFMUrlHandler::LoadNext(const QUrl& url) { const QUrl media_url = service_->DeququeNextMediaUrl(); if (media_url.isEmpty()) { return LoadResult(); } return LoadResult(url, LoadResult::TrackAvailable, media_url); }
UrlHandler::LoadResult VkUrlHandler::LoadNext(const QUrl& url) { if (url.host() == "group") { return StartLoading(url); } else { return LoadResult(url); } }
void DigitallyImportedUrlHandler::LoadPlaylistFinished(QIODevice* device) { if (task_id_ == -1) { return; } // Stop the spinner in the status bar CancelTask(); // Try to parse the playlist PlaylistParser parser(nullptr); QList<Song> songs = parser.LoadFromDevice(device); qLog(Info) << "Loading station finished, got" << songs.count() << "songs"; // Failed to get playlist? if (songs.count() == 0) { service_->StreamError(tr("Error loading di.fm playlist")); return; } emit AsyncLoadComplete(LoadResult( last_original_url_, LoadResult::TrackAvailable, songs[0].url())); }
UrlHandler::LoadResult GroovesharkUrlHandler::StartLoading(const QUrl& url) { qint64 length_nanosec = 0; QUrl streaming_url; QStringList ids = url.toString().remove("grooveshark://").split("/"); if (ids.size() < 3) { qLog(Error) << "Invalid grooveshark URL: " << url.toString(); qLog(Error) << "Should be grooveshark://artist_id/album_id/song_id"; } else { last_artist_id_ = ids[0]; last_album_id_ = ids[1]; last_song_id_ = ids[2]; streaming_url = service_->GetStreamingUrlFromSongId( last_song_id_, last_artist_id_, &last_server_id_, &last_stream_key_, &length_nanosec); qLog(Debug) << "Grooveshark Streaming URL: " << streaming_url; timer_mark_stream_key_->start(); } return LoadResult(url, LoadResult::TrackAvailable, streaming_url, length_nanosec); }
/* * TODO: clever way of implementing these 2 functions */ LoadResult ProblemLoader::loadCriteria() { std::vector<std::string> criteria = getLinesContaining("class=Criteria"); LoadResult result(ERROR); CriteriaDao c; switch (criteria.size()) { case 0: result.addMessage("ERROR: Can't find criteria class"); break; case 1: if (c.deserialize(criteria[0])) { p.setCriteria(c.getCriteria()); return LoadResult(SUCCESFUL); } else { result.addMessage("ERROR: Could not parse deserialize criteria. Input: " + criteria[0]); break; } break; default: result.addMessage("ERROR: Too many criteria elements?"); break; } return result; }
void LastFMUrlHandler::TunerError() { emit AsyncLoadComplete(LoadResult(service_->last_url_, LoadResult::NoMoreTracks)); }
UrlHandler::LoadResult DropboxUrlHandler::StartLoading(const QUrl& url) { return LoadResult(url, LoadResult::TrackAvailable, service_->GetStreamingUrlFromSongId(url)); }
UrlHandler::LoadResult SkydriveUrlHandler::StartLoading(const QUrl& url) { QString file_id(url.path()); QUrl real_url = service_->GetStreamingUrlFromSongId(file_id); return LoadResult(url, LoadResult::TrackAvailable, real_url); }