forked from len0rd/rockbox
Patch #6052 - More responsive skip on Archos
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11273 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
74a102dde2
commit
4950b55837
4 changed files with 17 additions and 0 deletions
|
|
@ -242,3 +242,4 @@ Adam Gashlin
|
|||
Robert Kukla
|
||||
David Quesada
|
||||
Jared Stafford
|
||||
Martin Hensel
|
||||
|
|
|
|||
|
|
@ -96,6 +96,7 @@ extern void queue_wait_w_tmo(struct event_queue *q, struct event *ev, int ticks)
|
|||
extern void queue_post(struct event_queue *q, long id, void *data);
|
||||
extern bool queue_empty(const struct event_queue* q);
|
||||
void queue_clear(struct event_queue* q);
|
||||
extern void queue_remove_from_head(struct event_queue *q, long id);
|
||||
extern int queue_broadcast(long id, void *data);
|
||||
|
||||
extern void mutex_init(struct mutex *m);
|
||||
|
|
|
|||
|
|
@ -184,6 +184,19 @@ void queue_clear(struct event_queue* q)
|
|||
set_irq_level(oldlevel);
|
||||
}
|
||||
|
||||
void queue_remove_from_head(struct event_queue *q, long id)
|
||||
{
|
||||
int oldlevel = set_irq_level(HIGHEST_IRQ_LEVEL);
|
||||
|
||||
while (q->read != q->write &&
|
||||
q->events[(q->read) & QUEUE_LENGTH_MASK].id == id)
|
||||
{
|
||||
q->read++;
|
||||
}
|
||||
|
||||
set_irq_level(oldlevel);
|
||||
}
|
||||
|
||||
int queue_broadcast(long id, void *data)
|
||||
{
|
||||
int i;
|
||||
|
|
|
|||
|
|
@ -2760,6 +2760,7 @@ void audio_resume(void)
|
|||
void audio_next(void)
|
||||
{
|
||||
#ifndef SIMULATOR
|
||||
queue_remove_from_head(&mpeg_queue, MPEG_NEED_DATA);
|
||||
queue_post(&mpeg_queue, MPEG_NEXT, NULL);
|
||||
#else /* SIMULATOR */
|
||||
char* file;
|
||||
|
|
@ -2788,6 +2789,7 @@ void audio_next(void)
|
|||
void audio_prev(void)
|
||||
{
|
||||
#ifndef SIMULATOR
|
||||
queue_remove_from_head(&mpeg_queue, MPEG_NEED_DATA);
|
||||
queue_post(&mpeg_queue, MPEG_PREV, NULL);
|
||||
#else /* SIMULATOR */
|
||||
char* file;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue