TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicplaylistmanager.cpp
Go to the documentation of this file.
1 #include "musicplaylistmanager.h"
10 #include "musiccsvconfigmanager.h"
11 #include "musictxtconfigmanager.h"
12 #include "musicjspfconfigmanager.h"
13 
14 void MusicPlaylistManager::writeSongItem(const QString &path, const MusicSongItem &item)
15 {
16  const QFileInfo fin(path);
17  const QString &suffix = TTK_FILE_SUFFIX(fin);
18 
19  if(suffix == TPL_FILE_SUFFIX)
20  {
21  writeTKPLConfig(path, item);
22  }
23  else if(suffix == M3U_FILE_SUFFIX || suffix == M3U8_FILE_SUFFIX)
24  {
25  writeM3UConfig(path, item);
26  }
27  else if(suffix == PLS_FILE_SUFFIX)
28  {
29  writePLSConfig(path, item);
30  }
31  else if(suffix == WPL_FILE_SUFFIX)
32  {
33  writeWPLConfig(path, item);
34  }
35  else if(suffix == XSPF_FILE_SUFFIX)
36  {
37  writeXSPFConfig(path, item);
38  }
39  else if(suffix == JSPF_FILE_SUFFIX)
40  {
41  writeJSPFConfig(path, item);
42  }
43  else if(suffix == ASX_FILE_SUFFIX)
44  {
45  writeASXConfig(path, item);
46  }
47  else if(suffix == CSV_FILE_SUFFIX)
48  {
49  writeCSVConfig(path, item);
50  }
51  else if(suffix == TXT_FILE_SUFFIX)
52  {
53  writeTXTConfig(path, item);
54  }
55 }
56 
57 void MusicPlaylistManager::readSongItems(const QStringList &paths, MusicSongItemList &items)
58 {
59  for(const QString &path : qAsConst(paths))
60  {
61  const QFileInfo fin(path);
62  const QString & suffix = TTK_FILE_SUFFIX(fin);
63 
64  if(suffix == TPL_FILE_SUFFIX)
65  {
66  readTKPLConfig(path, items);
67  }
68  else if(suffix == M3U_FILE_SUFFIX || suffix == M3U8_FILE_SUFFIX)
69  {
70  readM3UConfig(path, items);
71  }
72  else if(suffix == PLS_FILE_SUFFIX)
73  {
74  readPLSConfig(path, items);
75  }
76  else if(suffix == WPL_FILE_SUFFIX)
77  {
78  readWPLConfig(path, items);
79  }
80  else if(suffix == XSPF_FILE_SUFFIX)
81  {
82  readXSPFConfig(path, items);
83  }
84  else if(suffix == JSPF_FILE_SUFFIX)
85  {
86  readJSPFConfig(path, items);
87  }
88  else if(suffix == ASX_FILE_SUFFIX)
89  {
90  readASXConfig(path, items);
91  }
92  else if(suffix == CSV_FILE_SUFFIX)
93  {
94  readCSVConfig(path, items);
95  }
96  else if(suffix == TXT_FILE_SUFFIX)
97  {
98  readTXTConfig(path, items);
99  }
100  else if(suffix == FPL_FILE_SUFFIX)
101  {
102  readFPLConfig(path, items);
103  }
104  else if(suffix == DBPL_FILE_SUFFIX)
105  {
106  readDBPLConfig(path, items);
107  }
108  }
109 }
110 
111 bool MusicPlaylistManager::readTKPLConfig(const QString &path, MusicSongItemList &items)
112 {
113  MusicTKPLConfigManager manager;
114  return manager.fromFile(path) ? manager.readBuffer(items) : false;
115 }
116 
117 bool MusicPlaylistManager::writeTKPLConfig(const QString &path, const MusicSongItem &item)
118 {
119  MusicTKPLConfigManager manager;
120  return manager.load(path) ? manager.writeBuffer({item}) : false;
121 }
122 
123 bool MusicPlaylistManager::readM3UConfig(const QString &path, MusicSongItemList &items)
124 {
125  MusicM3UConfigManager manager;
126  return manager.fromFile(path) ? manager.readBuffer(items) : false;
127 }
128 
129 bool MusicPlaylistManager::writeM3UConfig(const QString &path, const MusicSongItem &item)
130 {
131  MusicM3UConfigManager manager;
132  return manager.load(path) ? manager.writeBuffer({item}) : false;
133 }
134 
135 bool MusicPlaylistManager::readPLSConfig(const QString &path, MusicSongItemList &items)
136 {
137  MusicPLSConfigManager manager;
138  return manager.fromFile(path) ? manager.readBuffer(items) : false;
139 }
140 
141 bool MusicPlaylistManager::writePLSConfig(const QString &path, const MusicSongItem &item)
142 {
143  MusicPLSConfigManager manager;
144  return manager.load(path) ? manager.writeBuffer({item}) : false;
145 }
146 
147 bool MusicPlaylistManager::readWPLConfig(const QString &path, MusicSongItemList &items)
148 {
149  MusicWPLConfigManager manager;
150  return manager.fromFile(path) ? manager.readBuffer(items) : false;
151 }
152 
153 bool MusicPlaylistManager::writeWPLConfig(const QString &path, const MusicSongItem &item)
154 {
155  MusicWPLConfigManager manager;
156  return manager.load(path) ? manager.writeBuffer({item}) : false;
157 }
158 
159 bool MusicPlaylistManager::readXSPFConfig(const QString &path, MusicSongItemList &items)
160 {
161  MusicXSPFConfigManager manager;
162  return manager.fromFile(path) ? manager.readBuffer(items) : false;
163 }
164 
165 bool MusicPlaylistManager::writeXSPFConfig(const QString &path, const MusicSongItem &item)
166 {
167  MusicXSPFConfigManager manager;
168  return manager.load(path) ? manager.writeBuffer({item}) : false;
169 }
170 
171 bool MusicPlaylistManager::readJSPFConfig(const QString &path, MusicSongItemList &items)
172 {
173  MusicJSPFConfigManager manager;
174  return manager.fromFile(path) ? manager.readBuffer(items) : false;
175 }
176 
177 bool MusicPlaylistManager::writeJSPFConfig(const QString &path, const MusicSongItem &item)
178 {
179  MusicJSPFConfigManager manager;
180  return manager.load(path) ? manager.writeBuffer({item}) : false;
181 }
182 
183 bool MusicPlaylistManager::readASXConfig(const QString &path, MusicSongItemList &items)
184 {
185  MusicASXConfigManager manager;
186  return manager.fromFile(path) ? manager.readBuffer(items) : false;
187 }
188 
189 bool MusicPlaylistManager::writeASXConfig(const QString &path, const MusicSongItem &item)
190 {
191  MusicASXConfigManager manager;
192  return manager.load(path) ? manager.writeBuffer({item}) : false;
193 }
194 
195 bool MusicPlaylistManager::readFPLConfig(const QString &path, MusicSongItemList &items)
196 {
197  MusicFPLConfigManager manager;
198  return manager.fromFile(path) ? manager.readBuffer(items) : false;
199 }
200 
201 bool MusicPlaylistManager::readDBPLConfig(const QString &path, MusicSongItemList &items)
202 {
203  MusicDBPLConfigManager manager;
204  return manager.fromFile(path) ? manager.readBuffer(items) : false;
205 }
206 
207 bool MusicPlaylistManager::readCSVConfig(const QString &path, MusicSongItemList &items)
208 {
209  MusicCSVConfigManager manager;
210  return manager.fromFile(path) ? manager.readBuffer(items) : false;
211 }
212 
213 bool MusicPlaylistManager::writeCSVConfig(const QString &path, const MusicSongItem &item)
214 {
215  MusicCSVConfigManager manager;
216  return manager.load(path) ? manager.writeBuffer({item}) : false;
217 }
218 
219 bool MusicPlaylistManager::readTXTConfig(const QString &path, MusicSongItemList &items)
220 {
221  MusicTXTConfigManager manager;
222  return manager.fromFile(path) ? manager.readBuffer(items) : false;
223 }
224 
225 bool MusicPlaylistManager::writeTXTConfig(const QString &path, const MusicSongItem &item)
226 {
227  MusicTXTConfigManager manager;
228  return manager.load(path) ? manager.writeBuffer({item}) : false;
229 }
The class of the wpl playlist config manager.
virtual bool readBuffer(MusicSongItemList &items) overridefinal
#define DBPL_FILE_SUFFIX
Definition: musicobject.h:48
bool writeJSPFConfig(const QString &path, const MusicSongItem &item)
virtual bool writeBuffer(const MusicSongItemList &items) overridefinal
The class of the asx playlist config manager.
virtual bool writeBuffer(const MusicSongItemList &items) overridefinal
bool fromFile(const QString &name)
bool readTKPLConfig(const QString &path, MusicSongItemList &items)
bool writeXSPFConfig(const QString &path, const MusicSongItem &item)
#define XSPF_FILE_SUFFIX
Definition: musicobject.h:42
#define WPL_FILE_SUFFIX
Definition: musicobject.h:41
#define FPL_FILE_SUFFIX
Definition: musicobject.h:47
The class of the jspf playlist config manager.
virtual bool writeBuffer(const MusicSongItemList &items) overridefinal
#define TXT_FILE_SUFFIX
Definition: musicobject.h:46
virtual bool readBuffer(MusicSongItemList &items) overridefinal
bool readFPLConfig(const QString &path, MusicSongItemList &items)
The class of the txt playlist config manager.
The class of the pls playlist config manager.
virtual bool writeBuffer(const MusicSongItemList &items) overridefinal
void writeSongItem(const QString &path, const MusicSongItem &item)
virtual bool readBuffer(MusicSongItemList &items) overridefinal
bool readTXTConfig(const QString &path, MusicSongItemList &items)
bool writeWPLConfig(const QString &path, const MusicSongItem &item)
#define qAsConst
Definition: ttkqtglobal.h:53
bool writeTXTConfig(const QString &path, const MusicSongItem &item)
#define M3U_FILE_SUFFIX
Definition: musicobject.h:38
TTK_MODULE_EXPORT QString suffix(const QString &name)
virtual bool readBuffer(MusicSongItemList &items) overridefinal
bool readXSPFConfig(const QString &path, MusicSongItemList &items)
bool readM3UConfig(const QString &path, MusicSongItemList &items)
#define ASX_FILE_SUFFIX
Definition: musicobject.h:44
bool readPLSConfig(const QString &path, MusicSongItemList &items)
bool writeCSVConfig(const QString &path, const MusicSongItem &item)
virtual bool readBuffer(MusicSongItemList &items) overridefinal
The class of the m3u playlist config manager.
virtual bool writeBuffer(const MusicSongItemList &items) overridefinal
The class of the csv playlist config manager.
virtual bool writeBuffer(const MusicSongItemList &items) overridefinal
virtual bool readBuffer(MusicSongItemList &items) overridefinal
virtual bool readBuffer(MusicSongItemList &items) overridefinal
#define M3U8_FILE_SUFFIX
Definition: musicobject.h:39
bool readCSVConfig(const QString &path, MusicSongItemList &items)
The class of the music song item.
Definition: musicsong.h:161
virtual bool writeBuffer(const MusicSongItemList &items) overridefinal
The class of the tkpl config manager.
#define CSV_FILE_SUFFIX
Definition: musicobject.h:45
virtual bool writeBuffer(const MusicSongItemList &items) overridefinal
bool load(const QString &name)
bool fromFile(const QString &name)
void readSongItems(const QStringList &paths, MusicSongItemList &items)
virtual bool readBuffer(MusicSongItemList &items) overridefinal
bool readASXConfig(const QString &path, MusicSongItemList &items)
bool readWPLConfig(const QString &path, MusicSongItemList &items)
bool writeASXConfig(const QString &path, const MusicSongItem &item)
#define TPL_FILE_SUFFIX
Definition: musicobject.h:37
#define TTK_FILE_SUFFIX(fin)
Definition: ttkqtglobal.h:173
The class of the foobar2k playlist config manager.
bool readDBPLConfig(const QString &path, MusicSongItemList &items)
#define PLS_FILE_SUFFIX
Definition: musicobject.h:40
bool writeM3UConfig(const QString &path, const MusicSongItem &item)
virtual bool readBuffer(MusicSongItemList &items) overridefinal
virtual bool readBuffer(MusicSongItemList &items) overridefinal
bool load(const QString &name)
virtual bool readBuffer(MusicSongItemList &items) overridefinal
bool writePLSConfig(const QString &path, const MusicSongItem &item)
bool readJSPFConfig(const QString &path, MusicSongItemList &items)
bool writeTKPLConfig(const QString &path, const MusicSongItem &item)
virtual bool writeBuffer(const MusicSongItemList &items) overridefinal
#define JSPF_FILE_SUFFIX
Definition: musicobject.h:43
The class of the deadbeef playlist config manager.
The class of the xspf playlist config manager.