/* This file is part of Clementine. Copyright 2012, David Sansome Clementine is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Clementine is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Clementine. If not, see . */ #ifndef PODCASTS_PODCASTEPISODE_H_ #define PODCASTS_PODCASTEPISODE_H_ #include "core/song.h" #include #include #include #include class Podcast; class PodcastEpisode { public: PodcastEpisode(); PodcastEpisode(const PodcastEpisode& other); ~PodcastEpisode(); static const QStringList kColumns; static const QString kColumnSpec; static const QString kJoinSpec; static const QString kBindSpec; static const QString kUpdateSpec; void InitFromQuery(const QSqlQuery& query); void BindToQuery(QSqlQuery* query) const; Song ToSong(const Podcast& podcast) const; bool is_valid() const { return database_id() != -1; } int database_id() const; int podcast_database_id() const; const QString& title() const; const QString& description() const; const QString& author() const; const QDateTime& publication_date() const; int duration_secs() const; const QUrl& url() const; bool listened() const; const QDateTime& listened_date() const; bool downloaded() const; const QUrl& local_url() const; const QVariantMap& extra() const; QVariant extra(const QString& key) const; void set_database_id(int v); void set_podcast_database_id(int v); void set_title(const QString& v); void set_description(const QString& v); void set_author(const QString& v); void set_publication_date(const QDateTime& v); void set_duration_secs(int v); void set_url(const QUrl& v); void set_listened(bool v); void set_listened_date(const QDateTime& v); void set_downloaded(bool v); void set_local_url(const QUrl& v); void set_extra(const QVariantMap& v); void set_extra(const QString& key, const QVariant& value); PodcastEpisode& operator=(const PodcastEpisode& other); private: struct Private; QSharedDataPointer d; }; Q_DECLARE_METATYPE(PodcastEpisode) typedef QList PodcastEpisodeList; Q_DECLARE_METATYPE(QList) #endif // PODCASTS_PODCASTEPISODE_H_