mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-14 01:54:07 +02:00
add streaming operators for genre
This commit is contained in:
@@ -705,6 +705,7 @@ EchonestGenerator::loadGenres()
|
||||
{
|
||||
if ( s_genres_lock.tryLockForRead() )
|
||||
{
|
||||
qRegisterMetaTypeStreamOperators< Echonest::Genre >( "enGenre" );
|
||||
QVariant genres = TomahawkUtils::Cache::instance()->getData( "EchonestGenerator", "genres" );
|
||||
s_genres_lock.unlock();
|
||||
if ( genres.isValid() && genres.canConvert< Echonest::Genres >() )
|
||||
@@ -808,9 +809,28 @@ EchonestGenerator::genresReceived()
|
||||
}
|
||||
s_genresJob = 0;
|
||||
|
||||
qRegisterMetaType< Echonest::Genre >( "enGenre" );
|
||||
qRegisterMetaType< Echonest::Genres >( "enGenres" );
|
||||
qRegisterMetaTypeStreamOperators< Echonest::Genre >( "enGenre" );
|
||||
TomahawkUtils::Cache::instance()->putData( "EchonestGenerator", 1209600000 /* 2 weeks */, "genres", QVariant::fromValue< Echonest::Genres >( s_genres ) );
|
||||
s_genres_lock.unlock();
|
||||
emit genresSaved();
|
||||
}
|
||||
|
||||
QDataStream&
|
||||
operator<<(QDataStream& out, const Echonest::Genre &genre)
|
||||
{
|
||||
//TODO: this should be made more complete and be moved to libechonest
|
||||
return out << genre.name() << genre.description();
|
||||
}
|
||||
|
||||
QDataStream&
|
||||
operator>>(QDataStream& in, Echonest::Genre& genre)
|
||||
{
|
||||
//TODO: this should be made more complete and be moved to libechonest
|
||||
QString name;
|
||||
QString description;
|
||||
in >> name;
|
||||
in >> description;
|
||||
genre.setName( name );
|
||||
genre.setDescription( description );
|
||||
return in;
|
||||
}
|
||||
|
@@ -149,5 +149,10 @@ private:
|
||||
|
||||
};
|
||||
|
||||
//TODO: this code should be move to libechonest
|
||||
//TODO: (delete this when libechonest 2.4 is out)
|
||||
QDataStream& operator<<(QDataStream& out, const Echonest::Genre& genre);
|
||||
QDataStream& operator>>(QDataStream& in, Echonest::Genre& genre);
|
||||
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user