-
Notifications
You must be signed in to change notification settings - Fork 0
/
musiclibrary.cpp
68 lines (61 loc) · 1.16 KB
/
musiclibrary.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include "musiclibrary.h"
MusicLibrary::MusicLibrary(QObject *parent) :
QObject(parent)
{
}
void MusicLibrary::Add(const Song& song)
{
lib.append(song);
}
QVector<Song> MusicLibrary::GetAllSongs()
{
return lib;
}
QVector<Song> MusicLibrary::GetByAlbum(QString album)
{
QVector<Song> tmp;
foreach(Song song, lib)
{
if (song.Album() == album)
tmp.append(song);
}
return tmp;
}
QVector<Song> MusicLibrary::GetByArtist(QString artist)
{
QVector<Song> tmp;
foreach(Song song, lib)
{
if (song.Artist() == artist)
tmp.append(song);
}
return tmp;
}
QVector<QString> MusicLibrary::GetAlbums()
{
QVector<QString> tmp;
QHash<QString, bool> hash;
foreach(Song song, lib)
{
hash[song.Album()] = true;
}
foreach(QString album, hash.keys())
{
tmp.append(album);
}
return tmp;
}
QVector<QString> MusicLibrary::GetArtists()
{
QVector<QString> tmp;
QHash<QString, bool> hash;
foreach(Song song, lib)
{
hash[song.Artist()] = true;
}
foreach(QString artist, hash.keys())
{
tmp.append(artist);
}
return tmp;
}