File indexing completed on 2025-02-23 04:27:37
0001 /**************************************************************************************** 0002 * Copyright (c) 2007 Maximilian Kossick <maximilian.kossick@googlemail.com> * 0003 * * 0004 * This program is free software; you can redistribute it and/or modify it under * 0005 * the terms of the GNU General Public License as published by the Free Software * 0006 * Foundation; either version 2 of the License, or (at your option) any later * 0007 * version. * 0008 * * 0009 * This program is distributed in the hope that it will be useful, but WITHOUT ANY * 0010 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * 0011 * PARTICULAR PURPOSE. See the GNU General Public License for more details. * 0012 * * 0013 * You should have received a copy of the GNU General Public License along with * 0014 * this program. If not, see <http://www.gnu.org/licenses/>. * 0015 ****************************************************************************************/ 0016 0017 #include "DaapMeta.h" 0018 0019 #include "DaapCollection.h" 0020 0021 using namespace Meta; 0022 0023 DaapTrack::DaapTrack( Collections::DaapCollection *collection, const QString &host, quint16 port, const QString &dbId, const QString &itemId, const QString &format) 0024 : Meta::Track() 0025 , m_collection( collection ) 0026 , m_artist( nullptr ) 0027 , m_album( nullptr ) 0028 , m_genre( nullptr ) 0029 , m_composer( nullptr ) 0030 , m_year( nullptr ) 0031 , m_name() 0032 , m_type( format ) 0033 , m_length( 0 ) 0034 , m_trackNumber( 0 ) 0035 , m_displayUrl() 0036 , m_playableUrl() 0037 { 0038 QString url = QStringLiteral( "daap://%1:%2/databases/%3/items/%4.%5" ) 0039 .arg( host, QString::number( port ), dbId, itemId, format ); 0040 m_displayUrl = url; 0041 m_playableUrl = url; 0042 } 0043 0044 DaapTrack::~DaapTrack() 0045 { 0046 //nothing to do 0047 } 0048 0049 QString 0050 DaapTrack::name() const 0051 { 0052 return m_name; 0053 } 0054 0055 QUrl 0056 DaapTrack::playableUrl() const 0057 { 0058 QUrl url( m_playableUrl ); 0059 url.setScheme( "http" ); 0060 return url; 0061 } 0062 0063 QString 0064 DaapTrack::uidUrl() const 0065 { 0066 return m_playableUrl; 0067 } 0068 0069 QString 0070 DaapTrack::prettyUrl() const 0071 { 0072 return m_displayUrl; 0073 } 0074 0075 QString 0076 DaapTrack::notPlayableReason() const 0077 { 0078 return networkNotPlayableReason(); 0079 } 0080 0081 AlbumPtr 0082 DaapTrack::album() const 0083 { 0084 return AlbumPtr::staticCast( m_album ); 0085 } 0086 0087 ArtistPtr 0088 DaapTrack::artist() const 0089 { 0090 return ArtistPtr::staticCast( m_artist ); 0091 } 0092 0093 GenrePtr 0094 DaapTrack::genre() const 0095 { 0096 return GenrePtr::staticCast( m_genre ); 0097 } 0098 0099 ComposerPtr 0100 DaapTrack::composer() const 0101 { 0102 return ComposerPtr::staticCast( m_composer ); 0103 } 0104 0105 YearPtr 0106 DaapTrack::year() const 0107 { 0108 return YearPtr::staticCast( m_year ); 0109 } 0110 0111 void 0112 DaapTrack::setAlbum( const QString &newAlbum ) 0113 { 0114 Q_UNUSED( newAlbum ) 0115 } 0116 0117 void 0118 DaapTrack::setArtist( const QString &newArtist ) 0119 { 0120 Q_UNUSED( newArtist ) 0121 } 0122 0123 void 0124 DaapTrack::setComposer( const QString &newComposer ) 0125 { 0126 Q_UNUSED( newComposer ) 0127 } 0128 0129 void 0130 DaapTrack::setGenre( const QString &newGenre ) 0131 { 0132 Q_UNUSED( newGenre ) 0133 } 0134 0135 void 0136 DaapTrack::setYear( int newYear ) 0137 { 0138 Q_UNUSED( newYear ) 0139 } 0140 0141 /* 0142 TODO: This isn't good enough, but for now as daapreader/Reader.cpp indicates 0143 we can query for the BPM from daap server, but desire is to get BPM of files working 0144 first! 0145 */ 0146 qreal 0147 DaapTrack::bpm() const 0148 { 0149 return -1.0; 0150 } 0151 0152 QString 0153 DaapTrack::comment() const 0154 { 0155 return QString(); 0156 } 0157 0158 void 0159 DaapTrack::setComment( const QString &newComment ) 0160 { 0161 Q_UNUSED( newComment ) 0162 } 0163 0164 qint64 0165 DaapTrack::length() const 0166 { 0167 return m_length; 0168 } 0169 0170 int 0171 DaapTrack::filesize() const 0172 { 0173 return 0; 0174 } 0175 0176 int 0177 DaapTrack::sampleRate() const 0178 { 0179 return 0; 0180 } 0181 0182 int 0183 DaapTrack::bitrate() const 0184 { 0185 return 0; 0186 } 0187 0188 int 0189 DaapTrack::trackNumber() const 0190 { 0191 return m_trackNumber; 0192 } 0193 0194 void 0195 DaapTrack::setTrackNumber( int newTrackNumber ) 0196 { 0197 m_trackNumber = newTrackNumber; 0198 } 0199 0200 int 0201 DaapTrack::discNumber() const 0202 { 0203 return 0; 0204 } 0205 0206 void 0207 DaapTrack::setDiscNumber( int newDiscNumber ) 0208 { 0209 Q_UNUSED( newDiscNumber ) 0210 } 0211 0212 QString 0213 DaapTrack::type() const 0214 { 0215 return m_type; 0216 } 0217 0218 bool 0219 DaapTrack::inCollection() const 0220 { 0221 return true; 0222 } 0223 0224 Collections::Collection* 0225 DaapTrack::collection() const 0226 { 0227 return m_collection; 0228 } 0229 0230 void 0231 DaapTrack::setAlbum( const DaapAlbumPtr &album ) 0232 { 0233 m_album = album; 0234 } 0235 0236 void 0237 DaapTrack::setArtist( const DaapArtistPtr &artist ) 0238 { 0239 m_artist = artist; 0240 } 0241 0242 void 0243 DaapTrack::setGenre( const DaapGenrePtr &genre ) 0244 { 0245 m_genre = genre; 0246 } 0247 0248 void 0249 DaapTrack::setComposer( const DaapComposerPtr &composer ) 0250 { 0251 m_composer = composer; 0252 } 0253 0254 void 0255 DaapTrack::setYear( const DaapYearPtr &year ) 0256 { 0257 m_year = year; 0258 } 0259 0260 void 0261 DaapTrack::setTitle( const QString &title ) 0262 { 0263 m_name = title; 0264 } 0265 0266 void 0267 DaapTrack::setLength( qint64 length ) 0268 { 0269 m_length = length; 0270 } 0271 0272 //DaapArtist 0273 0274 DaapArtist::DaapArtist( const QString &name ) 0275 : Meta::Artist() 0276 , m_name( name ) 0277 , m_tracks() 0278 { 0279 //nothing to do 0280 } 0281 0282 DaapArtist::~DaapArtist() 0283 { 0284 //nothing to do 0285 } 0286 0287 QString 0288 DaapArtist::name() const 0289 { 0290 return m_name; 0291 } 0292 0293 TrackList 0294 DaapArtist::tracks() 0295 { 0296 return m_tracks; 0297 } 0298 0299 AlbumList 0300 DaapArtist::albums() 0301 { 0302 //TODO 0303 return AlbumList(); 0304 } 0305 0306 void 0307 DaapArtist::addTrack( const DaapTrackPtr &track ) 0308 { 0309 m_tracks.append( TrackPtr::staticCast( track ) ); 0310 } 0311 0312 DaapAlbum::DaapAlbum( const QString &name ) 0313 : Meta::Album() 0314 , m_name( name ) 0315 , m_tracks() 0316 , m_isCompilation( false ) 0317 , m_albumArtist( nullptr ) 0318 { 0319 //nothing to do 0320 } 0321 0322 DaapAlbum::~DaapAlbum() 0323 { 0324 //nothing to do 0325 } 0326 0327 QString 0328 DaapAlbum::name() const 0329 { 0330 return m_name; 0331 } 0332 0333 bool 0334 DaapAlbum::isCompilation() const 0335 { 0336 return m_isCompilation; 0337 } 0338 0339 bool 0340 DaapAlbum::hasAlbumArtist() const 0341 { 0342 return !m_albumArtist.isNull(); 0343 } 0344 0345 ArtistPtr 0346 DaapAlbum::albumArtist() const 0347 { 0348 return ArtistPtr::staticCast( m_albumArtist ); 0349 } 0350 0351 TrackList 0352 DaapAlbum::tracks() 0353 { 0354 return m_tracks; 0355 } 0356 0357 void 0358 DaapAlbum::addTrack( const DaapTrackPtr &track ) 0359 { 0360 m_tracks.append( TrackPtr::staticCast( track ) ); 0361 } 0362 0363 void 0364 DaapAlbum::setAlbumArtist( const DaapArtistPtr &artist ) 0365 { 0366 m_albumArtist = artist; 0367 } 0368 0369 //DaapGenre 0370 0371 DaapGenre::DaapGenre( const QString &name ) 0372 : Meta::Genre() 0373 , m_name( name ) 0374 , m_tracks() 0375 { 0376 //nothing to do 0377 } 0378 0379 DaapGenre::~DaapGenre() 0380 { 0381 //nothing to do 0382 } 0383 0384 QString 0385 DaapGenre::name() const 0386 { 0387 return m_name; 0388 } 0389 0390 TrackList 0391 DaapGenre::tracks() 0392 { 0393 return m_tracks; 0394 } 0395 0396 void 0397 DaapGenre::addTrack( const DaapTrackPtr &track ) 0398 { 0399 m_tracks.append( TrackPtr::staticCast( track ) ); 0400 } 0401 0402 //DaapComposer 0403 0404 DaapComposer::DaapComposer( const QString &name ) 0405 : Meta::Composer() 0406 , m_name( name ) 0407 , m_tracks() 0408 { 0409 //nothing to do 0410 } 0411 0412 DaapComposer::~DaapComposer() 0413 { 0414 //nothing to do 0415 } 0416 0417 QString 0418 DaapComposer::name() const 0419 { 0420 return m_name; 0421 } 0422 0423 TrackList 0424 DaapComposer::tracks() 0425 { 0426 return m_tracks; 0427 } 0428 0429 void 0430 DaapComposer::addTrack( const DaapTrackPtr &track ) 0431 { 0432 m_tracks.append( TrackPtr::staticCast( track ) ); 0433 } 0434 0435 //DaapYear 0436 0437 DaapYear::DaapYear( const QString &name ) 0438 : Meta::Year() 0439 , m_name( name ) 0440 , m_tracks() 0441 { 0442 //nothing to do 0443 } 0444 0445 DaapYear::~DaapYear() 0446 { 0447 //nothing to do 0448 } 0449 0450 QString 0451 DaapYear::name() const 0452 { 0453 return m_name; 0454 } 0455 0456 TrackList 0457 DaapYear::tracks() 0458 { 0459 return m_tracks; 0460 } 0461 0462 void 0463 DaapYear::addTrack( const DaapTrackPtr &track ) 0464 { 0465 m_tracks.append( TrackPtr::staticCast( track ) ); 0466 }