Playdar Collection: Major issue solved, minor issue question (track length changes)

Andy Coder andrew.coder at gmail.com
Sun Jul 18 20:08:11 CEST 2010


Hey folks!

So, I did a major overhaul of the Playdar components and the
PlaydarCollection/QueryMaker/Query/Controller works as expected, as of
my last commit.

The new issue:  When a PlaydarTrack is played, something's changing
the track length to 0, even though it was set when the track was
created, (Playdar provides length in seconds, Queries convert to
milliseconds and pass it to the track).  I've attached what seems to
be the relevant --debug output, and would appreciate any help on this.
 I suppose it might just be because the playableUrl for any
PlaydarTrack is an http request?

While it's functional with the current behavior, I think it's at odds
with a positive user experience to lose the progress bar and other
features when playing PlaydarTracks, so I'd like to do something about
it.

 - Andy Coder
-------------- next part --------------
amarok:   BEGIN: void Playlist::Actions::play(int) 
amarok:     BEGIN: void Playlist::Actions::play(quint64, bool) 
amarok:       [Playlist::Actions] Manually advancing to the next track, calculating previous statistics for track here.  Finished % is:  inf 
amarok:       BEGIN: void EngineController::play(const Meta::TrackPtr&, uint) 
amarok:         [EngineController] Just a normal, boring track... :-P 
amarok:         BEGIN: void EngineController::playUrl(const KUrl&, uint) 
amarok:           [EngineController] URL:  "http://localhost:60210/sid/DCE87E61-1E3B-42AD-A27A-BABB0E43A42F" 
amarok:           [EngineController] offset:  0 
amarok:           BEGIN: void EngineController::slotStateChanged(Phonon::State, Phonon::State) 
amarok:             BEGIN: void Engine::EngineSubject::stateChangedNotify(Phonon::State, Phonon::State) 
amarok:                State changed, oldState: 4 -> newState: 1 
amarok:             END__: void Engine::EngineSubject::stateChangedNotify(Phonon::State, Phonon::State) - Took 0.00076s 
amarok:           END__: void EngineController::slotStateChanged(Phonon::State, Phonon::State) - Took 0.00088s 
amarok:           BEGIN: void EngineController::slotNewTrackPlaying(const Phonon::MediaSource&) 
amarok:             [EngineController] Using gain of 0 with relative peak of 0 
amarok:             BEGIN: virtual void ProgressWidget::engineNewTrackPlaying() 
amarok:               BEGIN: virtual void ProgressWidget::engineTrackLengthChanged(qint64) 
amarok:                  new length:  0 
amarok:                  slider enabled! 
amarok:                 BEGIN: void ProgressWidget::redrawBookmarks(const QString*) 
amarok:                   BEGIN: void Amarok::TimeSlider::clearTriangles() 
amarok:                      number of triangles:  0 
amarok:                      deleted them all... 
amarok:                   END__: void Amarok::TimeSlider::clearTriangles() - Took 0.00012s 
amarok:                 END__: void ProgressWidget::redrawBookmarks(const QString*) - Took 0.00023s 
amarok:               END__: virtual void ProgressWidget::engineTrackLengthChanged(qint64) - Took 0.00046s 
amarok:             END__: virtual void ProgressWidget::engineNewTrackPlaying() - Took 0.00063s 
amarok:             BEGIN: virtual void TimecodeObserver::engineNewTrackPlaying() 
amarok:             END__: virtual void TimecodeObserver::engineNewTrackPlaying() - Took 7.8e-05s 
amarok:             BEGIN: virtual void Amarok::KNotificationBackend::engineNewTrackPlaying() 
amarok:             END__: virtual void Amarok::KNotificationBackend::engineNewTrackPlaying() - Took 6.7e-05s 
amarok:             BEGIN: virtual void Playlist::Actions::engineNewTrackPlaying() 
amarok:               BEGIN: void StatusBar::updateTotalPlaylistLength() 
amarok:               END__: void StatusBar::updateTotalPlaylistLength() - Took 0.00021s 
amarok:               BEGIN: void Playlist::PrettyListView::slotPlaylistActiveTrackChanged() 
amarok:                 BEGIN: void Playlist::PrettyListView::scrollToActiveTrack() 
amarok:                   BEGIN: bool Playlist::GroupingProxy::shouldBeGrouped(Meta::TrackPtr, Meta::TrackPtr) 
amarok:                     [Playlist::GroupingProxy] 0 
amarok:                   END__: bool Playlist::GroupingProxy::shouldBeGrouped(Meta::TrackPtr, Meta::TrackPtr) - Took 0.00013s 
amarok:                   BEGIN: bool Playlist::GroupingProxy::shouldBeGrouped(Meta::TrackPtr, Meta::TrackPtr) 
amarok:                     [Playlist::GroupingProxy] 0 
amarok:                   END__: bool Playlist::GroupingProxy::shouldBeGrouped(Meta::TrackPtr, Meta::TrackPtr) - Took 0.00012s 
amarok:                   BEGIN: bool Playlist::GroupingProxy::shouldBeGrouped(Meta::TrackPtr, Meta::TrackPtr) 
amarok:                     [Playlist::GroupingProxy] 0 
amarok:                   END__: bool Playlist::GroupingProxy::shouldBeGrouped(Meta::TrackPtr, Meta::TrackPtr) - Took 0.00013s 
amarok:                   BEGIN: bool Playlist::GroupingProxy::shouldBeGrouped(Meta::TrackPtr, Meta::TrackPtr) 
amarok:                     [Playlist::GroupingProxy] 0 
amarok:                   END__: bool Playlist::GroupingProxy::shouldBeGrouped(Meta::TrackPtr, Meta::TrackPtr) - Took 0.00013s 
amarok:                 END__: void Playlist::PrettyListView::scrollToActiveTrack() - Took 0.00091s 
amarok:               END__: void Playlist::PrettyListView::slotPlaylistActiveTrackChanged() - Took 0.0011s 
amarok:             END__: virtual void Playlist::Actions::engineNewTrackPlaying() - Took 0.0016s 
amarok:             BEGIN: virtual void Amarok::OSD::engineNewTrackPlaying() 
amarok:               BEGIN: void OSDWidget::show(const QString&, QImage) 
amarok:               END__: void OSDWidget::show(const QString&, QImage) - Took 0.017s 
amarok:             END__: virtual void Amarok::OSD::engineNewTrackPlaying() - Took 0.15s 
amarok:           END__: void EngineController::slotNewTrackPlaying(const Phonon::MediaSource&) - Took 0.15s 
amarok:           BEGIN: void EngineController::slotStateChanged(Phonon::State, Phonon::State) 
amarok:             BEGIN: void Engine::EngineSubject::stateChangedNotify(Phonon::State, Phonon::State) 
amarok:                State changed, oldState: 1 -> newState: 0 
amarok:             END__: void Engine::EngineSubject::stateChangedNotify(Phonon::State, Phonon::State) - Took 0.0012s 
amarok:           END__: void EngineController::slotStateChanged(Phonon::State, Phonon::State) - Took 0.0014s 
amarok:           BEGIN: void EngineController::slotTrackLengthChanged(qint64) 
amarok:             BEGIN: void MainToolbar::updateBookmarks(const QString*) 
amarok:               BEGIN: void Amarok::TimeSlider::clearTriangles() 
amarok:                  number of triangles:  0 
amarok:                  deleted them all... 
amarok:               END__: void Amarok::TimeSlider::clearTriangles() - Took 0.00013s 
amarok:             END__: void MainToolbar::updateBookmarks(const QString*) - Took 0.00022s 
amarok:             BEGIN: virtual void ProgressWidget::engineTrackLengthChanged(qint64) 
amarok:                new length:  -1 
amarok:                slider enabled! 
amarok:               BEGIN: void ProgressWidget::redrawBookmarks(const QString*) 
amarok:                 BEGIN: void Amarok::TimeSlider::clearTriangles() 
amarok:                    number of triangles:  0 
amarok:                    deleted them all... 
amarok:                 END__: void Amarok::TimeSlider::clearTriangles() - Took 0.00013s 
amarok:               END__: void ProgressWidget::redrawBookmarks(const QString*) - Took 0.00024s 
amarok:             END__: virtual void ProgressWidget::engineTrackLengthChanged(qint64) - Took 0.00044s 
amarok:           END__: void EngineController::slotTrackLengthChanged(qint64) - Took 0.00082s 
amarok:           [EngineController] track pos after play:  0 
amarok:         END__: void EngineController::playUrl(const KUrl&, uint) - Took 0.16s 
amarok:       END__: void EngineController::play(const Meta::TrackPtr&, uint) - Took 0.16s 
amarok:     END__: void Playlist::Actions::play(quint64, bool) - Took 0.16s 
amarok:   END__: void Playlist::Actions::play(int) - Took 0.16s 


More information about the Amarok-devel mailing list