extragear/multimedia/amarok/src

Maximilian Kossick maximilian.kossick at googlemail.com
Tue Dec 16 11:53:53 CET 2008


On Tue, Dec 16, 2008 at 10:05 AM, Mark Kretschmann <kretschmann at kde.org> wrote:
> On Tue, Dec 16, 2008 at 9:21 AM, Maximilian Kossick
> <maximilian.kossick at googlemail.com> wrote:
>> On Mon, Dec 15, 2008 at 6:35 PM, Mark Kretschmann <kretschmann at kde.org> wrote:
>>> On Mon, Dec 15, 2008 at 5:10 PM, Dan Meltzer
>>> <parallelgrapefruit at gmail.com> wrote:
>>>> On Mon, Dec 15, 2008 at 4:06 AM, Mark Kretschmann <kretschmann at kde.org> wrote:
>>>>> SVN commit 897071 by markey:
>>>>>
>>>>> When reaching the end of the playlist, make Amarok actually show that
>>>>> playback has stopped. Until now it happily continued to display "Playing
>>>>> Foo by Bar.."
>>>>>
>>>>> As usual with all changes to EngineController, this patch could have
>>>>> subtle side effects, so please keep testing extensively.
>>>>
>>>> Without poking my head into EngineController.cpp ... Won't this change
>>>> prevent the last tracks statistics from updating? I'm not sure how
>>>> this change fixes the issue....
>>>
>>> This remains to be tested. The problem was that
>>> "m_currentTrack->finishedPlaying( 1.0 )" initiated a long chain of
>>> things it shouldn't have been doing.
>>
>> This is not correct. finishedPlaying updates the tracks's metadata,
>> and therefore requires it to notify the observers. The problem is
>> probably in EngineController itself, in particular these rows:
>>
>> emit trackFinished();
>> m_currentTrack->finishedPlaying( 1.0 );
>> m_currentTrack = 0;
>>
>> I think the correct fix is to move emit trackFinished() after
>> m_currentTrack. Then anything that updates the GUI to show the current
>> track will try to retrieve the current track, which is 0, which means
>> that Amarok isn't playing anything at the moment.
>
> Doesn't work. Same results as before.
>
> Either I understood you wrong, or the problem is elsewhere. Maybe you
> can make a patch?

No, sorry. But my guess is that the statusbar should either connect to
EngineCOntroller's finished signal, or unsubscribe from the current
track when it receives the Phonon:Stopped state. I guess
StatusBar::engineStateChanged is called before
StatusBar::metadtaChanged (unsurprisingly)


> --
> Mark Kretschmann
> Amarok Developer
> www.kde.org - amarok.kde.org
>


More information about the Amarok-devel mailing list