Rockbox

  • Status Closed
  • Percent Complete
    100%
  • Task Type Bugs
  • Category User Interface
  • Assigned To No-one
  • Operating System
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by Anonymous Submitter - 2003-10-22
Last edited by bagder - 2003-12-05

FS#1754 - Pause causes continuous disk access

Studio 10 w/CVS 20031020.
When I pause a track, the disk access light flickers very
short on-pulses about 4 times per second and disk
continues to spin. This continues until play is resumed
or track is stopped.
Doesn’t happen w/CVS 20031013.

-Dan
shprechr@warwick.net

Closed by  bagder
2003-12-05 09:21
Reason for closing:  Fixed
Anonymous Submitter commented on 2003-10-23 20:05

Looks like the problem is in wps.c.

“paused = mpeg_status() & MPEG_STATUS_PAUSE;”

If paused is a bool, this won’t work!

I’m not set up to fix this myself.

Project Manager
zagor commented on 2003-10-23 20:42

Of course it works with a bool. Either the value is 0 (false), or it’s !0
(true).

Pause works flawlessly, without disk access, for me.

Can anyone else repeat this bug?

Anonymous Submitter commented on 2003-10-23 23:14

Linus fixed it!
Thanks guys…

-Dan
shprechr@warwick.net

Thanks Linus,

Although this bug was introduced when my “Car Ignition Auto
Stop function” patch was recently committed, I must point
out that my code worked correctly in the patch as submitted,
but this section of code was “changed and/or optimized”
from what I submitted in my patch when it was turned over
into the CVS, and thus the bug was induced.

BTW, the problem wasn’t as stated below because of the
assignment:

"paused = mpeg_status() & MPEG_STATUS_PAUSE;"

…the problem was the previous line:

" if (paused != (mpeg_status() & MPEG_STATUS_PAUSE))"

…because the right hand side of the compare equals 2 when
we are in pause mode, and the bool variable “paused” on the
left hand side equals 1 when we are in pause mode.

Craig

P.S. to my previous comment.

Although the statement “paused = mpeg_status() &
MPEG_STATUS_PAUSE;” will always yield 0 or 1 when compiled
for the Archos target, on the simulator such coding could
cause problems because in uisimulator/win32/stdbool.h we have:

typedef unsigned int bool;

Now the “bool” variable “paused” can have a value of 2, and
someone might assume elsewhere that it is always 1 or 0.

Craig

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing