File indexing completed on 2024-04-21 04:54:00

0001 /*
0002     SPDX-FileCopyrightText: 2005-2006 Koos Vriezen <koos.vriezen@gmail.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef _KMPLAYER_RSS_H_
0008 #define _KMPLAYER_RSS_H_
0009 
0010 #include <QString>
0011 
0012 #include "kmplayerplaylist.h"
0013 
0014 namespace KMPlayer {
0015 
0016 namespace RSS {
0017 
0018 const short id_node_rss = 200;
0019 const short id_node_channel = 201;
0020 const short id_node_item = 202;
0021 const short id_node_title = 203;
0022 const short id_node_description = 204;
0023 const short id_node_enclosure = 205;
0024 const short id_node_category = 206;
0025 const short id_node_thumbnail = 207;
0026 const short id_node_ignored = 208;
0027 
0028 /**
0029  * '<RSS>' tag
0030  */
0031 class Rss : public Element, public PlaylistRole
0032 {
0033 public:
0034     Rss (NodePtr & d) : Element (d, id_node_rss) {}
0035     Node *childFromTag (const QString & tag) override;
0036     const char * nodeName () const override { return "rss"; }
0037     void *role (RoleType msg, void *content=nullptr) override;
0038 };
0039 
0040 class Channel : public Element, public PlaylistRole
0041 {
0042 public:
0043     Channel (NodePtr & d) : Element (d, id_node_channel) {}
0044     Node *childFromTag (const QString & tag) override;
0045     const char * nodeName () const override { return "channel"; }
0046     void closed () override;
0047     void *role (RoleType msg, void *content=nullptr) override;
0048 };
0049 
0050 class Item : public Element, public PlaylistRole
0051 {
0052 public:
0053     Item (NodePtr &d)
0054         : Element (d, id_node_item), summary_added (false) {}
0055     Node *childFromTag (const QString & tag) override;
0056     const char * nodeName () const override { return "item"; }
0057     void closed () override;
0058     bool summary_added;
0059 };
0060 
0061 class Enclosure : public Mrl
0062 {
0063 public:
0064     Enclosure(NodePtr &d) : Mrl(d, id_node_enclosure) {}
0065     const char * nodeName () const override { return "enclosure"; }
0066     void closed () override;
0067     void activate () override;
0068     void deactivate () override;
0069     QString description;
0070 };
0071 
0072 } //namespace RSS
0073 
0074 
0075 } // namespace KMPlayer
0076 
0077 #endif //_KMPLAYER_RSS_H_