1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-16 11:04:01 +02:00

* Create EchonestParams out of the variant list.

This commit is contained in:
Christian Muehlhaeuser
2013-06-29 21:15:51 +02:00
parent 914f8ccdbb
commit ecab5b41b0

View File

@@ -419,22 +419,40 @@ EchonestGenerator::staticFinished()
void void
EchonestGenerator::getParams() throw( std::runtime_error ) EchonestGenerator::getParams() throw( std::runtime_error )
{ {
/*Echonest::DynamicPlaylist::PlaylistParamData data;
data.first = Echonest::DynamicPlaylist::Artist;
data.second = artist->name();
Echonest::DynamicPlaylist::PlaylistParams params; Echonest::DynamicPlaylist::PlaylistParams params;
/* foreach( const dyncontrol_ptr& control, m_controls ) { params << data;
params.append( control.dynamicCast<EchonestControl>()->toENParam() ); */
Echonest::DynamicPlaylist::PlaylistParams params;
foreach( const QVariant& control, m_controls )
{
QVariantMap controlMap = control.toMap();
Echonest::DynamicPlaylist::PlaylistParamData data;
data.first = (Echonest::DynamicPlaylist::PlaylistParam)controlMap[ "match" ].toUInt();
data.second = controlMap[ "input" ].toString();
params.append( data );
} }
if( appendRadioType( params ) == Echonest::DynamicPlaylist::SongRadioType ) { if ( appendRadioType( params ) == Echonest::DynamicPlaylist::SongRadioType )
{
// we need to do another pass, converting all song queries to song-ids. // we need to do another pass, converting all song queries to song-ids.
m_storedParams = params; m_storedParams = params;
qDeleteAll( m_waiting ); qDeleteAll( m_waiting );
m_waiting.clear(); m_waiting.clear();
// one query per track // one query per track
for( int i = 0; i < params.count(); i++ ) { for( int i = 0; i < params.count(); i++ )
{
const Echonest::DynamicPlaylist::PlaylistParamData param = params.value( i ); const Echonest::DynamicPlaylist::PlaylistParamData param = params.value( i );
if( param.first == Echonest::DynamicPlaylist::SongId ) { // this is a song type enum if ( param.first == Echonest::DynamicPlaylist::SongId )
{
// this is a song type enum
QString text = param.second.toString(); QString text = param.second.toString();
Echonest::Song::SearchParams q; Echonest::Song::SearchParams q;
@@ -448,14 +466,16 @@ EchonestGenerator::getParams() throw( std::runtime_error )
} }
} }
if( m_waiting.isEmpty() ) { if ( m_waiting.isEmpty() )
{
m_storedParams.clear(); m_storedParams.clear();
emit paramsGenerated( params ); emit paramsGenerated( params );
} }
}
} else { else
{
emit paramsGenerated( params ); emit paramsGenerated( params );
}*/ }
} }