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

« back to all changes in this revision

Viewing changes to src/internet/groovesharkradio.cpp

  • 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
/* This file is part of Clementine.
 
2
   Copyright 2011, David Sansome <me@davidsansome.com>
 
3
 
 
4
   Clementine is free software: you can redistribute it and/or modify
 
5
   it under the terms of the GNU General Public License as published by
 
6
   the Free Software Foundation, either version 3 of the License, or
 
7
   (at your option) any later version.
 
8
 
 
9
   Clementine is distributed in the hope that it will be useful,
 
10
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
   GNU General Public License for more details.
 
13
 
 
14
   You should have received a copy of the GNU General Public License
 
15
   along with Clementine.  If not, see <http://www.gnu.org/licenses/>.
 
16
*/
 
17
 
 
18
#include "groovesharkradio.h"
 
19
 
 
20
#include "groovesharkservice.h"
 
21
#include "core/logging.h"
 
22
#include "internet/internetplaylistitem.h"
 
23
 
 
24
GroovesharkRadio::GroovesharkRadio(GroovesharkService* service)
 
25
  : service_(service),
 
26
    tag_id_(0),
 
27
    use_tag_(false),
 
28
    first_time_(true) {
 
29
}
 
30
 
 
31
GroovesharkRadio::GroovesharkRadio(GroovesharkService* service, int tag_id)
 
32
  : service_(service),
 
33
    tag_id_(tag_id),
 
34
    use_tag_(true),
 
35
    first_time_(true) {
 
36
}
 
37
 
 
38
void GroovesharkRadio::Load(const QByteArray& data) {
 
39
}
 
40
 
 
41
QByteArray GroovesharkRadio::Save() const {
 
42
  return QByteArray();
 
43
}
 
44
 
 
45
PlaylistItemList GroovesharkRadio::Generate() {
 
46
  PlaylistItemList items;
 
47
  if (first_time_) {
 
48
    Song song;
 
49
    if (use_tag_) {
 
50
      song = service_->StartAutoplayTag(tag_id_, autoplay_state_);
 
51
    } else {
 
52
      song = service_->StartAutoplay(autoplay_state_);
 
53
    }
 
54
    // If the song url isn't valid, stop here
 
55
    if (!song.is_valid()) {
 
56
      return items;
 
57
    }
 
58
    PlaylistItemPtr playlist_item = PlaylistItemPtr(new InternetPlaylistItem(service_, song));
 
59
    items << playlist_item;
 
60
    first_time_ = false;
 
61
  }
 
62
  Song song = service_->GetAutoplaySong(autoplay_state_);
 
63
  if (!song.is_valid()) {
 
64
    return items;
 
65
  }
 
66
  PlaylistItemPtr playlist_item = PlaylistItemPtr(new InternetPlaylistItem(service_, song));
 
67
  items << playlist_item;
 
68
  return items;
 
69
}