File indexing completed on 2024-05-19 04:50:11

0001 /****************************************************************************************
0002  * Copyright (c) 2011 Stefan Derkits <stefan@derkits.at>                                *
0003  * Copyright (c) 2011 Christian Wagner <christian.wagner86@gmx.at>                      *
0004  * Copyright (c) 2011 Felix Winter <ixos01@gmail.com>                                   *
0005  * Copyright (c) 2011 Lucas Lira Gomes <x8lucas8x@gmail.com>                            *
0006  *                                                                                      *
0007  * This program is free software; you can redistribute it and/or modify it under        *
0008  * the terms of the GNU General Public License as published by the Free Software        *
0009  * Foundation; either version 2 of the License, or (at your option) any later           *
0010  * version.                                                                             *
0011  *                                                                                      *
0012  * This program is distributed in the hope that it will be useful, but WITHOUT ANY      *
0013  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A      *
0014  * PARTICULAR PURPOSE. See the GNU General Public License for more details.             *
0015  *                                                                                      *
0016  * You should have received a copy of the GNU General Public License along with         *
0017  * this program.  If not, see <http://www.gnu.org/licenses/>.                           *
0018  ****************************************************************************************/
0019 
0020 #ifndef GPODDERPODCASTMETA_H
0021 #define GPODDERPODCASTMETA_H
0022 
0023 #include "core/playlists/PlaylistProvider.h"
0024 #include "core/podcasts/PodcastMeta.h"
0025 #include <mygpo-qt5/ApiRequest.h>
0026 
0027 namespace Podcasts {
0028 
0029 class GpodderPodcastChannel;
0030 class GpodderProvider;
0031 
0032 typedef AmarokSharedPointer<GpodderPodcastChannel> GpodderPodcastChannelPtr;
0033 typedef QList<GpodderPodcastChannelPtr> GpodderPodcastChannelList;
0034 
0035 class GpodderPodcastChannel : public PodcastChannel
0036 {
0037     public:
0038         explicit GpodderPodcastChannel( GpodderProvider *provider );
0039 
0040         //Copy a PodcastChannel
0041         GpodderPodcastChannel( GpodderProvider *provider, PodcastChannelPtr channel );
0042 
0043         //Create a channel from a mygpo podcast channel
0044         GpodderPodcastChannel( GpodderProvider *provider, mygpo::PodcastPtr channel );
0045 
0046         //PodcastChannel Methods
0047         Playlists::PlaylistProvider *provider() const override;
0048 
0049         //Playlist virtual methods
0050         QUrl uidUrl() const override;
0051 
0052     private:
0053         GpodderProvider *m_provider;
0054 };
0055 
0056 }
0057 
0058 Q_DECLARE_METATYPE( Podcasts::GpodderPodcastChannelPtr )
0059 Q_DECLARE_METATYPE( Podcasts::GpodderPodcastChannelList )
0060 
0061 #endif