Sayonara Player
src
Components
Streaming
Soundcloud
SoundcloudJsonParser.h
1
/* SoundcloudJsonParser.h */
2
3
/* Copyright (C) 2011-2020 Michael Lugmair (Lucio Carreras)
4
*
5
* This file is part of sayonara player
6
*
7
* This program is free software: you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation, either version 3 of the License, or
10
* (at your option) any later version.
11
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
17
* You should have received a copy of the GNU General Public License
18
* along with this program. If not, see <http://www.gnu.org/licenses/>.
19
*/
20
21
#ifndef SOUNDCLOUDJSONPARSER_H
22
#define SOUNDCLOUDJSONPARSER_H
23
24
#include <QJsonObject>
25
#include <QJsonArray>
26
#include <QObject>
27
28
#include "Utils/Pimpl.h"
29
30
class
MetaData
;
31
class
MetaDataList
;
32
class
Artist
;
33
class
Album
;
34
class
ArtistList
;
35
class
AlbumList
;
36
37
class
QByteArray;
38
namespace
SC
39
{
40
class
JsonParser
:
public
QObject
41
{
42
Q_OBJECT
43
PIMPL(
JsonParser
)
44
45
private
:
46
enum class
SCJsonItemType : uint8_t
47
{
48
Track=0,
49
Artist
,
50
Playlist
51
};
52
53
public
:
54
explicit
JsonParser
(
const
QByteArray& content);
55
~
JsonParser
();
56
57
bool
parseArtistList(
ArtistList
& artists, QJsonArray arr);
58
bool
parseTrackList(
ArtistList
& artists,
MetaDataList
& v_md, QJsonArray arr);
59
bool
parsePlaylistList(
ArtistList
& artists,
AlbumList
& albums,
MetaDataList
& v_md, QJsonArray arr);
60
61
bool
parseArtist(
Artist
& artist, QJsonObject
object
);
62
bool
parsePlaylist(
ArtistList
& artists,
Album
& album,
MetaDataList
& v_md, QJsonObject
object
);
63
bool
parseTrack(
Artist
& artist,
MetaData
& md, QJsonObject
object
);
64
65
QString createLink(
const
QString& name,
const
QString& target);
66
67
bool
getString(
const
QString& key,
const
QJsonObject&
object
, QString& str);
68
bool
getInt(
const
QString& key,
const
QJsonObject&
object
,
int
& i);
69
bool
getArray(
const
QString& key,
const
QJsonObject&
object
, QJsonArray& arr);
70
bool
getObject(
const
QString& key,
const
QJsonObject&
object
, QJsonObject& o);
71
72
bool
parseArtists(
ArtistList
& artists);
73
bool
parseTracks(
ArtistList
& artists,
MetaDataList
& v_md);
74
bool
parsePlaylists(
ArtistList
& artists,
AlbumList
& albums,
MetaDataList
& v_md);
75
};
76
}
77
78
#endif // SOUNDCLOUDJSONPARSER_H
ArtistList
ArtistList.
Definition:
Artist.h:77
MetaDataList
The MetaDataList class.
Definition:
MetaDataList.h:37
Album
The Album class.
Definition:
Album.h:41
SC::JsonParser
Definition:
SoundcloudJsonParser.h:41
Artist
The Artist class.
Definition:
Artist.h:38
AlbumList
The AlbumList class.
Definition:
Album.h:100
MetaData
The MetaData class.
Definition:
MetaData.h:47
Generated on Wed Jan 6 2021 00:00:00 for Sayonara Player by
1.8.20