[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: 7d14d3d implemented method stubs in ProxyCollection::Track
From: Maximilian Kossick <maximilian.kossick () googlemail ! com>
Date: 2009-07-23 18:41:31
Message-ID: 200907232239.n6NMd53g017149 () Wurst ! kollide ! net
[Download RAW message or body]
commit 7d14d3da532e05ff313da36ca8c0eb007abe2da0
Author: Maximilian Kossick <maximilian.kossick@googlemail.com>
AuthorDate: Thu Jul 23 20:39:48 2009 +0200
Commit: Maximilian Kossick <maximilian.kossick@googlemail.com>
CommitDate: Thu Jul 23 20:39:48 2009 +0200
implemented method stubs in ProxyCollection::Track
diff --git a/src/collection/proxycollection/ProxyCollectionMeta.cpp \
b/src/collection/proxycollection/ProxyCollectionMeta.cpp index 1aa031b..8e3fa13 \
100644
--- a/src/collection/proxycollection/ProxyCollectionMeta.cpp
+++ b/src/collection/proxycollection/ProxyCollectionMeta.cpp
@@ -27,9 +27,25 @@ ProxyCollection::Track::Track( ProxyCollection::Collection *coll, \
const Meta::Tr , Meta::Observer()
, m_collection( coll )
, m_name( track->name() )
+ , m_album( 0 )
+ , m_artist( 0 )
+ , m_genre( 0 )
+ , m_composer( 0 )
+ , m_year( 0 )
{
subscribeTo( track );
m_tracks.append( track );
+
+ if( track->album() )
+ m_album = Meta::AlbumPtr( m_collection->getAlbum( track->album() ) );
+ if( track->artist() )
+ m_artist = Meta::ArtistPtr( m_collection->getArtist( track->artist() ) );
+ if( track->genre() )
+ m_genre = Meta::GenrePtr( m_collection->getGenre( track->genre() ) );
+ if( track->composer() )
+ m_composer = Meta::ComposerPtr( m_collection->getComposer( track->composer() \
) ); + if( track->year() )
+ m_year = Meta::YearPtr( m_collection->getYear( track->year() ) );
}
ProxyCollection::Track::~Track()
@@ -106,26 +122,31 @@ ProxyCollection::Track::isPlayable() const
Meta::AlbumPtr
ProxyCollection::Track::album() const
{
+ return m_album;
}
Meta::ArtistPtr
ProxyCollection::Track::artist() const
{
+ return m_artist;
}
Meta::ComposerPtr
ProxyCollection::Track::composer() const
{
+ return m_composer;
}
Meta::GenrePtr
ProxyCollection::Track::genre() const
{
+ return m_genre;
}
Meta::YearPtr
ProxyCollection::Track::year() const
{
+ return m_year;
}
QString
@@ -174,6 +195,10 @@ ProxyCollection::Track::score() const
void
ProxyCollection::Track::setScore( double newScore )
{
+ foreach( const Meta::TrackPtr &track, m_tracks )
+ {
+ track->setScore( newScore );
+ }
}
int
@@ -193,6 +218,10 @@ ProxyCollection::Track::rating() const
void
ProxyCollection::Track::setRating( int newRating )
{
+ foreach( const Meta::TrackPtr &track, m_tracks )
+ {
+ track->setRating( newRating );
+ }
}
uint
@@ -246,34 +275,97 @@ ProxyCollection::Track::playCount() const
return result;
}
+void
+ProxyCollection::Track::finishedPlaying( double playedFraction )
+{
+ foreach( const Meta::TrackPtr &track, m_tracks )
+ {
+ track->finishedPlaying( playedFraction );
+ }
+}
+
int
ProxyCollection::Track::length() const
{
+ foreach( const Meta::TrackPtr &track, m_tracks )
+ {
+ if( track->length() )
+ return track->length();
+ }
+ return 0;
}
int
ProxyCollection::Track::filesize() const
{
+ foreach( const Meta::TrackPtr &track, m_tracks )
+ {
+ if( track->filesize() )
+ {
+ return track->filesize();
+ }
+ }
+ return 0;
}
int
ProxyCollection::Track::sampleRate() const
{
+ foreach( const Meta::TrackPtr &track, m_tracks )
+ {
+ if( track->sampleRate() )
+ return track->sampleRate();
+ }
+ return 0;
}
int
ProxyCollection::Track::bitrate() const
{
+ foreach( const Meta::TrackPtr &track, m_tracks )
+ {
+ if( track->bitrate() )
+ return track->bitrate();
+ }
+ return 0;
}
int
ProxyCollection::Track::trackNumber() const
{
+ int result = 0;
+ foreach( const Meta::TrackPtr &track, m_tracks )
+ {
+ if( ( !result && track->trackNumber() ) || ( result && result == \
track->trackNumber() ) ) + {
+ result = track->trackNumber();
+ }
+ else if( result && result != track->trackNumber() )
+ {
+ //tracks disagree about the tracknumber
+ return 0;
+ }
+ }
+ return result;
}
int
ProxyCollection::Track::discNumber() const
{
+ int result = 0;
+ foreach( const Meta::TrackPtr &track, m_tracks )
+ {
+ if( ( !result && track->discNumber() ) || ( result && result == \
track->discNumber() ) ) + {
+ result = track->discNumber();
+ }
+ else if( result && result != track->discNumber() )
+ {
+ //tracks disagree about the disc number
+ return 0;
+ }
+ }
+ return result;
}
QString
diff --git a/src/collection/proxycollection/ProxyCollectionMeta.h \
b/src/collection/proxycollection/ProxyCollectionMeta.h index dc36fa4..3731adb 100644
--- a/src/collection/proxycollection/ProxyCollectionMeta.h
+++ b/src/collection/proxycollection/ProxyCollectionMeta.h
@@ -56,6 +56,7 @@ namespace ProxyCollection
uint firstPlayed() const;
uint lastPlayed() const;
int playCount() const;
+ void finishedPlaying( double playedFraction );
int length() const;
int filesize() const;
@@ -76,6 +77,11 @@ namespace ProxyCollection
Collection *m_collection;
Meta::TrackList m_tracks;
QString m_name;
+ Meta::AlbumPtr m_album;
+ Meta::ArtistPtr m_artist;
+ Meta::GenrePtr m_genre;
+ Meta::ComposerPtr m_composer;
+ Meta::YearPtr m_year;
};
class Album : public Meta::Album, private Meta::Observer
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic