本文整理汇总了C++中meta::TrackPtr类的典型用法代码示例。如果您正苦于以下问题:C++ TrackPtr类的具体用法?C++ TrackPtr怎么用?C++ TrackPtr使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了TrackPtr类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: removeAllData
bool
SimilarArtistsEngine::update( bool force )
{
QString newArtist;
Meta::TrackPtr track = The::engineController()->currentTrack();
if( track )
{
if( Meta::ArtistPtr artistPtr = track->artist() )
newArtist = artistPtr->name();
}
if( newArtist.isEmpty() )
{
m_artist.clear();
removeAllData( "similarArtists" );
return false;
}
else //valid artist
{
// wee make a request only if the artist is different
if( force || (newArtist != m_artist) )
{
// if the artist has changed
m_artist = newArtist;
similarArtistsRequest( m_artist );
return true;
}
}
return false;
}
开发者ID:phalgun,项目名称:amarok-nepomuk,代码行数:31,代码来源:SimilarArtistsEngine.cpp
示例2: setData
void
AlbumItem::update()
{
if( !m_album )
return;
Meta::TrackList tracks = m_album->tracks();
if( !tracks.isEmpty() )
{
Meta::TrackPtr first = tracks.first();
Meta::YearPtr year = first->year();
if( year )
setData( year->year(), AlbumYearRole );
}
QString albumName = m_album->name();
albumName = albumName.isEmpty() ? i18n("Unknown") : albumName;
QString name = ( m_showArtist && m_album->hasAlbumArtist() )
? QString( "%1 - %2" ).arg( m_album->albumArtist()->name(), albumName )
: albumName;
setData( name, NameRole );
qint64 totalTime = 0;
foreach( Meta::TrackPtr item, tracks )
totalTime += item->length();
QString trackCount = i18np( "%1 track", "%1 tracks", tracks.size() );
QString lengthText = QString( "%1, %2" ).arg( trackCount, Meta::msToPrettyTime( totalTime ) );
setData( lengthText, AlbumLengthRole );
QPixmap cover = The::svgHandler()->imageWithBorder( m_album, m_iconSize, 3 );
setIcon( QIcon( cover ) );
}
开发者ID:cancamilo,项目名称:amarok,代码行数:33,代码来源:AlbumItem.cpp
示例3: locker
bool
Dynamic::EchoNestBias::trackMatches( int position,
const Meta::TrackList& playlist,
int contextCount ) const
{
Q_UNUSED( contextCount );
// collect the artist
QStringList artists = currentArtists( position, playlist );
if( artists.isEmpty() )
return true;
// the artist of this track
if( position < 0 || position >= playlist.count() )
return false;
Meta::TrackPtr track = playlist[position];
Meta::ArtistPtr artist = track->artist();
if( !artist || artist->name().isEmpty() )
return false;
{
QMutexLocker locker( &m_mutex );
QString key = artists.join("|");
if( m_similarArtistMap.contains( key ) )
return m_similarArtistMap.value( key ).contains( artist->name() );
}
warning() << "didn't have artist suggestions saved for this artist:" << artist->name();
return false;
}
开发者ID:ErrAza,项目名称:amarok,代码行数:30,代码来源:EchoNestBias.cpp
示例4: update
void
PhotosEngine::metadataChanged( Meta::TrackPtr track )
{
const bool hasChanged = !track->artist() || track->artist()->name() != m_artist;
if ( hasChanged )
update();
}
开发者ID:cancamilo,项目名称:amarok,代码行数:7,代码来源:PhotosEngine.cpp
示例5: ratingChanged
void
OSDWidget::ratingChanged( const QString& path, int rating )
{
Meta::TrackPtr track = The::engineController()->currentTrack();
if( !track )
return;
if( track->playableUrl().isLocalFile() && track->playableUrl().path() == path )
ratingChanged( rating );
}
开发者ID:weiligang512,项目名称:apue-test,代码行数:9,代码来源:Osd.cpp
示例6:
void
CurrentTrack::trackRatingChanged( int rating )
{
Meta::TrackPtr track = The::engineController()->currentTrack();
if( !track )
return;
track->statistics()->setRating( rating );
}
开发者ID:cancamilo,项目名称:amarok,代码行数:9,代码来源:CurrentTrack.cpp
示例7: onTrackMetadataChanged
void LyricsEngine::onTrackMetadataChanged( Meta::TrackPtr track )
{
DEBUG_BLOCK
// Only update if the lyrics have changed.
QString artist = track->artist() ? track->artist()->name() : QString();
if( m_prevLyrics.artist != artist ||
m_prevLyrics.title != track->name() ||
m_prevLyrics.text != track->cachedLyrics() )
update();
}
开发者ID:netrunner-debian-kde-extras,项目名称:amarok,代码行数:11,代码来源:LyricsEngine.cpp
示例8: TrackSet
Dynamic::TrackSet
Dynamic::AlbumPlayBias::matchingTracks( const Meta::TrackList& playlist,
int contextCount, int finalCount,
Dynamic::TrackCollectionPtr universe ) const
{
Q_UNUSED( contextCount );
Q_UNUSED( finalCount );
if( playlist.isEmpty() ) // no track means we can't find any tracks in the same album
return Dynamic::TrackSet( universe, false );
Meta::TrackPtr track = playlist.last();
Meta::AlbumPtr album = track->album();
if( !album ) // no album means we can't find any tracks in the same album
return Dynamic::TrackSet( universe, false );
Meta::TrackList albumTracks = album->tracks();
if( ( albumTracks.count() <= 1 ) || // the album has only one track (or even less) so there can't be any other tracks in the same album
( m_follow != DontCare && sameTrack( track, albumTracks.last() ) ) ) // track is the last one and we want to find a later one.
return Dynamic::TrackSet( universe, false );
// we assume that the album tracks are sorted by cd and track number which
// is at least true for the SqlCollection
TrackSet result( universe, false );
if( m_follow == DirectlyFollow )
{
for( int i = 1; i < albumTracks.count(); i++ )
if( sameTrack( albumTracks[i-1], track ) )
result.unite( albumTracks[i] );
}
else if( m_follow == Follow )
{
bool found = false;
for( int i = 0; i < albumTracks.count(); i++ )
{
if( found )
result.unite( albumTracks[i] );
if( sameTrack( albumTracks[i], track ) )
found = true;
}
}
else if( m_follow == DontCare )
{
for( int i = 0; i < albumTracks.count(); i++ )
{
if( !sameTrack( albumTracks[i], track ) )
result.unite( albumTracks[i] );
}
}
return result;
}
开发者ID:KDE,项目名称:amarok,代码行数:54,代码来源:AlbumPlayBias.cpp
示例9: TrackSet
Dynamic::TrackSet
Dynamic::AlbumPlayBias::matchingTracks( int position,
const Meta::TrackList& playlist, int contextCount,
Dynamic::TrackCollectionPtr universe ) const
{
Q_UNUSED( contextCount );
if( position < 1 || position >= playlist.count() )
return Dynamic::TrackSet( universe, false );
Meta::TrackPtr track = playlist[position-1];
Meta::AlbumPtr album = track->album();
if( !album )
return Dynamic::TrackSet( universe, false );
Meta::TrackList albumTracks = album->tracks();
if( albumTracks.count() == 1 ||
(track == albumTracks.last() && m_follow != DontCare) )
return Dynamic::TrackSet( universe, false );
// we assume that the album tracks are sorted by cd and track number which
// is at least true for the SqlCollection
TrackSet result( universe, false );
if( m_follow == DirectlyFollow )
{
for( int i = 1; i < albumTracks.count(); i++ )
if( albumTracks[i-1] == track )
result.unite( albumTracks[i] );
}
else if( m_follow == Follow )
{
bool found = false;
for( int i = 0; i < albumTracks.count(); i++ )
{
if( found )
result.unite( albumTracks[i] );
if( albumTracks[i] == track )
found = true;
}
}
else if( m_follow == DontCare )
{
for( int i = 0; i < albumTracks.count(); i++ )
{
if( albumTracks[i] != track )
result.unite( albumTracks[i] );
}
}
return result;
}
开发者ID:ErrAza,项目名称:amarok,代码行数:52,代码来源:AlbumPlayBias.cpp
示例10: connect
void
IpodCopyTracksJob::slotStartDuplicateTrackSearch( const Meta::TrackPtr &track )
{
Collections::QueryMaker *qm = m_coll.data()->queryMaker();
qm->setQueryType( Collections::QueryMaker::Track );
// we cannot qm->addMatch( track ) - it matches by uidUrl()
qm->addFilter( Meta::valTitle, track->name(), true, true );
qm->addMatch( track->album() );
qm->setArtistQueryMode( Collections::QueryMaker::TrackArtists );
qm->addMatch( track->artist() );
qm->addMatch( track->composer() );
qm->addMatch( track->genre() );
qm->addMatch( track->year() );
qm->addNumberFilter( Meta::valTrackNr, track->trackNumber(), Collections::QueryMaker::Equals );
qm->addNumberFilter( Meta::valDiscNr, track->discNumber(), Collections::QueryMaker::Equals );
// we don't want to match by filesize, track length, filetype etc - these change during
// transcoding. We don't match album artist because handling of it is inconsistent
connect( qm, SIGNAL(newResultReady(Meta::TrackList)),
SLOT(slotDuplicateTrackSearchNewResult(Meta::TrackList)) );
connect( qm, SIGNAL(queryDone()), SLOT(slotDuplicateTrackSearchQueryDone()) );
qm->setAutoDelete( true );
m_duplicateTrack = Meta::TrackPtr(); // reset duplicate track from previous query
qm->run();
}
开发者ID:ErrAza,项目名称:amarok,代码行数:26,代码来源:IpodCopyTracksJob.cpp
示例11: it
void
OrganizeCollectionDialog::previewNextBatch() //private slot
{
const int batchSize = 10;
QMap<Meta::TrackPtr, QString> dests = m_trackOrganizer->getDestinations( batchSize );
QMapIterator<Meta::TrackPtr, QString> it( dests );
while( it.hasNext() )
{
it.next();
Meta::TrackPtr track = it.key();
QString originalPath = track->prettyUrl();
QString newPath = it.value();
int newRow = ui->previewTableWidget->rowCount();
ui->previewTableWidget->insertRow( newRow );
//new path preview in the 1st column
QPalette p = ui->previewTableWidget->palette();
QTableWidgetItem *item = new QTableWidgetItem( newPath );
KColorScheme::adjustBackground( p, KColorScheme::NegativeBackground );
if( QFileInfo( newPath ).exists() )
{
item->setBackgroundColor( p.color( QPalette::Base ) );
m_conflict = true;
}
ui->previewTableWidget->setItem( newRow, 0, item );
//original in the second column
item = new QTableWidgetItem( originalPath );
ui->previewTableWidget->setItem( newRow, 1, item );
}
if( m_conflict )
{
if( ui->overwriteCheck->isChecked() )
ui->conflictLabel->setText( i18n( "There is a filename conflict, existing files will be overwritten." ) );
else
ui->conflictLabel->setText( i18n( "There is a filename conflict, existing files will not be changed." ) );
}
else
ui->conflictLabel->setText(""); // we clear the text instead of hiding it to retain the layout spacing
//non-blocking way of updating the preview table.
if( dests.count() == batchSize )
QTimer::singleShot( 10, this, SLOT(previewNextBatch()) );
else
unsetCursor(); // finished
}
开发者ID:netrunner-debian-kde-extras,项目名称:amarok,代码行数:50,代码来源:OrganizeCollectionDialog.cpp
示例12: QCOMPARE
void
TestSqlTrack::testRemoveLabelFromTrack()
{
Meta::TrackPtr track = m_collection->registry()->getTrack( "/IDoNotExist.mp3" );
Meta::LabelPtr label = m_collection->registry()->getLabel( "A" );
track->addLabel( label );
QCOMPARE( track->labels().count(), 1 );
track->removeLabel( label );
QCOMPARE( track->labels().count(), 0 );
QStringList urlsLabelsCount = m_storage->query( "SELECT COUNT(*) FROM urls_labels;" );
QCOMPARE( urlsLabelsCount.first().toInt(), 0 );
}
开发者ID:KDE,项目名称:amarok,代码行数:14,代码来源:TestSqlTrack.cpp
示例13: getInfo
void LastfmInfoParser::getInfo(Meta::TrackPtr track)
{
DEBUG_BLOCK
QMap<QString, QString> query;
query[ "method" ] = "track.getInfo";
query[ "track" ] = track->name();
query[ "album" ] = track->album() ? track->album()->name() : QString();
query[ "artist" ] = track->artist() ? track->artist()->name() : QString();
query[ "apikey" ] = Amarok::lastfmApiKey();
m_jobs[ "getTrackInfo" ] = lastfm::ws::post( query );
connect( m_jobs[ "getTrackInfo" ], SIGNAL( finished() ), SLOT( onGetTrackInfo() ) );
}
开发者ID:ErrAza,项目名称:amarok,代码行数:14,代码来源:LastfmInfoParser.cpp
示例14: sameTrack
bool
Dynamic::AlbumPlayBias::trackMatches( int position,
const Meta::TrackList& playlist,
int contextCount ) const
{
Q_UNUSED( contextCount );
if( position <= 0 || playlist.count() <= position )
return true;
Meta::TrackPtr track = playlist[position-1];
Meta::AlbumPtr album = track->album();
Meta::TrackPtr currentTrack = playlist[position];
Meta::AlbumPtr currentAlbum = currentTrack->album();
if( !album || album->tracks().isEmpty() )
return false;
Meta::TrackList albumTracks = album->tracks();
if( sameTrack( track, albumTracks.last() ) && m_follow != DontCare )
return false;
// we assume that the album tracks are sorted by cd and track number which
// is at least true for the SqlCollection
if( m_follow == DirectlyFollow )
{
for( int i = 1; i < albumTracks.count(); i++ )
if( sameTrack( albumTracks[i-1], track ) )
return sameTrack( albumTracks[i], currentTrack );
return false;
}
else if( m_follow == Follow )
{
bool found = false;
for( int i = 0; i < albumTracks.count(); i++ )
{
if( found && sameTrack( albumTracks[i], currentTrack ) )
return true;
if( sameTrack( albumTracks[i], track ) )
found = true;
}
return false;
}
else if( m_follow == DontCare )
{
return album == currentAlbum;
}
return false;
}
开发者ID:KDE,项目名称:amarok,代码行数:49,代码来源:AlbumPlayBias.cpp
示例15: QString
void
TrackItem::metadataChanged( Meta::TrackPtr track )
{
int trackNumber = track->trackNumber();
QString trackName = track->prettyName();
QString text;
if( trackNumber > 0 )
text = QString( "%1\t%2" ).arg( QString::number( trackNumber ), trackName );
else
text = QString( "\t%1" ).arg( trackName );
setText( text );
}
开发者ID:weiligang512,项目名称:apue-test,代码行数:15,代码来源:TrackItem.cpp
示例16: labels
void
TestSqlTrack::testRemoveLabelFromTrackWhenNotInCache()
{
m_storage->query( "INSERT INTO labels(id,label) VALUES (1,'A');" );
m_storage->query( "INSERT INTO urls_labels(url,label) VALUES (1,1);" );
Meta::TrackPtr track = m_collection->registry()->getTrack( "/IDoNotExist.mp3" );
Meta::LabelPtr label = m_collection->registry()->getLabel( "A" );
track->removeLabel( label );
QCOMPARE( track->labels().count(), 0 );
QStringList urlsLabelsCount = m_storage->query( "SELECT COUNT(*) FROM urls_labels;" );
QCOMPARE( urlsLabelsCount.first().toInt(), 0 );
}
开发者ID:KDE,项目名称:amarok,代码行数:15,代码来源:TestSqlTrack.cpp
示例17: debug
/**
* called whenever metadata of the current track has changed
*/
void
TabsEngine::update()
{
DEBUG_BLOCK
// get the current track
Meta::TrackPtr track = The::engineController()->currentTrack();
if( !track )
{
debug() << "no track";
m_titleName.clear();
m_artistName.clear();
removeAllData( "tabs" );
setData( "tabs", "state", "Stopped" );
return;
}
m_currentTrack = track;
Meta::ArtistPtr artistPtr = track->artist();
QString newArtist;
if( artistPtr )
{
if( ( track->playableUrl().protocol() == "lastfm" ) ||
( track->playableUrl().protocol() == "daap" ) ||
!The::engineController()->isStream() )
newArtist = artistPtr->name();
else
newArtist = artistPtr->prettyName();
}
QString newTitle = track->name();
if( newTitle.isEmpty() )
newTitle = track->prettyName();
// check if something changed
if( newTitle == m_titleName && newArtist == m_artistName )
{
debug() << "nothing changed";
return;
}
// stop fetching for unknown artists or titles
if( newTitle.isEmpty() || newArtist.isEmpty() )
{
setData("tabs", "state", "noTabs" );
return;
}
requestTab( newArtist, newTitle );
}
开发者ID:phalgun,项目名称:amarok-nepomuk,代码行数:51,代码来源:TabsEngine.cpp
示例18: debug
void
ScrobblerAdapter::updateNowPlaying( const Meta::TrackPtr &track )
{
lastfm::MutableTrack lfmTrack;
if( track )
{
if( isToBeSkipped( track ) )
{
debug() << "updateNowPlaying(): refusing track" << track->prettyUrl()
<< "- contains label:" << m_config->filteredLabel() << "which is marked to be skipped";
return;
}
copyTrackMetadata( lfmTrack, track );
debug() << "nowPlaying: " << lfmTrack.artist() << "-" << lfmTrack.album() << "-"
<< lfmTrack.title() << "source:" << lfmTrack.source() << "duration:"
<< lfmTrack.duration();
m_scrobbler.nowPlaying( lfmTrack );
}
else
{
debug() << "removeNowPlaying";
QNetworkReply *reply = lfmTrack.removeNowPlaying(); // works even with empty lfmTrack
connect( reply, SIGNAL(finished()), reply, SLOT(deleteLater()) ); // don't leak
}
}
开发者ID:netrunner-debian-kde-extras,项目名称:amarok,代码行数:25,代码来源:ScrobblerAdapter.cpp
示例19: qVariantFromValue
void
CurrentEngine::update( Meta::AlbumPtr album )
{
if( !m_requested.value( QLatin1String("albums") ) )
return;
DEBUG_BLOCK
m_lastQueryMaker = 0;
Meta::TrackPtr track = The::engineController()->currentTrack();
if( !album )
return;
Meta::ArtistPtr artist = track->artist();
// Prefer track artist to album artist BUG: 266682
if( !artist )
artist = album->albumArtist();
if( artist && !artist->name().isEmpty() )
{
m_albums.clear();
m_albumData.clear();
m_albumData[ QLatin1String("currentTrack") ] = qVariantFromValue( track );
m_albumData[ QLatin1String("headerText") ] = QVariant( i18n( "Albums by %1", artist->name() ) );
// -- search the collection for albums with the same artist
Collections::QueryMaker *qm = CollectionManager::instance()->queryMaker();
qm->setAutoDelete( true );
qm->addFilter( Meta::valArtist, artist->name(), true, true );
qm->setAlbumQueryMode( Collections::QueryMaker::AllAlbums );
qm->setQueryType( Collections::QueryMaker::Album );
connect( qm, SIGNAL(newResultReady( Meta::AlbumList)),
SLOT(resultReady( Meta::AlbumList)), Qt::QueuedConnection );
connect( qm, SIGNAL(queryDone()), SLOT(setupAlbumsData()) );
m_lastQueryMaker = qm;
qm->run();
}
else
{
removeAllData( QLatin1String("albums") );
setData( QLatin1String("albums"), QLatin1String("headerText"),
i18nc( "Header text for current album applet", "Albums" ) );
}
}
开发者ID:ErrAza,项目名称:amarok,代码行数:47,代码来源:CurrentEngine.cpp
示例20: if
bool
CurrentEngine::sourceRequestEvent( const QString& name )
{
Meta::TrackPtr track = The::engineController()->currentTrack();
m_requested[ name ] = true;
if( !track )
stopped();
if( name == QLatin1String("current") )
update( track );
else if( name == QLatin1String("albums") )
track ? update(track->album()) : setData(name, Plasma::DataEngine::Data());
else
return false;
return true;
}
开发者ID:ErrAza,项目名称:amarok,代码行数:17,代码来源:CurrentEngine.cpp
注:本文中的meta::TrackPtr类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论