#include "radioplaylistitem.h" #include "radioservice.h" #include "radiomodel.h" #include RadioPlaylistItem::RadioPlaylistItem() : service_(NULL) { } RadioPlaylistItem::RadioPlaylistItem(RadioService* service, const QUrl& url, const QString& title) : service_(service), url_(url), title_(title) { } void RadioPlaylistItem::Save(QSettings& settings) const { settings.setValue("service", service_->name()); settings.setValue("url", url_.toString()); settings.setValue("title", title_); } void RadioPlaylistItem::Restore(const QSettings& settings) { service_ = RadioModel::ServiceByName(settings.value("service").toString()); url_ = settings.value("url").toString(); title_ = settings.value("title").toString(); } QString RadioPlaylistItem::Title() const { if (!service_) return "Radio service couldn't be loaded :-("; if (metadata_.is_valid()) return metadata_.title(); if (!title_.isEmpty()) return title_; return url_.toString(); } QString RadioPlaylistItem::Artist() const { return metadata_.is_valid() ? metadata_.artist() : QString::null; } QString RadioPlaylistItem::Album() const { return metadata_.is_valid() ? metadata_.album() : QString::null; } int RadioPlaylistItem::Length() const { return metadata_.is_valid() ? metadata_.length() : -1; } int RadioPlaylistItem::Track() const { return metadata_.is_valid() ? metadata_.track() : -1; } bool RadioPlaylistItem::StartLoading() { if (service_) service_->StartLoading(url_); return true; } bool RadioPlaylistItem::LoadNext() { if (service_) { service_->LoadNext(url_); return true; } return false; } QUrl RadioPlaylistItem::Url() { return url_; } void RadioPlaylistItem::SetTemporaryMetadata(const Song& metadata) { metadata_ = metadata; } void RadioPlaylistItem::ClearTemporaryMetadata() { metadata_ = Song(); }