1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-09-02 18:33:16 +02:00

* Added interface for startFromGenre( QString ).

This commit is contained in:
Christian Muehlhaeuser
2012-11-25 19:02:12 +01:00
parent 166db57ec3
commit 7f82cf6ea2
5 changed files with 33 additions and 2 deletions

View File

@@ -281,6 +281,7 @@ PlayableProxyModelPlaylistInterface::queryAt( qint64 index ) const
if ( m_proxyModel.isNull() )
return query_ptr();
tDebug() << Q_FUNC_INFO << "item on index:" << index;
PlayableItem* item = static_cast<PlayableItem*>( (void*)index );
if ( item && item->query() )
return item->query();

View File

@@ -113,6 +113,7 @@ public:
virtual bool startFromTrack( const Tomahawk::query_ptr& query ) = 0;
virtual bool startFromArtist( const Tomahawk::artist_ptr& artist ) = 0;
virtual bool startFromGenre( const QString& genre ) = 0;
signals:
void error( const QString& title, const QString& body);

View File

@@ -191,6 +191,7 @@ EchonestGenerator::startOnDemand()
connect( deleteReply, SIGNAL( finished() ), deleteReply, SLOT( deleteLater() ) );
}
tDebug() << Q_FUNC_INFO;
connect( this, SIGNAL( paramsGenerated( Echonest::DynamicPlaylist::PlaylistParams ) ), this, SLOT( doStartOnDemand( Echonest::DynamicPlaylist::PlaylistParams ) ) );
try {
getParams();
@@ -245,6 +246,32 @@ EchonestGenerator::startFromArtist( const Tomahawk::artist_ptr& artist )
}
bool
EchonestGenerator::startFromGenre( const QString& genre )
{
tDebug() << "Generating station content by genre:" << genre;
if ( !m_dynPlaylist->sessionId().isNull() )
{
// Running session, delete it
QNetworkReply* deleteReply = m_dynPlaylist->deleteSession();
connect( deleteReply, SIGNAL( finished() ), deleteReply, SLOT( deleteLater() ) );
}
connect( this, SIGNAL( paramsGenerated( Echonest::DynamicPlaylist::PlaylistParams ) ), this, SLOT( doStartOnDemand( Echonest::DynamicPlaylist::PlaylistParams ) ) );
Echonest::DynamicPlaylist::PlaylistParamData data;
data.first = Echonest::DynamicPlaylist::Description;
data.second = genre;
Echonest::DynamicPlaylist::PlaylistParams params;
params << data;
emit paramsGenerated( params );
return true;
}
void
EchonestGenerator::doGenerate( const Echonest::DynamicPlaylist::PlaylistParams& paramsIn )
{
@@ -364,7 +391,7 @@ EchonestGenerator::getParams() throw( std::runtime_error )
// emit paramsGenerated( params );
// }
qDebug() << "ParamsGenerated" << params;
tDebug() << "ParamsGenerated" << params;
}

View File

@@ -78,6 +78,7 @@ public:
virtual QWidget* steeringWidget() { return 0; }
virtual bool startFromTrack( const Tomahawk::query_ptr& query );
virtual bool startFromArtist( const Tomahawk::artist_ptr& artist );
virtual bool startFromGenre( const QString& genre );
Q_INVOKABLE static QStringList styles();
static QStringList moods();

View File

@@ -129,7 +129,8 @@ void DynamicQmlWidget::pause()
void DynamicQmlWidget::startStationFromArtist(const QString &artist)
{
tDebug() << "should start startion from artist" << artist;
m_playlist->generator()->startFromArtist(Artist::get(artist));
// m_playlist->generator()->startFromArtist(Artist::get(artist));
m_playlist->generator()->startFromGenre( "rock" );
}
void DynamicQmlWidget::currentIndexChanged( const QPersistentModelIndex &currentIndex )