~ubuntu-branches/ubuntu/saucy/clementine/saucy

« back to all changes in this revision

Viewing changes to src/radio/jamendodynamicplaylist.h

  • Committer: Package Import Robot
  • Author(s): Thomas PIERSON
  • Date: 2012-01-01 20:43:39 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20120101204339-lsb6nndwhfy05sde
Tags: 1.0.1+dfsg-1
New upstream release. (Closes: #653926, #651611, #657391)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#ifndef JAMENDODYNAMICPLAYLIST_H
2
 
#define JAMENDODYNAMICPLAYLIST_H
3
 
 
4
 
#include "smartplaylists/generator.h"
5
 
 
6
 
class JamendoDynamicPlaylist : public smart_playlists::Generator {
7
 
  Q_OBJECT
8
 
  friend QDataStream& operator <<(QDataStream& s, const JamendoDynamicPlaylist& p);
9
 
  friend QDataStream& operator >>(QDataStream& s, JamendoDynamicPlaylist& p);
10
 
 
11
 
public:
12
 
  // These values are persisted - only add to the end
13
 
  enum OrderBy {
14
 
    OrderBy_Rating = 0,
15
 
    OrderBy_RatingWeek = 1,
16
 
    OrderBy_RatingMonth = 2,
17
 
    OrderBy_Listened = 3,
18
 
  };
19
 
 
20
 
  // These values are persisted - only add to the end
21
 
  enum OrderDirection {
22
 
    Order_Ascending = 0,
23
 
    Order_Descending = 1,
24
 
  };
25
 
 
26
 
  JamendoDynamicPlaylist();
27
 
  JamendoDynamicPlaylist(const QString& name, OrderBy order_by);
28
 
 
29
 
  QString type() const { return "Jamendo"; }
30
 
 
31
 
  void Load(const QByteArray& data);
32
 
  void Load(OrderBy order_by, OrderDirection order_direction = Order_Descending);
33
 
  QByteArray Save() const;
34
 
 
35
 
  PlaylistItemList Generate();
36
 
 
37
 
  bool is_dynamic() const { return true; }
38
 
  PlaylistItemList GenerateMore(int count);
39
 
 
40
 
private:
41
 
  void Fetch();
42
 
  static QString OrderSpec(OrderBy by, OrderDirection dir);
43
 
 
44
 
private:
45
 
  OrderBy order_by_;
46
 
  OrderDirection order_direction_;
47
 
 
48
 
  int current_page_;
49
 
  PlaylistItemList current_items_;
50
 
  int current_index_;
51
 
 
52
 
  static const int kPageSize = 100;
53
 
  static const int kApiRetryLimit = 5;
54
 
  static const char* kUrl;
55
 
};
56
 
 
57
 
QDataStream& operator <<(QDataStream& s, const JamendoDynamicPlaylist& p);
58
 
QDataStream& operator >>(QDataStream& s, JamendoDynamicPlaylist& p);
59
 
 
60
 
#endif