File indexing completed on 2024-05-05 04:48:50
0001 /**************************************************************************************** 0002 * Copyright (c) 2011 Lucas Lira Gomes <x8lucas8x@gmail.com> * 0003 * * 0004 * This program is free software; you can redistribute it and/or modify it under * 0005 * the terms of the GNU General Public License as published by the Free Software * 0006 * Foundation; either version 2 of the License, or (at your option) any later * 0007 * version. * 0008 * * 0009 * This program is distributed in the hope that it will be useful, but WITHOUT ANY * 0010 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * 0011 * PARTICULAR PURPOSE. See the GNU General Public License for more details. * 0012 * * 0013 * You should have received a copy of the GNU General Public License along with * 0014 * this program. If not, see <http://www.gnu.org/licenses/>. * 0015 ****************************************************************************************/ 0016 0017 #ifndef SYNCEDPODCAST_H 0018 #define SYNCEDPODCAST_H 0019 0020 #include "core/podcasts/PodcastMeta.h" 0021 #include "playlistmanager/SyncedPlaylist.h" 0022 0023 class SyncedPodcast : public SyncedPlaylist, public Podcasts::PodcastChannel 0024 { 0025 public: 0026 explicit SyncedPodcast( Podcasts::PodcastChannelPtr podcast ); 0027 ~SyncedPodcast() override {} 0028 0029 //Playlist virtual methods 0030 QString name() const override { return title(); } 0031 0032 //PodcastMetaCommon methods 0033 QString title() const override { return m_master->title(); } 0034 QString description() const override { return m_master->description(); } 0035 QStringList keywords() const override { return m_master->keywords(); } 0036 QString subtitle() const override { return m_master->subtitle(); } 0037 QString summary() const override { return m_master->summary(); } 0038 QString author() const override { return m_master->author(); } 0039 0040 //Podcasts::PodcastChannel methods 0041 QUrl url() const override { return m_master->url(); } 0042 QUrl webLink() const override { return m_master->webLink(); } 0043 bool hasImage() const override { return m_master->hasImage(); } 0044 QUrl imageUrl() const override { return m_master->imageUrl(); } 0045 QImage image() const override { return m_master->image(); } 0046 QString copyright() const override { return m_master->copyright(); } 0047 QStringList labels() const override { return m_master->labels(); } 0048 QDate subscribeDate() const override { return m_master->subscribeDate(); } 0049 0050 void setUrl( const QUrl &url ) override { m_master->setUrl( url ); } 0051 void setWebLink( const QUrl &link ) override { m_master->setWebLink( link ); } 0052 void setImage( const QImage &image ) override { m_master->setImage( image ); } 0053 void setImageUrl( const QUrl &imageUrl ) override { m_master->setImageUrl( imageUrl ); } 0054 void setCopyright( const QString ©right ) override { m_master->setCopyright( copyright ); } 0055 void setLabels( const QStringList &labels ) override { m_master->setLabels( labels ); } 0056 void addLabel( const QString &label ) override { m_master->addLabel( label ); } 0057 void setSubscribeDate( const QDate &date ) override { m_master->setSubscribeDate( date ); } 0058 0059 Podcasts::PodcastEpisodePtr addEpisode( const Podcasts::PodcastEpisodePtr &episode ) override 0060 { 0061 return m_master->addEpisode( episode ); 0062 } 0063 Podcasts::PodcastEpisodeList episodes() const override { return m_master->episodes(); } 0064 0065 bool load( QTextStream &stream ) { return m_master->load( stream ); } 0066 0067 //Settings 0068 virtual QUrl saveLocation() const { return m_master->saveLocation(); } 0069 virtual bool autoScan() const { return m_master->autoScan(); } 0070 virtual bool hasPurge() const { return m_master->hasPurge(); } 0071 virtual int purgeCount() const { return m_master->purgeCount(); } 0072 0073 void setSaveLocation( const QUrl &url ) { m_master->setSaveLocation( url ); } 0074 void setAutoScan( bool autoScan ) { m_master->setAutoScan( autoScan ); } 0075 void setFetchType( Podcasts::PodcastChannel::FetchType fetchType ) 0076 { 0077 m_master->setFetchType( fetchType ); 0078 } 0079 void setPurge( bool purge ) { m_master->setPurge( purge ); } 0080 void setPurgeCount( int purgeCount ) { m_master->setPurgeCount( purgeCount ); } 0081 0082 private: 0083 Podcasts::PodcastChannelPtr m_master; 0084 }; 0085 0086 typedef AmarokSharedPointer<SyncedPodcast> SyncedPodcastPtr; 0087 typedef QList<SyncedPodcastPtr> SyncedPodcastList; 0088 0089 Q_DECLARE_METATYPE( SyncedPodcastPtr ) 0090 Q_DECLARE_METATYPE( SyncedPodcastList ) 0091 0092 #endif // SYNCEDPODCAST_H