Start/ | End/ | |||
True | False | - | Line | Source |
1 | /* | |||
2 | * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). | |||
3 | * All rights reserved. | |||
4 | * This component and the accompanying materials are made available | |||
5 | * under the terms of "Eclipse Public License v1.0" | |||
6 | * which accompanies this distribution, and is available | |||
7 | * at the URL "http://www.eclipse.org/legal/epl-v10.html". | |||
8 | * | |||
9 | * Initial Contributors: | |||
10 | * Nokia Corporation - initial contribution. | |||
11 | * | |||
12 | * Contributors: | |||
13 | * | |||
14 | * Description: Playback Data provider for playback view. | |||
15 | * | |||
16 | */ | |||
17 | ||||
18 | ||||
19 | #include <qstring> | |||
20 | #include <qpixmap> | |||
21 | #include <qpainter> | |||
22 | #include <QBuffer> | |||
23 | #include <hbicon.h> | |||
24 | ||||
25 | #include "stub/inc/thumbnailmanager_qt.h" | |||
26 | #include <thumbnaildata.h> | |||
27 | #include <thumbnailobjectsource.h> | |||
28 | ||||
29 | #include "stub/inc/mpsongdata.h" | |||
30 | #include "mptrace.h" | |||
31 | ||||
32 | const int KUndefined = -1; | |||
33 | ||||
34 | ||||
Top | ||||
0 | 0 | - | 35 | MpSongData::MpSongData( QObject *parent ) |
36 | : QObject( parent ), | |||
37 | mTitle( NULL ), | |||
38 | mAlbum( NULL ), | |||
39 | mArtist( NULL ), | |||
40 | mComposer( NULL), | |||
41 | mGenre( NULL ), | |||
42 | mYear( NULL ), | |||
43 | mAlbumTrack( NULL ), | |||
44 | mAlbumArt(), | |||
45 | mReqId( KUndefined ) | |||
46 | { | |||
47 | TX_ENTRY_ARGS("Stub") | |||
48 | mThumbnailManager = new ThumbnailManager( this ); | |||
49 | mThumbnailManager->setQualityPreference( ThumbnailManager::OptimizeForQuality ); | |||
50 | mThumbnailManager->setThumbnailSize( ThumbnailManager::ThumbnailMedium ); | |||
51 | QObject::connect( mThumbnailManager, SIGNAL( thumbnailReady( QPixmap , void * , int , int ) ), | |||
52 | this, SLOT( thumbnailReady( QPixmap , void * , int , int ) ) ); | |||
53 | ||||
54 | TX_EXIT_ARGS("Stub") | |||
55 | } | |||
56 | ||||
Top | ||||
0 | 0 | - | 57 | MpSongData::~MpSongData() |
58 | { | |||
59 | TX_ENTRY_ARGS("Stub") | |||
0 | 0 | - | 60 | if( mThumbnailManager ) { |
61 | delete mThumbnailManager; | |||
62 | } | |||
63 | TX_EXIT_ARGS("Stub") | |||
64 | } | |||
65 | ||||
Top | ||||
0 | 0 | - | 66 | void MpSongData::albumArt( HbIcon& icon ) const |
67 | { | |||
68 | TX_ENTRY_ARGS("Stub") | |||
69 | TX_EXIT_ARGS("Stub") | |||
70 | } | |||
71 | ||||
72 | ||||
Top | ||||
0 | 0 | - | 73 | QString MpSongData::title() const |
74 | { | |||
75 | TX_ENTRY_ARGS("Stub") | |||
0 | - | 76 | return mTitle; | |
77 | } | |||
78 | ||||
Top | ||||
0 | 0 | - | 79 | QString MpSongData::album() const |
80 | { | |||
81 | TX_ENTRY_ARGS("Stub") | |||
0 | - | 82 | return mAlbum; | |
83 | } | |||
84 | ||||
Top | ||||
0 | 0 | - | 85 | QString MpSongData::artist() const |
86 | { | |||
87 | TX_ENTRY_ARGS("Stub") | |||
0 | - | 88 | return mArtist; | |
89 | } | |||
90 | ||||
Top | ||||
0 | 0 | - | 91 | QString MpSongData::comment() const |
92 | { | |||
93 | TX_ENTRY_ARGS("Stub") | |||
0 | - | 94 | return mComment; | |
95 | } | |||
96 | ||||
Top | ||||
0 | 0 | - | 97 | QString MpSongData::composer() const |
98 | { | |||
99 | TX_ENTRY_ARGS("Stub") | |||
0 | - | 100 | return mComposer; | |
101 | } | |||
102 | ||||
103 | ||||
Top | ||||
0 | 0 | - | 104 | QString MpSongData::genre() const |
105 | { | |||
106 | TX_ENTRY_ARGS("Stub") | |||
0 | - | 107 | return mGenre; | |
108 | } | |||
109 | ||||
110 | ||||
Top | ||||
0 | 0 | - | 111 | QString MpSongData::albumTrack() const |
112 | { | |||
113 | TX_ENTRY_ARGS("Stub") | |||
0 | - | 114 | return mAlbumTrack; | |
115 | } | |||
116 | ||||
Top | ||||
0 | 0 | - | 117 | QString MpSongData::link() const |
118 | { | |||
119 | TX_ENTRY_ARGS("Stub") | |||
0 | - | 120 | return mLink; | |
121 | } | |||
122 | ||||
Top | ||||
0 | 0 | - | 123 | QString MpSongData::year() const |
124 | { | |||
125 | TX_ENTRY_ARGS("Stub") | |||
0 | - | 126 | return mYear; | |
127 | } | |||
128 | ||||
Top | ||||
0 | 0 | - | 129 | QString MpSongData::fileName() const |
130 | { | |||
131 | TX_LOG | |||
0 | - | 132 | return mFileName; | |
133 | } | |||
134 | ||||
Top | ||||
0 | 0 | - | 135 | QString MpSongData::mimeType() const |
136 | { | |||
137 | TX_LOG | |||
0 | - | 138 | return mMimeType; | |
139 | } | |||
140 | ||||
Top | ||||
0 | 0 | - | 141 | QString MpSongData::duration() const |
142 | { | |||
143 | TX_LOG | |||
0 | - | 144 | return mDuration; | |
145 | } | |||
146 | ||||
Top | ||||
0 | 0 | - | 147 | QString MpSongData::bitRate() const |
148 | { | |||
149 | TX_LOG | |||
0 | - | 150 | return mBitRate; | |
151 | } | |||
152 | ||||
Top | ||||
0 | 0 | - | 153 | QString MpSongData::sampleRate() const |
154 | { | |||
155 | TX_LOG | |||
0 | - | 156 | return mSampleRate; | |
157 | } | |||
158 | ||||
Top | ||||
0 | 0 | - | 159 | QString MpSongData::size() const |
160 | { | |||
161 | TX_LOG | |||
0 | - | 162 | return mSize; | |
163 | } | |||
164 | ||||
Top | ||||
0 | 0 | - | 165 | QString MpSongData::modified() const |
166 | { | |||
167 | TX_LOG | |||
0 | - | 168 | return mModified; | |
169 | } | |||
170 | ||||
Top | ||||
0 | 0 | - | 171 | QString MpSongData::copyright() const |
172 | { | |||
173 | TX_LOG | |||
0 | - | 174 | return mCopyright; | |
175 | } | |||
176 | ||||
Top | ||||
0 | 0 | - | 177 | QString MpSongData::musicURL() const |
178 | { | |||
179 | TX_LOG | |||
0 | - | 180 | return mMusicURL; | |
181 | } | |||
182 | ||||
Top | ||||
0 | 0 | - | 183 | bool MpSongData::setTitle( const QString &title ) |
184 | { | |||
185 | TX_ENTRY_ARGS("Stub title =" << title ) | |||
186 | bool change = false; | |||
0 | 0 | - | 187 | if ( title != mTitle ) { |
188 | change = true; | |||
189 | mTitle = title; | |||
190 | } | |||
191 | TX_EXIT_ARGS("Stub") | |||
0 | - | 192 | return change; | |
193 | } | |||
194 | ||||
Top | ||||
0 | 0 | - | 195 | bool MpSongData::setAlbum( const QString &album ) |
196 | { | |||
197 | TX_ENTRY_ARGS("Stub album =" << album ) | |||
198 | TX_EXIT_ARGS("Stub") | |||
0 | - | 199 | return false; | |
200 | } | |||
201 | ||||
Top | ||||
0 | 0 | - | 202 | bool MpSongData::setArtist( const QString &artist ) |
203 | { | |||
204 | TX_ENTRY_ARGS("Stub artist =" << artist ) | |||
205 | bool change = false; | |||
0 | 0 | - | 206 | if ( artist != mArtist ) { |
207 | change = true; | |||
208 | mArtist = artist; | |||
209 | } | |||
210 | TX_EXIT_ARGS("Stub") | |||
0 | - | 211 | return change; | |
212 | } | |||
213 | ||||
Top | ||||
0 | 0 | - | 214 | bool MpSongData::setComment( const QString &comment) |
215 | { | |||
216 | TX_ENTRY_ARGS("Stub comment =" << comment ) | |||
217 | bool change = false; | |||
0 | 0 | - | 218 | if ( comment != mComment ) { |
219 | change = true; | |||
220 | mComment = comment; | |||
221 | } | |||
222 | TX_EXIT_ARGS("Stub") | |||
0 | - | 223 | return change; | |
224 | } | |||
225 | ||||
Top | ||||
0 | 0 | - | 226 | bool MpSongData::setComposer( const QString &composer ) |
227 | { | |||
228 | TX_ENTRY_ARGS("Stub composer =" << composer ) | |||
229 | bool change = false; | |||
0 | 0 | - | 230 | if ( composer != mComposer ) { |
231 | change = true; | |||
232 | mComposer = composer; | |||
233 | } | |||
234 | TX_EXIT_ARGS("Stub") | |||
0 | - | 235 | return change; | |
236 | } | |||
237 | ||||
Top | ||||
0 | 0 | - | 238 | bool MpSongData::setGenre( const QString &genre ) |
239 | { | |||
240 | TX_ENTRY_ARGS("Stub genre =" << genre ) | |||
241 | bool change = false; | |||
0 | 0 | - | 242 | if ( genre != mGenre ) { |
243 | change = true; | |||
244 | mGenre = genre; | |||
245 | } | |||
246 | TX_EXIT_ARGS("Stub") | |||
0 | - | 247 | return change; | |
248 | } | |||
249 | ||||
250 | ||||
Top | ||||
0 | 0 | - | 251 | bool MpSongData::setYear( int year ) |
252 | { | |||
253 | TX_ENTRY_ARGS("Stub year =" << year ) | |||
254 | bool change = false; | |||
0 | 0 | - | 255 | if ( QString::number(year) != mYear ) { |
256 | change = true; | |||
0 | 0 | - | 257 | if ( year >= 0 && year < 9999 ) { |
258 | mYear = QString::number(year); | |||
259 | } | |||
260 | } | |||
261 | TX_EXIT_ARGS("Stub") | |||
0 | - | 262 | return change; | |
263 | } | |||
264 | ||||
Top | ||||
0 | 0 | - | 265 | bool MpSongData::setAlbumTrack( const QString &track ) |
266 | { | |||
267 | TX_ENTRY_ARGS("Stub track =" << track ) | |||
268 | bool change = false; | |||
0 | 0 | - | 269 | if ( track != mAlbumTrack ) { |
270 | change = true; | |||
271 | mAlbumTrack = track; | |||
272 | } | |||
273 | TX_EXIT_ARGS("Stub") | |||
0 | - | 274 | return change; | |
275 | } | |||
276 | ||||
Top | ||||
0 | 0 | - | 277 | void MpSongData::setLink( const QString &link ) |
278 | { | |||
279 | TX_ENTRY_ARGS("Stub Link =" << link ) | |||
280 | mLink = link; | |||
281 | TX_EXIT_ARGS("Stub") | |||
282 | } | |||
283 | ||||
Top | ||||
0 | 0 | - | 284 | void MpSongData::setAlbumArtUri( const QString &albumArtUri) |
285 | { | |||
286 | TX_ENTRY_ARGS("Stub albumArtUri = " << albumArtUri ) | |||
0 | 0 | - | 287 | if ( !albumArtUri.isEmpty() ) { |
288 | bool ok = true; | |||
0 | 0 | - | 289 | if ( mReqId != KUndefined ) { |
290 | // There is already an outstanding request. Cancel it first. | |||
291 | bool ok = mThumbnailManager->cancelRequest( mReqId ); | |||
292 | } | |||
0 | 0 | - | 293 | if ( ok ) { |
294 | mReqId = mThumbnailManager->getThumbnail( albumArtUri ); | |||
0 | 0 | - | 295 | if ( mReqId == KUndefined ) { |
296 | // Request failed. Set default album art. | |||
297 | mAlbumArt = mDefaultAlbumArt; | |||
298 | emit albumArtReady(); | |||
299 | } | |||
300 | } | |||
301 | } | |||
302 | else { | |||
303 | // No album art uri. Set default album art. | |||
304 | mAlbumArt = mDefaultAlbumArt; | |||
305 | emit albumArtReady(); | |||
306 | } | |||
307 | TX_EXIT | |||
308 | } | |||
309 | ||||
Top | ||||
0 | 0 | - | 310 | bool MpSongData::setFileName( const QString &fileName ) |
311 | { | |||
312 | TX_ENTRY_ARGS( "File name =" << fileName ) | |||
313 | bool change = false; | |||
0 | 0 | - | 314 | if ( fileName != mFileName ) { |
315 | change = true; | |||
316 | mFileName = fileName; | |||
317 | } | |||
318 | TX_EXIT | |||
0 | - | 319 | return change; | |
320 | } | |||
321 | ||||
Top | ||||
0 | 0 | - | 322 | bool MpSongData::setMimeType( const QString &mimeType ) |
323 | { | |||
324 | TX_ENTRY_ARGS( "Mime =" << mimeType ) | |||
325 | bool change = false; | |||
0 | 0 | - | 326 | if ( mimeType != mMimeType ) { |
327 | change = true; | |||
328 | mMimeType = mimeType; | |||
329 | } | |||
330 | TX_EXIT | |||
0 | - | 331 | return change; | |
332 | } | |||
333 | ||||
Top | ||||
0 | 0 | - | 334 | bool MpSongData::setDuration( int duration ) |
335 | { | |||
336 | TX_ENTRY_ARGS( "Duration =" << duration ) | |||
337 | bool change = false; | |||
338 | QString timeFormatOne("%1:%2:%3"); | |||
339 | QString timeFormatTwo("%1:%2"); | |||
0 | 0 | - | 340 | if ( QString::number( duration ) != mDuration ) { |
341 | change = true; | |||
0 | 0 | - | 342 | if ( duration >= 3600 ) { |
343 | // more than one hours | |||
344 | QString hourStr, minStr, secStr; | |||
345 | int hour = duration / 3600; | |||
346 | int min = duration % 3600 / 60; | |||
347 | int sec = duration % 3600 % 60; | |||
348 | ||||
349 | hourStr = hour >= 10 ? QString::number( hour ) : QString::number( hour ).prepend( "0" ); | |||
0 | 0 | - | 349 | ternary-?: hour >= 10 |
350 | minStr = min >= 10 ? QString::number( min ) : QString::number( min ).prepend( "0" ); | |||
0 | 0 | - | 350 | ternary-?: min >= 10 |
351 | secStr = sec >= 10 ? QString::number( sec ) : QString::number( sec ).prepend( "0" ); | |||
0 | 0 | - | 351 | ternary-?: sec >= 10 |
352 | mDuration = timeFormatOne.arg( hourStr ).arg( minStr ).arg( secStr ); | |||
0 | 0 | - | 353 | } else if ( duration >= 60 && duration < 3600 ) { |
354 | // more than one min && less than one hour | |||
355 | QString minStr, secStr; | |||
356 | int min = duration / 60; | |||
357 | int sec = duration % 60; | |||
358 | ||||
359 | minStr = min >= 10 ? QString::number( min ) : QString::number( min ).prepend( "0" ); | |||
0 | 0 | - | 359 | ternary-?: min >= 10 |
360 | secStr = sec >= 10 ? QString::number( sec ) : QString::number( sec ).prepend( "0" ); | |||
0 | 0 | - | 360 | ternary-?: sec >= 10 |
361 | mDuration = timeFormatTwo.arg( minStr ).arg( secStr ); | |||
0 | 0 | - | 362 | } else if ( duration > 0 && duration < 60 ) { |
363 | QString secStr; | |||
364 | secStr = duration >= 10 ? QString::number( duration ) : QString::number( duration ).prepend( "0" ); | |||
0 | 0 | - | 364 | ternary-?: duration >= 10 |
365 | mDuration = secStr; | |||
366 | } else { | |||
367 | mDuration = QString(); | |||
368 | } | |||
369 | } | |||
370 | TX_EXIT | |||
0 | - | 371 | return change; | |
372 | } | |||
373 | ||||
Top | ||||
0 | 0 | - | 374 | bool MpSongData::setBitRate( int bitRate) |
375 | { | |||
376 | TX_ENTRY_ARGS( "Bit rate =" << bitRate ) | |||
377 | bool change = false; | |||
0 | 0 | - | 378 | if ( QString::number( bitRate ) != mBitRate ) { |
379 | change = true; | |||
0 | 0 | - | 380 | if ( bitRate > 0 ) { |
381 | mBitRate = QString::number( bitRate / 1000 ); | |||
382 | } else { | |||
383 | mBitRate = QString(); | |||
384 | } | |||
385 | } | |||
386 | TX_EXIT | |||
0 | - | 387 | return change; | |
388 | } | |||
389 | ||||
Top | ||||
0 | 0 | - | 390 | bool MpSongData::setSampleRate( int sampleRate ) |
391 | { | |||
392 | TX_ENTRY_ARGS( "Sample rate =" << sampleRate ) | |||
393 | bool change = false; | |||
0 | 0 | - | 394 | if ( QString::number( sampleRate ) != mSampleRate ) { |
395 | change = true; | |||
0 | 0 | - | 396 | if ( sampleRate > 0 ) { |
397 | mSampleRate = QString::number( sampleRate ); | |||
398 | } else { | |||
399 | mSampleRate = QString(); | |||
400 | } | |||
401 | } | |||
402 | TX_EXIT | |||
0 | - | 403 | return change; | |
404 | } | |||
405 | ||||
Top | ||||
0 | 0 | - | 406 | bool MpSongData::setSize( int size ) |
407 | { | |||
408 | TX_ENTRY_ARGS( "Size =" << size ) | |||
409 | bool change = false; | |||
0 | 0 | - | 410 | if ( QString::number( size ) != mSize ) { |
411 | change = true; | |||
412 | mSize = QString::number( size / 1000 ).append( " MB" ); | |||
413 | } | |||
414 | TX_EXIT | |||
0 | - | 415 | return change; | |
416 | } | |||
417 | ||||
Top | ||||
0 | 0 | - | 418 | bool MpSongData::setModified( const QString &modified ) |
419 | { | |||
420 | TX_ENTRY_ARGS( "Modified =" << modified ) | |||
421 | bool change = false; | |||
0 | 0 | - | 422 | if ( modified != mModified ) { |
423 | change = true; | |||
424 | mModified = modified; | |||
425 | } | |||
426 | TX_EXIT | |||
0 | - | 427 | return change; | |
428 | } | |||
429 | ||||
Top | ||||
0 | 0 | - | 430 | bool MpSongData::setCopyright( const QString ©right ) |
431 | { | |||
432 | TX_ENTRY_ARGS( "Copyright =" << copyright ) | |||
433 | bool change = false; | |||
0 | 0 | - | 434 | if ( copyright != mCopyright ) { |
435 | change = true; | |||
436 | mCopyright = copyright; | |||
437 | } | |||
438 | TX_EXIT | |||
0 | - | 439 | return change; | |
440 | } | |||
441 | ||||
Top | ||||
0 | 0 | - | 442 | bool MpSongData::setMusicURL( const QString &musicURL ) |
443 | { | |||
444 | TX_ENTRY_ARGS( "Music URL =" << musicURL ) | |||
445 | bool change = false; | |||
0 | 0 | - | 446 | if ( musicURL != mMusicURL ) { |
447 | change = true; | |||
448 | mMusicURL = musicURL; | |||
449 | } | |||
450 | TX_EXIT | |||
0 | - | 451 | return change; | |
452 | } | |||
453 | ||||
454 | ||||
Top | ||||
0 | 0 | - | 455 | void MpSongData::thumbnailReady( |
456 | const QPixmap& pixmap, | |||
457 | void *data, | |||
458 | int id, | |||
459 | int error ) | |||
460 | { | |||
461 | TX_ENTRY_ARGS("Stub") | |||
462 | Q_UNUSED( data ); | |||
463 | TX_EXIT_ARGS("Stub") | |||
464 | } | |||
465 | ||||
Top | ||||
0 | 0 | - | 466 | void MpSongData::commitPlaybackInfo() |
467 | { | |||
468 | TX_ENTRY_ARGS("Stub") | |||
469 | emit playbackInfoChanged(); | |||
470 | TX_EXIT_ARGS("Stub") | |||
471 | } | |||
472 | ||||
Top | ||||
0 | 0 | - | 473 | void MpSongData::commitSongDetailInfo() |
474 | { | |||
475 | TX_ENTRY_ARGS("Stub") | |||
476 | emit songDetailInfoChanged(); | |||
477 | TX_EXIT_ARGS("Stub") | |||
478 | } | |||
479 | ||||
Top | ||||
0 | 0 | - | 480 | QString MpSongData::albumArtBase64() const |
481 | { | |||
0 | - | 482 | return QString(); | |
483 | } | |||
***TER 0% (0/146) of SOURCE FILE mpsongdata.cpp |