Notes: - These playlists allow access to the subsonic feature of pulling new, frequently played, and so on albums. - See: http://www.subsonic.org/pages/api.jsp#getAlbumList for the subsonic description - The subsonic api is inherently album oriented. Therefore at the moment the "count" argument for GenerateMore is used as the number of albums to pull, which hopefully isn't a problem. - Could be made more efficient by multi-threading the fetch of the songs for each album
48 lines
1.5 KiB
C++
48 lines
1.5 KiB
C++
/* This file is part of Clementine.
|
|
Copyright 2010, David Sansome <me@davidsansome.com>
|
|
|
|
Clementine is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
Clementine is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with Clementine. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include "generator.h"
|
|
#include "querygenerator.h"
|
|
#include "core/logging.h"
|
|
#include "internet/jamendo/jamendodynamicplaylist.h"
|
|
#include "internet/subsonic/subsonicdynamicplaylist.h"
|
|
|
|
#include <QSettings>
|
|
|
|
namespace smart_playlists {
|
|
|
|
const int Generator::kDefaultLimit = 20;
|
|
const int Generator::kDefaultDynamicHistory = 5;
|
|
const int Generator::kDefaultDynamicFuture = 15;
|
|
|
|
Generator::Generator() : QObject(nullptr), backend_(nullptr) {}
|
|
|
|
GeneratorPtr Generator::Create(const QString& type) {
|
|
if (type == "Query")
|
|
return GeneratorPtr(new QueryGenerator);
|
|
else if (type == "Jamendo")
|
|
return GeneratorPtr(new JamendoDynamicPlaylist);
|
|
else if (type == "Subsonic") {
|
|
return GeneratorPtr(new SubsonicDynamicPlaylist);
|
|
}
|
|
|
|
qLog(Warning) << "Invalid playlist generator type:" << type;
|
|
return GeneratorPtr();
|
|
}
|
|
|
|
} // namespace
|