Example #1
0
UrlHandler::LoadResult LastFMUrlHandler::StartLoading(const QUrl& url) {
  if (!service_->IsAuthenticated())
    return LoadResult();

  service_->Tune(url);
  return LoadResult(url, LoadResult::WillLoadAsynchronously);
}
Example #2
0
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);
}
Example #6
0
/*
 * 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;
}
Example #7
0
void LastFMUrlHandler::TunerError() {
  emit AsyncLoadComplete(LoadResult(service_->last_url_, LoadResult::NoMoreTracks));
}
Example #8
0
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);
}