File indexing completed on 2024-04-14 04:48:55

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_ATOM_H_
0008 #define _KMPLAYER_ATOM_H_
0009 
0010 #include <QStringList>
0011 
0012 #include "kmplayerplaylist.h"
0013 
0014 namespace KMPlayer {
0015 
0016 namespace ATOM {
0017 
0018 const short id_node_feed = 300;
0019 const short id_node_entry = 301;
0020 const short id_node_link = 302;
0021 const short id_node_title = 303;
0022 const short id_node_summary = 304;
0023 const short id_node_content = 305;
0024 const short id_node_media_group = 306;
0025 const short id_node_media_content = 307;
0026 const short id_node_media_title = 308;
0027 const short id_node_media_description = 309;
0028 const short id_node_media_player = 310;
0029 const short id_node_media_thumbnail = 311;
0030 const short id_node_gd_rating = 312;
0031 const short id_node_ignored = 313;
0032 
0033 /**
0034  * '<feed>' tag
0035  */
0036 class Feed : public Element, public PlaylistRole
0037 {
0038 public:
0039     Feed (NodePtr & d) : Element (d, id_node_feed) {}
0040     Node *childFromTag (const QString & tag) override;
0041     const char * nodeName () const override { return "feed"; }
0042     void closed () override;
0043     void *role (RoleType msg, void *content=nullptr) override;
0044 };
0045 
0046 class Entry : public Element, public PlaylistRole
0047 {
0048 public:
0049     Entry (NodePtr & d) : Element (d, id_node_entry) {}
0050     Node *childFromTag (const QString & tag) override;
0051     const char * nodeName () const override { return "entry"; }
0052     void closed () override;
0053     void *role (RoleType msg, void *content=nullptr) override;
0054 };
0055 
0056 class Link : public Mrl
0057 {
0058 public:
0059     Link (NodePtr & d) : Mrl (d, id_node_link) {}
0060     const char * nodeName () const override { return "link"; }
0061     PlayType playType () override;
0062     void closed () override;
0063 };
0064 
0065 class Content : public Mrl
0066 {
0067 public:
0068     Content (NodePtr &d) : Mrl(d, id_node_content) {}
0069     const char * nodeName () const override { return "content"; }
0070     PlayType playType () override;
0071     void closed () override;
0072 };
0073 
0074 class MediaGroup : public Element
0075 {
0076 public:
0077     MediaGroup (NodePtr &d) : Element (d, id_node_media_group) {}
0078     Node *childFromTag (const QString &tag) override;
0079     void message (MessageType msg, void *content=nullptr) override;
0080     const char *nodeName () const override { return "media:group"; }
0081     void addSummary (Node *parent, Node *ratings, const QString& alt_title, const QString& alt_desc,
0082                      const QString& alt_img, int width, int height);
0083 };
0084 
0085 class MediaContent : public Mrl
0086 {
0087 public:
0088     MediaContent (NodePtr &d) : Mrl (d, id_node_media_content) {}
0089     const char *nodeName () const override { return "media:content"; }
0090     void closed () override;
0091 };
0092 
0093 } //namespace ATOM
0094 
0095 
0096 } // namespace KMPlayer
0097 
0098 #endif //_KMPLAYER_ATOM_H_