1
#ifndef JAMENDODYNAMICPLAYLIST_H
2
#define JAMENDODYNAMICPLAYLIST_H
4
#include "smartplaylists/generator.h"
6
class JamendoDynamicPlaylist : public smart_playlists::Generator {
8
friend QDataStream& operator <<(QDataStream& s, const JamendoDynamicPlaylist& p);
9
friend QDataStream& operator >>(QDataStream& s, JamendoDynamicPlaylist& p);
12
// These values are persisted - only add to the end
15
OrderBy_RatingWeek = 1,
16
OrderBy_RatingMonth = 2,
20
// These values are persisted - only add to the end
26
JamendoDynamicPlaylist();
27
JamendoDynamicPlaylist(const QString& name, OrderBy order_by);
29
QString type() const { return "Jamendo"; }
31
void Load(const QByteArray& data);
32
void Load(OrderBy order_by, OrderDirection order_direction = Order_Descending);
33
QByteArray Save() const;
35
PlaylistItemList Generate();
37
bool is_dynamic() const { return true; }
38
PlaylistItemList GenerateMore(int count);
42
static QString OrderSpec(OrderBy by, OrderDirection dir);
46
OrderDirection order_direction_;
49
PlaylistItemList current_items_;
52
static const int kPageSize = 100;
53
static const int kApiRetryLimit = 5;
54
static const char* kUrl;
57
QDataStream& operator <<(QDataStream& s, const JamendoDynamicPlaylist& p);
58
QDataStream& operator >>(QDataStream& s, JamendoDynamicPlaylist& p);