Exemplo n.º 1
0
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;
  }
}
Exemplo n.º 2
0
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);
    }
  }
Exemplo n.º 3
0
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);
}
Exemplo n.º 4
0
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);
}
Exemplo n.º 5
0
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());
}
Exemplo n.º 6
0
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);
}
Exemplo n.º 7
0
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();
  }
}