00001 /* 00002 playlistfile (.pls) parser 00003 Eskil Heyn Olsen, 2005, distributed under the GPL as part of mythtv. 00004 00005 Update July 2010 updated for Qt4 (Paul Harrison) 00006 */ 00007 00008 #ifndef PLS_H_ 00009 #define PLS_H_ 00010 00011 #include <QString> 00012 #include <QBuffer> 00013 #include <QList> 00014 #include <QTextStream> 00015 00018 class PlayListFileEntry 00019 { 00020 public: 00021 PlayListFileEntry(void) : m_length(0) {} 00022 ~PlayListFileEntry(void) {} 00023 00024 QString File(void) { return m_file; } 00025 QString Title(void) { return m_title; } 00026 int Length(void) { return m_length; } 00027 00028 void setFile(const QString &f) { m_file = f; } 00029 void setTitle(const QString &t) { m_title = t; } 00030 void setLength(int l) { m_length = l; } 00031 00032 private: 00033 QString m_file; 00034 QString m_title; 00035 int m_length; 00036 }; 00037 00040 class PlayListFile 00041 { 00042 public: 00043 PlayListFile(void); 00044 ~PlayListFile(void); 00045 00053 int size(void) const { return m_entries.count(); } 00054 00059 PlayListFileEntry* get(int i) 00060 { 00061 if (i >= 0 && i < m_entries.count()) 00062 return m_entries.at(i); 00063 00064 return NULL; 00065 } 00066 00074 int version(void) const { return m_version; } 00075 00079 void add(PlayListFileEntry *e) { m_entries.append(e); } 00080 00082 void clear(void) 00083 { 00084 while (!m_entries.isEmpty()) 00085 delete m_entries.takeFirst(); 00086 } 00087 00094 static int parse(PlayListFile *pls, QTextStream *stream, const QString &extension); 00095 00101 static int parsePLS(PlayListFile *pls, QTextStream *stream); 00102 00108 static int parseM3U(PlayListFile *pls, QTextStream *stream); 00109 00110 private: 00111 QList<PlayListFileEntry*> m_entries; 00112 int m_version; 00113 }; 00114 00115 #endif /* PLS_H_ */
1.6.3