153 void setStreamCount(int count) { _streams.resize(count); } |
153 void setStreamCount(int count) { _streams.resize(count); } |
154 |
154 |
155 StreamType streamType(int index) { return _streams.at(index).type; } |
155 StreamType streamType(int index) { return _streams.at(index).type; } |
156 void setStreamType(int index, StreamType type) { _streams[index].type = type; } |
156 void setStreamType(int index, StreamType type) { _streams[index].type = type; } |
157 |
157 |
158 QVariant metaData(int index, QtMediaServices::MetaData key) { |
158 QVariant metaData(int index, QtMultimedia::MetaData key) { |
159 return _streams.at(index).metaData.value(key); } |
159 return _streams.at(index).metaData.value(key); } |
160 void setMetaData(int index, QtMediaServices::MetaData key, const QVariant &value) { |
160 void setMetaData(int index, QtMultimedia::MetaData key, const QVariant &value) { |
161 _streams[index].metaData.insert(key, value); } |
161 _streams[index].metaData.insert(key, value); } |
162 |
162 |
163 bool isActive(int index) { return _streams.at(index).active; } |
163 bool isActive(int index) { return _streams.at(index).active; } |
164 void setActive(int index, bool state) { _streams[index].active = state; } |
164 void setActive(int index, bool state) { _streams[index].active = state; } |
165 |
165 |
166 private: |
166 private: |
167 struct Stream |
167 struct Stream |
168 { |
168 { |
169 Stream() : type(UnknownStream), active(false) {} |
169 Stream() : type(UnknownStream), active(false) {} |
170 StreamType type; |
170 StreamType type; |
171 QMap<QtMediaServices::MetaData, QVariant> metaData; |
171 QMap<QtMultimedia::MetaData, QVariant> metaData; |
172 bool active; |
172 bool active; |
173 }; |
173 }; |
174 |
174 |
175 QVector<Stream> _streams; |
175 QVector<Stream> _streams; |
176 }; |
176 }; |
190 { |
190 { |
191 delete mockControl; |
191 delete mockControl; |
192 delete mockStreamsControl; |
192 delete mockStreamsControl; |
193 } |
193 } |
194 |
194 |
195 QMediaControl* control(const char *iid) const |
195 QMediaControl* requestControl(const char *iid) |
196 { |
196 { |
197 if (qstrcmp(iid, QMediaPlayerControl_iid) == 0) |
197 if (qstrcmp(iid, QMediaPlayerControl_iid) == 0) |
198 return mockControl; |
198 return mockControl; |
199 |
199 |
200 return 0; |
200 return 0; |
|
201 } |
|
202 |
|
203 void releaseControl(QMediaControl *) |
|
204 { |
201 } |
205 } |
202 |
206 |
203 void setState(QMediaPlayer::State state) { emit mockControl->stateChanged(mockControl->_state = state); } |
207 void setState(QMediaPlayer::State state) { emit mockControl->stateChanged(mockControl->_state = state); } |
204 void setState(QMediaPlayer::State state, QMediaPlayer::MediaStatus status) { |
208 void setState(QMediaPlayer::State state, QMediaPlayer::MediaStatus status) { |
205 mockControl->_state = state; |
209 mockControl->_state = state; |
444 player.setPlaybackRate(playbackRate); |
448 player.setPlaybackRate(playbackRate); |
445 QCOMPARE(player.playbackRate(), qreal(0)); |
449 QCOMPARE(player.playbackRate(), qreal(0)); |
446 QCOMPARE(spy.count(), 0); |
450 QCOMPARE(spy.count(), 0); |
447 } { |
451 } { |
448 QMediaPlaylist playlist; |
452 QMediaPlaylist playlist; |
449 playlist.setMediaObject(&player); |
453 player.setPlaylist(&playlist); |
450 |
454 |
451 QSignalSpy mediaSpy(&player, SIGNAL(mediaChanged(QMediaContent))); |
455 QSignalSpy mediaSpy(&player, SIGNAL(mediaChanged(QMediaContent))); |
452 QSignalSpy statusSpy(&player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus))); |
456 QSignalSpy statusSpy(&player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus))); |
453 |
457 |
454 playlist.addMedia(QUrl("http://example.com/stream")); |
458 playlist.addMedia(QUrl("http://example.com/stream")); |
841 |
845 |
842 mockService->setIsValid(true); |
846 mockService->setIsValid(true); |
843 mockService->setState(QMediaPlayer::StoppedState, QMediaPlayer::NoMedia); |
847 mockService->setState(QMediaPlayer::StoppedState, QMediaPlayer::NoMedia); |
844 |
848 |
845 QMediaPlaylist *playlist = new QMediaPlaylist; |
849 QMediaPlaylist *playlist = new QMediaPlaylist; |
846 playlist->setMediaObject(player); |
850 player->setPlaylist(playlist); |
847 |
851 |
848 QSignalSpy stateSpy(player, SIGNAL(stateChanged(QMediaPlayer::State))); |
852 QSignalSpy stateSpy(player, SIGNAL(stateChanged(QMediaPlayer::State))); |
849 QSignalSpy mediaSpy(player, SIGNAL(mediaChanged(QMediaContent))); |
853 QSignalSpy mediaSpy(player, SIGNAL(mediaChanged(QMediaContent))); |
850 |
854 |
851 // Test the player does nothing with an empty playlist attached. |
855 // Test the player does nothing with an empty playlist attached. |
982 QCOMPARE(stateSpy.count(), 11); |
986 QCOMPARE(stateSpy.count(), 11); |
983 QCOMPARE(mediaSpy.count(), 9); |
987 QCOMPARE(mediaSpy.count(), 9); |
984 |
988 |
985 // Test the player can bind to playlist again |
989 // Test the player can bind to playlist again |
986 playlist = new QMediaPlaylist; |
990 playlist = new QMediaPlaylist; |
987 playlist->setMediaObject(player); |
991 player->setPlaylist(playlist); |
988 QCOMPARE(playlist->mediaObject(), qobject_cast<QMediaObject*>(player)); |
|
989 |
992 |
990 QCOMPARE(player->media(), QMediaContent()); |
993 QCOMPARE(player->media(), QMediaContent()); |
991 QCOMPARE(player->state(), QMediaPlayer::StoppedState); |
994 QCOMPARE(player->state(), QMediaPlayer::StoppedState); |
992 |
995 |
993 playlist->addMedia(content0); |
996 playlist->addMedia(content0); |
1006 playlist2->addMedia(content2); |
1009 playlist2->addMedia(content2); |
1007 playlist2->addMedia(content3); |
1010 playlist2->addMedia(content3); |
1008 playlist2->setCurrentIndex(2); |
1011 playlist2->setCurrentIndex(2); |
1009 |
1012 |
1010 player->play(); |
1013 player->play(); |
1011 playlist2->setMediaObject(player); |
1014 player->setPlaylist(playlist2); |
1012 QCOMPARE(playlist2->mediaObject(), qobject_cast<QMediaObject*>(player)); |
|
1013 QVERIFY(playlist->mediaObject() == 0); |
|
1014 QCOMPARE(player->media(), playlist2->currentMedia()); |
1015 QCOMPARE(player->media(), playlist2->currentMedia()); |
1015 QCOMPARE(player->state(), QMediaPlayer::StoppedState); |
1016 QCOMPARE(player->state(), QMediaPlayer::StoppedState); |
1016 |
1017 |
1017 playlist2->setCurrentIndex(1); |
1018 playlist2->setCurrentIndex(1); |
1018 QCOMPARE(player->media(), playlist2->currentMedia()); |
1019 QCOMPARE(player->media(), playlist2->currentMedia()); |
|
1020 |
|
1021 { |
|
1022 QMediaPlaylist playlist; |
|
1023 playlist.addMedia(content1); |
|
1024 playlist.addMedia(content2); |
|
1025 playlist.addMedia(content3); |
|
1026 playlist.setCurrentIndex(1); |
|
1027 |
|
1028 player->setPlaylist(&playlist); |
|
1029 QCOMPARE(player->playlist(), &playlist); |
|
1030 QCOMPARE(player->media(), content2); |
|
1031 } //playlist should be detached now |
|
1032 |
|
1033 QVERIFY(player->playlist() == 0); |
|
1034 QCOMPARE(player->media(), QMediaContent()); |
1019 } |
1035 } |
1020 |
1036 |
1021 QTEST_MAIN(tst_QMediaPlayer) |
1037 QTEST_MAIN(tst_QMediaPlayer) |
1022 |
1038 |
1023 #include "tst_qmediaplayer.moc" |
1039 #include "tst_qmediaplayer.moc" |