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