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