Merge lp:~phablet-team/qtubuntu-media/fix-1528898 into lp:qtubuntu-media/stable

Proposed by Jim Hodapp
Status: Superseded
Proposed branch: lp:~phablet-team/qtubuntu-media/fix-1528898
Merge into: lp:qtubuntu-media/stable
Prerequisite: lp:~phablet-team/qtubuntu-media/fix-removemedia
Diff against target: 495 lines (+213/-53)
11 files modified
debian/changelog (+109/-42)
src/aal/aalmediaplayercontrol.cpp (+8/-0)
src/aal/aalmediaplayercontrol.h (+5/-0)
src/aal/aalmediaplayerservice.cpp (+24/-0)
src/aal/aalmediaplayerservice.h (+5/-0)
src/aal/aalmediaplaylistcontrol.cpp (+27/-3)
src/aal/aalmediaplaylistcontrol.h (+1/-0)
src/aal/aalmediaplaylistprovider.cpp (+23/-7)
src/aal/aalmediaplaylistprovider.h (+3/-0)
src/aal/aalutility.cpp (+7/-0)
tests/unit/service.h (+1/-1)
To merge this branch: bzr merge lp:~phablet-team/qtubuntu-media/fix-1528898
Reviewer Review Type Date Requested Status
Alfonso Sanchez-Beato Approve
Andrew Hayzen (community) Approve
Review via email: mp+281550@code.launchpad.net

This proposal has been superseded by a proposal from 2016-01-12.

Commit message

Description of the change

To post a comment you must log in.
Revision history for this message
Andrew Hayzen (ahayzen) wrote :

LGTM :-)

review: Approve
Revision history for this message
Alfonso Sanchez-Beato (alfonsosanchezbeato) wrote :

See inline comment.

review: Needs Fixing
98. By Jim Hodapp

Make sure that selecting a random track from the songs list still works as expected.

Revision history for this message
Alfonso Sanchez-Beato (alfonsosanchezbeato) wrote :

Looks good, but I have spotted a small formatting issue, see comment.

99. By Jim Hodapp

Get rid of spurious '+'

Revision history for this message
Alfonso Sanchez-Beato (alfonsosanchezbeato) wrote :

LGTM

review: Approve
100. By Jim Hodapp

Merged with trunk

Unmerged revisions

100. By Jim Hodapp

Merged with trunk

99. By Jim Hodapp

Get rid of spurious '+'

98. By Jim Hodapp

Make sure that selecting a random track from the songs list still works as expected.

97. By Jim Hodapp

