本文整理汇总了C++中meta::TrackPtr::data方法的典型用法代码示例。如果您正苦于以下问题:C++ TrackPtr::data方法的具体用法?C++ TrackPtr::data怎么用?C++ TrackPtr::data使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类meta::TrackPtr
的用法示例。
在下文中一共展示了TrackPtr::data方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: factory
void
TestAmazonMetaFactory::testCreateTrack()
{
QStringList list, list2;
list << "id" << "name" << "trackNumber" << "length" << "playableUrl" << "albumId" << "artistId" << "price" << "ASIN";
list2 << "23" << "name" << "5" << "300" << "http://www.amazon.de/gp/dmusic/get_sample_url.html?ASIN=B007NV28OK" << "42" << "12" << "99" << "B007NV28OK";
AmazonMetaFactory factory( "Amazontest" );
Meta::TrackPtr trackPtr = factory.createTrack( list );
Meta::TrackPtr trackPtr2 = factory.createTrack( list2 );
QVERIFY( trackPtr );
QVERIFY( trackPtr2 );
Meta::AmazonTrack* amazonTrack = dynamic_cast<Meta::AmazonTrack*>( trackPtr.data() );
Meta::AmazonTrack* amazonTrack2 = dynamic_cast<Meta::AmazonTrack*>( trackPtr2.data() );
QVERIFY( amazonTrack );
QVERIFY( amazonTrack2 );
QCOMPARE( amazonTrack->id(), 0 );
QCOMPARE( amazonTrack->name(), QString( "name" ) );
QCOMPARE( amazonTrack->trackNumber(), 0 );
QCOMPARE( amazonTrack->length(), (qint64)0 );
QCOMPARE( amazonTrack->playableUrl(), KUrl( "playableUrl" ) );
QCOMPARE( amazonTrack->albumId(), 0 );
QCOMPARE( amazonTrack->artistId(), 0 );
QCOMPARE( amazonTrack->price(), QString( "price" ) );
QCOMPARE( amazonTrack->asin(), QString( "ASIN" ) );
QCOMPARE( amazonTrack2->id(), 23 );
QCOMPARE( amazonTrack2->trackNumber(), 5 );
QCOMPARE( amazonTrack2->length(), (qint64)300 );
QCOMPARE( amazonTrack2->playableUrl(), KUrl( "http://www.amazon.de/gp/dmusic/get_sample_url.html?ASIN=B007NV28OK" ) );
QCOMPARE( amazonTrack2->albumId(), 42 );
QCOMPARE( amazonTrack2->artistId(), 12 );
QCOMPARE( amazonTrack2->price(), QString( "99" ) );
QCOMPARE( amazonTrack2->asin(), QString( "B007NV28OK" ) );
}
示例2: responseFile
void
AmazonParser::run()
{
DEBUG_BLOCK
debug() << "AmazonParser::run: " << m_tempFileName;
m_responseDocument = new QDomDocument;
QFile responseFile( m_tempFileName );
if( !responseFile.open( QIODevice::ReadOnly ) )
{
debug() << "ERROR opening temp file";
emit( failed( this ) );
QFile::remove( m_tempFileName );
return;
}
QString errorMsg;
int errorLine;
int errorColumn;
if( !m_responseDocument->setContent( &responseFile, false, &errorMsg, &errorLine, &errorColumn ) ) // parse error
{
debug() << m_responseDocument->toString();
debug() << "Parse ERROR";
debug() << "Message:" << errorMsg;
debug() << "Line:" << errorLine;
debug() << "Column:" << errorColumn;
m_success = false;
// let's keep the temp file in case of an error
//QFile::remove( m_tempFileName );
return;
}
QString compilation;
QString trackAsin, albumAsin, albumPrice;
QString artist, albumTitle, songTitle;
QString price, imgUrl, playableUrl;
QString artistID, albumID, trackID;
QStringList results;
QString description( "TODO: I am a description. Where do I show up?" );
QDomNodeList albumItemsList = m_responseDocument->documentElement().firstChildElement( QLatin1String( "albums" ) ).elementsByTagName( QString( "item" ) );
QDomNodeList trackItemsList = m_responseDocument->documentElement().firstChildElement( QLatin1String( "tracks" ) ).elementsByTagName( QString( "item" ) );
m_collection->acquireWriteLock(); // locks for reading AND writing
// we have a new results page, so we can clear the old one
m_collection->clear();
// album parsing
for( int i = 0; i < albumItemsList.size(); i++ )
{
albumAsin = albumItemsList.at( i ).firstChildElement( QLatin1String( "asin" ) ).firstChild().nodeValue();
artist = albumItemsList.at( i ).firstChildElement( QLatin1String( "artist" ) ).firstChild().nodeValue();
albumTitle = albumItemsList.at( i ).firstChildElement( QLatin1String( "album" ) ).firstChild().nodeValue();
albumPrice = albumItemsList.at( i ).firstChildElement( QLatin1String( "price" ) ).firstChild().nodeValue();
compilation = albumItemsList.at( i ).firstChildElement( QLatin1String( "iscompilation" ) ).firstChild().nodeValue();
imgUrl = albumItemsList.at( i ).firstChildElement( QLatin1String( "img" ) ).firstChild().nodeValue();
debug() << albumAsin << artist << albumTitle << albumPrice << imgUrl;
artistID.setNum( addArtistToCollection( artist, description ) );
addAlbumToCollection( albumTitle, description, artistID, albumPrice, imgUrl, albumAsin, compilation == QLatin1String( "true" ) );
}
// track parsing
albumPrice.clear(); // maybe we get that with tracks in future API revisions, but not now
for( int i = 0; i < trackItemsList.size(); i++ )
{
albumAsin = trackItemsList.at( i ).firstChildElement( QLatin1String( "albumasin" ) ).firstChild().nodeValue();
artist = trackItemsList.at( i ).firstChildElement( QLatin1String( "artist" ) ).firstChild().nodeValue();
albumTitle = trackItemsList.at( i ).firstChildElement( QLatin1String( "album" ) ).firstChild().nodeValue();
compilation = trackItemsList.at( i ).firstChildElement( QLatin1String( "iscompilation" ) ).firstChild().nodeValue();
imgUrl = trackItemsList.at( i ).firstChildElement( QLatin1String( "img" ) ).firstChild().nodeValue();
price = trackItemsList.at( i ).firstChildElement( QLatin1String( "price" ) ).firstChild().nodeValue();
songTitle = trackItemsList.at( i ).firstChildElement( QLatin1String( "title" ) ).firstChild().nodeValue();
trackAsin = trackItemsList.at( i ).firstChildElement( QLatin1String( "asin" ) ).firstChild().nodeValue();
// first we make sure the artist is in the collection and get its id
artistID.setNum( addArtistToCollection( artist, description ) );
// same for the album
albumID.setNum( addAlbumToCollection( albumTitle, description, artistID, albumPrice, imgUrl, albumAsin, compilation == QLatin1String( "true" ) ) );
// now we can be sure that artist and album of this track are in the collection and we have their IDs
// id, name, tracknumber, length, Url, albumId, artistID
trackID.setNum( m_collection->trackIDMap().size() + 1 );
playableUrl = "http://www.amazon." + AmazonConfig::instance()->country() + "/gp/dmusic/get_sample_url.html?ASIN=" + trackAsin;
results << trackID << songTitle << "1" << "30000" << playableUrl << albumID << artistID << price << trackAsin;
Meta::TrackPtr trackPtr = m_factory->createTrack( results );
if( trackPtr )
{
dynamic_cast<Meta::AmazonTrack*>( trackPtr.data() )->setAlbumPtr( m_collection->albumById( albumID.toInt() ) );
dynamic_cast<Meta::AmazonTrack*>( trackPtr.data() )->setArtist( m_collection->artistById( artistID.toInt() ) );
}
m_collection->addTrack( trackPtr );
//.........这里部分代码省略.........