mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-09-03 02:42:52 +02:00
* Added interface for startFromGenre( QString ).
This commit is contained in:
@@ -281,6 +281,7 @@ PlayableProxyModelPlaylistInterface::queryAt( qint64 index ) const
|
|||||||
if ( m_proxyModel.isNull() )
|
if ( m_proxyModel.isNull() )
|
||||||
return query_ptr();
|
return query_ptr();
|
||||||
|
|
||||||
|
tDebug() << Q_FUNC_INFO << "item on index:" << index;
|
||||||
PlayableItem* item = static_cast<PlayableItem*>( (void*)index );
|
PlayableItem* item = static_cast<PlayableItem*>( (void*)index );
|
||||||
if ( item && item->query() )
|
if ( item && item->query() )
|
||||||
return item->query();
|
return item->query();
|
||||||
|
@@ -113,6 +113,7 @@ public:
|
|||||||
|
|
||||||
virtual bool startFromTrack( const Tomahawk::query_ptr& query ) = 0;
|
virtual bool startFromTrack( const Tomahawk::query_ptr& query ) = 0;
|
||||||
virtual bool startFromArtist( const Tomahawk::artist_ptr& artist ) = 0;
|
virtual bool startFromArtist( const Tomahawk::artist_ptr& artist ) = 0;
|
||||||
|
virtual bool startFromGenre( const QString& genre ) = 0;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void error( const QString& title, const QString& body);
|
void error( const QString& title, const QString& body);
|
||||||
|
@@ -191,6 +191,7 @@ EchonestGenerator::startOnDemand()
|
|||||||
connect( deleteReply, SIGNAL( finished() ), deleteReply, SLOT( deleteLater() ) );
|
connect( deleteReply, SIGNAL( finished() ), deleteReply, SLOT( deleteLater() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tDebug() << Q_FUNC_INFO;
|
||||||
connect( this, SIGNAL( paramsGenerated( Echonest::DynamicPlaylist::PlaylistParams ) ), this, SLOT( doStartOnDemand( Echonest::DynamicPlaylist::PlaylistParams ) ) );
|
connect( this, SIGNAL( paramsGenerated( Echonest::DynamicPlaylist::PlaylistParams ) ), this, SLOT( doStartOnDemand( Echonest::DynamicPlaylist::PlaylistParams ) ) );
|
||||||
try {
|
try {
|
||||||
getParams();
|
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
|
void
|
||||||
EchonestGenerator::doGenerate( const Echonest::DynamicPlaylist::PlaylistParams& paramsIn )
|
EchonestGenerator::doGenerate( const Echonest::DynamicPlaylist::PlaylistParams& paramsIn )
|
||||||
{
|
{
|
||||||
@@ -364,7 +391,7 @@ EchonestGenerator::getParams() throw( std::runtime_error )
|
|||||||
// emit paramsGenerated( params );
|
// emit paramsGenerated( params );
|
||||||
// }
|
// }
|
||||||
|
|
||||||
qDebug() << "ParamsGenerated" << params;
|
tDebug() << "ParamsGenerated" << params;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -78,6 +78,7 @@ public:
|
|||||||
virtual QWidget* steeringWidget() { return 0; }
|
virtual QWidget* steeringWidget() { return 0; }
|
||||||
virtual bool startFromTrack( const Tomahawk::query_ptr& query );
|
virtual bool startFromTrack( const Tomahawk::query_ptr& query );
|
||||||
virtual bool startFromArtist( const Tomahawk::artist_ptr& artist );
|
virtual bool startFromArtist( const Tomahawk::artist_ptr& artist );
|
||||||
|
virtual bool startFromGenre( const QString& genre );
|
||||||
|
|
||||||
Q_INVOKABLE static QStringList styles();
|
Q_INVOKABLE static QStringList styles();
|
||||||
static QStringList moods();
|
static QStringList moods();
|
||||||
|
@@ -129,7 +129,8 @@ void DynamicQmlWidget::pause()
|
|||||||
void DynamicQmlWidget::startStationFromArtist(const QString &artist)
|
void DynamicQmlWidget::startStationFromArtist(const QString &artist)
|
||||||
{
|
{
|
||||||
tDebug() << "should start startion from artist" << 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 ¤tIndex )
|
void DynamicQmlWidget::currentIndexChanged( const QPersistentModelIndex ¤tIndex )
|
||||||
|
Reference in New Issue
Block a user