Fix bug #1528898

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'debian/changelog'
--- debian/changelog 2016-01-04 14:09:33 +0000
+++ debian/changelog 2016-01-12 14:48:24 +0000
@@ -1,3 +1,10 @@
1qtubuntu-media (0.8.0+16.04.20160105-0ubuntu1) xenial; urgency=medium
2
3 [ CI Train Bot ]
4 * No-change rebuild.
5
6 -- Thomas Voß <ci-train-bot@canonical.com> Tue, 05 Jan 2016 13:07:12 +0000
7
1qtubuntu-media (0.8.0+15.04.20160104-0ubuntu1) vivid; urgency=medium8qtubuntu-media (0.8.0+15.04.20160104-0ubuntu1) vivid; urgency=medium
29
3 * Fix removeMedia(start, end) so that it always removes the correct10 * Fix removeMedia(start, end) so that it always removes the correct
@@ -29,44 +36,93 @@
2936
30 -- Jim Hodapp <ci-train-bot@canonical.com> Wed, 18 Nov 2015 16:32:22 +000037 -- Jim Hodapp <ci-train-bot@canonical.com> Wed, 18 Nov 2015 16:32:22 +0000
3138
32qtubuntu-media (0.7.1+15.04.20151023.3-0ubuntu1) vivid; urgency=medium39qtubuntu-media (0.7.1+16.04.20151104.1-0ubuntu1) xenial; urgency=medium
3340
34 [ CI Train Bot ]41 [ Timo Jyrinki ]
35 * New rebuild forced.42 * Port to the new Audio Role API (LP: #1493851) (LP: #1493851)
3643
37 [ Jim Hodapp ]44 -- CI Train Bot <ci-train-bot@canonical.com> Wed, 04 Nov 2015 08:31:35 +0000
38 * Added addTracks support for batch track adding. Improved the45
39 robustness of the QMediaPlaylist integration tests.46qtubuntu-media (0.7.1+15.10.20151020.1-0ubuntu1) wily; urgency=medium
4047
41 -- Jim Hodapp <ci-train-bot@canonical.com> Fri, 23 Oct 2015 16:43:38 +000048 [ Alfonso Sanchez-Beato ]
4249 * Make sure the that the current player instance is controlable by
43qtubuntu-media (0.7.1+15.04.20151014-0ubuntu1) vivid; urgency=medium50 MPRIS controls if the type of player is appropriate for playlist
4451 control. Also, don't add a track to the tracklist when
45 [ Alfonso Sanchez-Beato ]52 AalMediaPlayerService::setMedia() is called. (LP: #1500859)
46 * Make sure the that the current player instance is controlable by53
47 MPRIS controls if the type of player is appropriate for playlist54 [ Jim Hodapp ]
48 control. Also, don't add a track to the tracklist when55 * Make sure the that the current player instance is controlable by
49 AalMediaPlayerService::setMedia() is called. (LP: #1500859)56 MPRIS controls if the type of player is appropriate for playlist
5057 control. Also, don't add a track to the tracklist when
51 [ Jim Hodapp ]58 AalMediaPlayerService::setMedia() is called. (LP: #1500859)
52 * Make sure the that the current player instance is controlable by59
53 MPRIS controls if the type of player is appropriate for playlist60 [ CI Train Bot ]
54 control. Also, don't add a track to the tracklist when61 * No-change rebuild.
55 AalMediaPlayerService::setMedia() is called. (LP: #1500859)62
5663 -- Alfonso Sanchez-Beato <alfonso.sanchez-beato@canonical.com> Tue, 20 Oct 2015 13:10:40 +0000
57 -- CI Train Bot <ci-train-bot@canonical.com> Wed, 14 Oct 2015 20:58:46 +000064
5865qtubuntu-media (0.7.1+15.10.20151019.1-0ubuntu1) wily; urgency=medium
59qtubuntu-media (0.7.1+15.04.20150828-0ubuntu1) vivid; urgency=medium66
6067 [ CI Train Bot ]
61 [ Jim Hodapp ]68 * New rebuild forced.
62 * Bump version for vivid sync69
6370 [ Jim Hodapp ]
64 [ CI Train Bot ]71 * Get rid of the unnecessary dependency on libmediascanner. Update
65 * New rebuild forced.72 mock service interface with changes from media-hub. (LP: #1500859)
6673
67 -- CI Train Bot <ci-train-bot@canonical.com> Fri, 28 Aug 2015 13:52:24 +000074 -- Jim Hodapp <ci-train-bot@canonical.com> Mon, 19 Oct 2015 16:21:01 +0000
6875
69qtubuntu-media (0.7.1+15.04.20150710-0ubuntu1) vivid; urgency=medium76qtubuntu-media (0.7.1+15.10.20150903.1-0ubuntu1) wily; urgency=medium
77
78 [ Alfonso Sanchez-Beato ]
79 * [ Jim Hodapp ] Added background playlist support connecting
80 qtmultimedia with media-hub. added:
81 src/aal/aalmediaplaylistcontrol.cpp
82 src/aal/aalmediaplaylistcontrol.h
83 src/aal/aalmediaplaylistprovider.cpp
84 src/aal/aalmediaplaylistprovider.h src/aal/aalutility.cpp
85 src/aal/aalutility.h src/aal/private/
86 src/aal/private/qmediaplaylistnavigator_p.h
87 src/aal/private/qmediaplaylistprovider_p.h
88 src/aal/qmediaplaylistcontrol_p.h tests/integration/
89 tests/integration/integration.pro tests/integration/testdata/
90 tests/integration/testdata/testfile.mp4
91 tests/integration/testdata/testfile.ogg
92 tests/integration/tst_mediaplaylist.cpp
93 tests/integration/tst_mediaplaylist.h tests/tests.pro tests/unit/
94 tests/unit/player_mock.cpp tests/unit/player_mock.h
95 tests/unit/tst_mediaplaylistcontrol.cpp
96 tests/unit/tst_mediaplaylistcontrol.h renamed: unittests/ => tests/
97 unittests/player.cpp => tests/unit/player.cpp unittests/player.h =>
98 tests/unit/player.h unittests/service.cpp => tests/unit/service.cpp
99 unittests/service.h => tests/unit/service.h
100 unittests/setup_mediascanner.sh => tests/unit/setup_mediascanner.sh
101 unittests/tst_mediaplayerplugin.cpp =>
102 tests/unit/tst_mediaplayerplugin.cpp
103 unittests/tst_mediaplayerplugin.h =>
104 tests/unit/tst_mediaplayerplugin.h
105 unittests/tst_metadatareadercontrol.cpp =>
106 tests/unit/tst_metadatareadercontrol.cpp
107 unittests/tst_metadatareadercontrol.h =>
108 tests/unit/tst_metadatareadercontrol.h unittests/unittests.pro =>
109 tests/unit/unit.pro
110
111 -- CI Train Bot <ci-train-bot@canonical.com> Thu, 03 Sep 2015 08:25:29 +0000
112
113qtubuntu-media (0.7.1+15.10.20150710-0ubuntu2~gcc5.2) wily; urgency=medium
114
115 * No-change test rebuild for g++5 ABI transition
116
117 -- Matthias Klose <doko@ubuntu.com> Thu, 30 Jul 2015 12:09:11 +0200
118
119qtubuntu-media (0.7.1+15.10.20150710-0ubuntu2~gcc5.1) wily; urgency=medium
120
121 * No-change test rebuild for g++5 ABI transition
122
123 -- Steve Langasek <steve.langasek@ubuntu.com> Wed, 22 Jul 2015 23:30:42 +0000
124
125qtubuntu-media (0.7.1+15.10.20150710-0ubuntu1) wily; urgency=medium
70126
71 [ CI Train Bot ]127 [ CI Train Bot ]
72 * New rebuild forced.128 * New rebuild forced.
@@ -77,7 +133,7 @@
77133
78 -- CI Train Bot <ci-train-bot@canonical.com> Fri, 10 Jul 2015 18:12:45 +0000134 -- CI Train Bot <ci-train-bot@canonical.com> Fri, 10 Jul 2015 18:12:45 +0000
79135
80qtubuntu-media (0.7.1+15.04.20150602.3-0ubuntu1) vivid; urgency=medium136qtubuntu-media (0.7.1+15.10.20150602.3-0ubuntu1) wily; urgency=medium
81137
82 [ CI Train Bot ]138 [ CI Train Bot ]
83 * New rebuild forced.139 * New rebuild forced.
@@ -88,7 +144,7 @@
88144
89 -- CI Train Bot <ci-train-bot@canonical.com> Tue, 02 Jun 2015 19:37:22 +0000145 -- CI Train Bot <ci-train-bot@canonical.com> Tue, 02 Jun 2015 19:37:22 +0000
90146
91qtubuntu-media (0.7.1+15.04.20150602.1-0ubuntu1) vivid; urgency=medium147qtubuntu-media (0.7.1+15.10.20150602.1-0ubuntu1) wily; urgency=medium
92148
93 [ CI Train Bot ]149 [ CI Train Bot ]
94 * New rebuild forced.150 * New rebuild forced.
@@ -98,7 +154,7 @@
98154
99 -- CI Train Bot <ci-train-bot@canonical.com> Tue, 02 Jun 2015 16:55:53 +0000155 -- CI Train Bot <ci-train-bot@canonical.com> Tue, 02 Jun 2015 16:55:53 +0000
100156
101qtubuntu-media (0.7.1+15.04.20150527.2-0ubuntu1) vivid; urgency=medium157qtubuntu-media (0.7.1+15.10.20150527.2-0ubuntu1) wily; urgency=medium
102158
103 [ CI Train Bot ]159 [ CI Train Bot ]
104 * New rebuild forced.160 * New rebuild forced.
@@ -110,7 +166,7 @@
110166
111 -- CI Train Bot <ci-train-bot@canonical.com> Wed, 27 May 2015 18:38:32 +0000167 -- CI Train Bot <ci-train-bot@canonical.com> Wed, 27 May 2015 18:38:32 +0000
112168
113qtubuntu-media (0.7.1+15.04.20150522-0ubuntu1) vivid; urgency=medium169qtubuntu-media (0.7.1+15.10.20150522-0ubuntu1) wily; urgency=medium
114170
115 [ Jim Hodapp ]171 [ Jim Hodapp ]
116 * Make sure that stopped and ready (same state for QMediaPlayer) are172 * Make sure that stopped and ready (same state for QMediaPlayer) are
@@ -118,6 +174,17 @@
118174
119 -- CI Train Bot <ci-train-bot@canonical.com> Fri, 22 May 2015 17:36:57 +0000175 -- CI Train Bot <ci-train-bot@canonical.com> Fri, 22 May 2015 17:36:57 +0000
120176
177qtubuntu-media (0.7.1+15.04.20151023.3-0ubuntu1) vivid; urgency=medium
178
179 [ CI Train Bot ]
180 * New rebuild forced.
181
182 [ Jim Hodapp ]
183 * Added addTracks support for batch track adding. Improved the
184 robustness of the QMediaPlaylist integration tests.
185
186 -- Jim Hodapp <ci-train-bot@canonical.com> Fri, 23 Oct 2015 16:43:38 +0000
187
121qtubuntu-media (0.7.1+15.04.20150513.1-0ubuntu1) vivid; urgency=medium188qtubuntu-media (0.7.1+15.04.20150513.1-0ubuntu1) vivid; urgency=medium
122189
123 [ CI Train Bot ]190 [ CI Train Bot ]
124191
=== modified file 'src/aal/aalmediaplayercontrol.cpp'
--- src/aal/aalmediaplayercontrol.cpp 2015-11-04 17:17:50 +0000
+++ src/aal/aalmediaplayercontrol.cpp 2016-01-12 14:48:24 +0000
@@ -61,12 +61,20 @@
61 return m_status;61 return m_status;
62}62}
6363
64#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0)
64QMediaPlayer::AudioRole AalMediaPlayerControl::audioRole() const65QMediaPlayer::AudioRole AalMediaPlayerControl::audioRole() const
66#else
67QAudio::Role AalMediaPlayerControl::audioRole() const
68#endif
65{69{
66 return m_service->audioRole();70 return m_service->audioRole();
67}71}
6872
73#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0)
69void AalMediaPlayerControl::setAudioRole(QMediaPlayer::AudioRole audioRole)74void AalMediaPlayerControl::setAudioRole(QMediaPlayer::AudioRole audioRole)
75#else
76void AalMediaPlayerControl::setAudioRole(QAudio::Role audioRole)
77#endif
70{78{
71 qDebug() << __PRETTY_FUNCTION__;79 qDebug() << __PRETTY_FUNCTION__;
72 m_service->setAudioRole(audioRole);80 m_service->setAudioRole(audioRole);
7381
=== modified file 'src/aal/aalmediaplayercontrol.h'
--- src/aal/aalmediaplayercontrol.h 2015-07-24 18:44:13 +0000
+++ src/aal/aalmediaplayercontrol.h 2016-01-12 14:48:24 +0000
@@ -32,8 +32,13 @@
3232
33 virtual QMediaPlayer::State state() const;33 virtual QMediaPlayer::State state() const;
34 virtual QMediaPlayer::MediaStatus mediaStatus() const;34 virtual QMediaPlayer::MediaStatus mediaStatus() const;
35#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0)
35 virtual QMediaPlayer::AudioRole audioRole() const;36 virtual QMediaPlayer::AudioRole audioRole() const;
36 virtual void setAudioRole(QMediaPlayer::AudioRole audioRole);37 virtual void setAudioRole(QMediaPlayer::AudioRole audioRole);
38#else
39 virtual QAudio::Role audioRole() const;
40 virtual void setAudioRole(QAudio::Role audioRole);
41#endif
37 virtual qint64 duration() const;42 virtual qint64 duration() const;
38 virtual qint64 position() const;43 virtual qint64 position() const;
39 virtual void setPosition(qint64);44 virtual void setPosition(qint64);
4045
=== modified file 'src/aal/aalmediaplayerservice.cpp'
--- src/aal/aalmediaplayerservice.cpp 2015-11-02 14:26:44 +0000
+++ src/aal/aalmediaplayerservice.cpp 2016-01-12 14:48:24 +0000
@@ -228,21 +228,41 @@
228 m_videoOutput->playbackComplete();228 m_videoOutput->playbackComplete();
229}229}
230230
231#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0)
231QMediaPlayer::AudioRole AalMediaPlayerService::audioRole() const232QMediaPlayer::AudioRole AalMediaPlayerService::audioRole() const
233#else
234QAudio::Role AalMediaPlayerService::audioRole() const
235#endif
232{236{
233 if (m_hubPlayerSession == NULL)237 if (m_hubPlayerSession == NULL)
238#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0)
234 return QMediaPlayer::MultimediaRole;239 return QMediaPlayer::MultimediaRole;
240#else
241 return QAudio::VideoRole;
242#endif
235243
236 try {244 try {
245#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0)
237 return static_cast<QMediaPlayer::AudioRole>(m_hubPlayerSession->audio_stream_role().get());246 return static_cast<QMediaPlayer::AudioRole>(m_hubPlayerSession->audio_stream_role().get());
247#else
248 return static_cast<QAudio::Role>(m_hubPlayerSession->audio_stream_role().get());
249#endif
238 }250 }
239 catch (const std::runtime_error &e) {251 catch (const std::runtime_error &e) {
240 qWarning() << "Failed to get audio stream role: " << e.what();252 qWarning() << "Failed to get audio stream role: " << e.what();
253#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0)
241 return QMediaPlayer::MultimediaRole;254 return QMediaPlayer::MultimediaRole;
255#else
256 return QAudio::VideoRole;
257#endif
242 }258 }
243}259}
244260
261#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0)
245void AalMediaPlayerService::setAudioRole(QMediaPlayer::AudioRole audioRole)262void AalMediaPlayerService::setAudioRole(QMediaPlayer::AudioRole audioRole)
263#else
264void AalMediaPlayerService::setAudioRole(QAudio::Role audioRole)
265#endif
246{266{
247 if (m_hubPlayerSession == NULL)267 if (m_hubPlayerSession == NULL)
248 return;268 return;
@@ -756,7 +776,11 @@
756{776{
757 // If this player is a multimedia audioRole, then it should possible to777 // If this player is a multimedia audioRole, then it should possible to
758 // use it for MPRIS control778 // use it for MPRIS control
779#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0)
759 if (audioRole() == QMediaPlayer::MultimediaRole)780 if (audioRole() == QMediaPlayer::MultimediaRole)
781#else
782 if (audioRole() == QAudio::VideoRole || audioRole() == QAudio::MusicRole)
783#endif
760 {784 {
761 qDebug() << "Setting player as current player";785 qDebug() << "Setting player as current player";
762 try {786 try {
763787
=== modified file 'src/aal/aalmediaplayerservice.h'
--- src/aal/aalmediaplayerservice.h 2015-10-09 20:06:40 +0000
+++ src/aal/aalmediaplayerservice.h 2016-01-12 14:48:24 +0000
@@ -74,8 +74,13 @@
74 // Call this before attempting to play the same video a second time (after EOS)74 // Call this before attempting to play the same video a second time (after EOS)
75 void resetVideoSink();75 void resetVideoSink();
7676
77#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0)
77 QMediaPlayer::AudioRole audioRole() const;78 QMediaPlayer::AudioRole audioRole() const;
78 void setAudioRole(QMediaPlayer::AudioRole audioRole);79 void setAudioRole(QMediaPlayer::AudioRole audioRole);
80#else
81 QAudio::Role audioRole() const;
82 void setAudioRole(QAudio::Role audioRole);
83#endif
7984
80 void setMedia(const QUrl &url);85 void setMedia(const QUrl &url);
81 void setMediaPlaylist(const QMediaPlaylist& playlist);86 void setMediaPlaylist(const QMediaPlaylist& playlist);
8287
=== modified file 'src/aal/aalmediaplaylistcontrol.cpp'
--- src/aal/aalmediaplaylistcontrol.cpp 2016-01-04 14:07:05 +0000
+++ src/aal/aalmediaplaylistcontrol.cpp 2016-01-12 14:48:24 +0000
@@ -293,12 +293,33 @@
293 }293 }
294}294}
295295
296void AalMediaPlaylistControl::onRemoveTracks(int start, int end)
297{
298 // If the current track and everything after has been removed
299 // then we need to set the currentIndex to 0 otherwise it is
300 // left at the position it was before removing
301 if (start <= m_currentIndex
302 and m_currentIndex <= end
303 and (end + 1) == m_playlistProvider->mediaCount()
304 and start != 0)
305 {
306 m_currentIndex = 0;
307 setCurrentIndex(0);
308
309 // When repeat is off we have reached the end of playback so stop
310 if (playbackMode() == QMediaPlaylist::Sequential)
311 {
312 qDebug() << "Repeat is off, so stopping playback";
313 m_hubPlayerSession->stop();
314 }
315 }
316}
317
296void AalMediaPlaylistControl::onCurrentIndexChanged()318void AalMediaPlaylistControl::onCurrentIndexChanged()
297{319{
298 int index = aalMediaPlaylistProvider()->indexOfTrack(m_currentId);320 const int index = aalMediaPlaylistProvider()->indexOfTrack(m_currentId);
299
300 if (index != m_currentIndex) {321 if (index != m_currentIndex) {
301 qDebug() << "Index changed to " << index;322 qDebug() << "Index changed to" << index;
302 m_currentIndex = index;323 m_currentIndex = index;
303 Q_EMIT currentIndexChanged(m_currentIndex);324 Q_EMIT currentIndexChanged(m_currentIndex);
304 }325 }
@@ -362,6 +383,9 @@
362383
363 connect(aalMediaPlaylistProvider(), &AalMediaPlaylistProvider::mediaRemoved,384 connect(aalMediaPlaylistProvider(), &AalMediaPlaylistProvider::mediaRemoved,
364 this, &AalMediaPlaylistControl::onMediaRemoved);385 this, &AalMediaPlaylistControl::onMediaRemoved);
386
387 connect(aalMediaPlaylistProvider(), &AalMediaPlaylistProvider::removeTracks,
388 this, &AalMediaPlaylistControl::onRemoveTracks);
365}389}
366390
367void AalMediaPlaylistControl::disconnect_signals()391void AalMediaPlaylistControl::disconnect_signals()
368392
=== modified file 'src/aal/aalmediaplaylistcontrol.h'
--- src/aal/aalmediaplaylistcontrol.h 2015-12-24 15:40:01 +0000
+++ src/aal/aalmediaplaylistcontrol.h 2016-01-12 14:48:24 +0000
@@ -64,6 +64,7 @@
64 void onTrackChanged(const core::ubuntu::media::Track::Id& id);64 void onTrackChanged(const core::ubuntu::media::Track::Id& id);
65 void onStartMoveTrack(int from, int to);65 void onStartMoveTrack(int from, int to);
66 void onMediaRemoved(int start, int end);66 void onMediaRemoved(int start, int end);
67 void onRemoveTracks(int start, int end);
67 void onCurrentIndexChanged();68 void onCurrentIndexChanged();
6869
69private:70private:
7071
=== modified file 'src/aal/aalmediaplaylistprovider.cpp'
--- src/aal/aalmediaplaylistprovider.cpp 2015-12-22 17:57:01 +0000
+++ src/aal/aalmediaplaylistprovider.cpp 2016-01-12 14:48:24 +0000
@@ -22,6 +22,9 @@
2222
23#include <QDebug>23#include <QDebug>
2424
25// Uncomment for more verbose debugging to stdout/err
26//#define VERBOSE_DEBUG
27
25namespace media = core::ubuntu::media;28namespace media = core::ubuntu::media;
2629
27Q_DECLARE_METATYPE(core::ubuntu::media::Track::Id)30Q_DECLARE_METATYPE(core::ubuntu::media::Track::Id)
@@ -145,7 +148,9 @@
145148
146 media::TrackList::ContainerURI uris;149 media::TrackList::ContainerURI uris;
147 for (const auto mediaContent : contentList) {150 for (const auto mediaContent : contentList) {
151#ifdef VERBOSE_DEBUG
148 qDebug() << "Adding track " << AalUtility::unescape(mediaContent).toString();152 qDebug() << "Adding track " << AalUtility::unescape(mediaContent).toString();
153#endif
149 uris.push_back(AalUtility::unescape_str(mediaContent));154 uris.push_back(AalUtility::unescape_str(mediaContent));
150 }155 }
151156
@@ -322,14 +327,25 @@
322327
323bool AalMediaPlaylistProvider::removeMedia(int start, int end)328bool AalMediaPlaylistProvider::removeMedia(int start, int end)
324{329{
325 // It's important that we remove tracks from end to start as removing tracks can330 // If we are removing everything then just use clear()
326 // change the relative index value in track_index_lut relative to the Track::Id331 if (start == 0 and (end + 1) == mediaCount())
327 for (int i=end; i>=start; i--)332 {
328 {333 return clear();
329 if (!removeMedia(i))334 }
335 else
336 {
337 // Signal AalMediaPlaylistControl
338 Q_EMIT removeTracks(start, end);
339
340 // It's important that we remove tracks from end to start as removing tracks can
341 // change the relative index value in track_index_lut relative to the Track::Id
342 for (int i=end; i>=start; i--)
330 {343 {
331 qWarning() << "Failed to remove the full range of tracks requested";344 if (!removeMedia(i))
332 return false;345 {
346 qWarning() << "Failed to remove the full range of tracks requested";
347 return false;
348 }
333 }349 }
334 }350 }
335351
336352
=== modified file 'src/aal/aalmediaplaylistprovider.h'
--- src/aal/aalmediaplaylistprovider.h 2015-11-13 15:48:06 +0000
+++ src/aal/aalmediaplaylistprovider.h 2016-01-12 14:48:24 +0000
@@ -64,6 +64,9 @@
64Q_SIGNALS:64Q_SIGNALS:
65 void startMoveTrack(int from, int to);65 void startMoveTrack(int from, int to);
66 void currentIndexChanged();66 void currentIndexChanged();
67 // Emitted when removing a range of tracks less than mediaCount()
68 // so that AalMediaPlaylistControl can take appropriate action
69 void removeTracks(int start, int end);
6770
68private:71private:
69 void setPlayerSession(const std::shared_ptr<core::ubuntu::media::Player>& playerSession);72 void setPlayerSession(const std::shared_ptr<core::ubuntu::media::Player>& playerSession);
7073
=== modified file 'src/aal/aalutility.cpp'
--- src/aal/aalutility.cpp 2015-06-09 20:53:02 +0000
+++ src/aal/aalutility.cpp 2016-01-12 14:48:24 +0000
@@ -18,17 +18,24 @@
1818
19#include <QDebug>19#include <QDebug>
2020
21// Uncomment for more verbose debugging to stdout/err
22//#define VERBOSE_DEBUG
23
21QUrl AalUtility::unescape(const QMediaContent &media)24QUrl AalUtility::unescape(const QMediaContent &media)
22{25{
23 if (media.isNull())26 if (media.isNull())
24 return QUrl();27 return QUrl();
2528
26 if (media.canonicalUrl().isLocalFile()) {29 if (media.canonicalUrl().isLocalFile()) {
30#ifdef VERBOSE_DEBUG
27 qDebug() << "Local file URI: " << QUrl::fromPercentEncoding(media.canonicalUrl().toString().toUtf8());31 qDebug() << "Local file URI: " << QUrl::fromPercentEncoding(media.canonicalUrl().toString().toUtf8());
32#endif
28 return QUrl::fromPercentEncoding(media.canonicalUrl().toString().toUtf8());33 return QUrl::fromPercentEncoding(media.canonicalUrl().toString().toUtf8());
29 }34 }
30 else {35 else {
36#ifdef VERBOSE_DEBUG
31 qDebug() << "Remote stream URI: " << QUrl::fromEncoded(media.canonicalUrl().toString().toUtf8());37 qDebug() << "Remote stream URI: " << QUrl::fromEncoded(media.canonicalUrl().toString().toUtf8());
38#endif
32 return QUrl::fromEncoded(media.canonicalUrl().toString().toUtf8());39 return QUrl::fromEncoded(media.canonicalUrl().toString().toUtf8());
33 }40 }
34}41}
3542
=== modified file 'tests/unit/service.h'
--- tests/unit/service.h 2015-09-08 19:31:18 +0000
+++ tests/unit/service.h 2016-01-12 14:48:24 +0000
@@ -50,7 +50,7 @@
50 virtual void destroy_session(const std::string& uuid, const Player::Configuration&);50 virtual void destroy_session(const std::string& uuid, const Player::Configuration&);
51 virtual std::shared_ptr<Player> create_fixed_session(const std::string& name, const Player::Configuration&);51 virtual std::shared_ptr<Player> create_fixed_session(const std::string& name, const Player::Configuration&);
52 virtual std::shared_ptr<Player> resume_session(Player::PlayerKey);52 virtual std::shared_ptr<Player> resume_session(Player::PlayerKey);
53 virtual void set_current_player(Player::PlayerKey key);53 virtual void set_current_player(Player::PlayerKey);
54 virtual void pause_other_sessions(Player::PlayerKey);54 virtual void pause_other_sessions(Player::PlayerKey);
55};55};
56}56}

Subscribers

People subscribed via source and target branches

to all changes: