1
0
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:
Stefan Derkits
2014-09-27 15:01:09 +02:00
parent d65aab9702
commit 06f14b3012
2 changed files with 27 additions and 2 deletions

View File

@@ -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;
}

View File

@@ -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