some modernizations

This commit is contained in:
Lennart Poettering 2008-06-27 19:15:32 +02:00
parent 232c9558ff
commit a087014969
2 changed files with 13 additions and 9 deletions

View file

@ -1,7 +1,7 @@
/*** /***
This file is part of PulseAudio. This file is part of PulseAudio.
Copyright 2004-2006 Lennart Poettering Copyright 2004-2008 Lennart Poettering
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
@ -52,13 +52,13 @@ pa_queue* pa_queue_new(void) {
return q; return q;
} }
void pa_queue_free(pa_queue* q, void (*destroy)(void *p, void *userdata), void *userdata) { void pa_queue_free(pa_queue* q, pa_free2_cb_t free_func, void *userdata) {
void *data; void *data;
pa_assert(q); pa_assert(q);
while ((data = pa_queue_pop(q))) while ((data = pa_queue_pop(q)))
if (destroy) if (free_func)
destroy(data, userdata); free_func(data, userdata);
pa_assert(!q->front); pa_assert(!q->front);
pa_assert(!q->back); pa_assert(!q->back);
@ -94,6 +94,7 @@ void pa_queue_push(pa_queue *q, void *p) {
void* pa_queue_pop(pa_queue *q) { void* pa_queue_pop(pa_queue *q) {
void *p; void *p;
struct queue_entry *e; struct queue_entry *e;
pa_assert(q); pa_assert(q);
if (!(e = q->front)) if (!(e = q->front))

View file

@ -1,10 +1,10 @@
#ifndef fooqueuehfoo #ifndef foopulsecorequeuehfoo
#define fooqueuehfoo #define foopulsecorequeuehfoo
/*** /***
This file is part of PulseAudio. This file is part of PulseAudio.
Copyright 2004-2006 Lennart Poettering Copyright 2004-2008 Lennart Poettering
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
@ -22,6 +22,8 @@
USA. USA.
***/ ***/
#include <pulsecore/idxset.h>
typedef struct pa_queue pa_queue; typedef struct pa_queue pa_queue;
/* A simple implementation of the abstract data type queue. Stores /* A simple implementation of the abstract data type queue. Stores
@ -29,8 +31,9 @@ typedef struct pa_queue pa_queue;
pa_queue* pa_queue_new(void); pa_queue* pa_queue_new(void);
/* Free the queue and run the specified callback function for every remaining entry. The callback function may be NULL. */ /* Free the queue and run the specified callback function for every
void pa_queue_free(pa_queue* q, void (*destroy)(void *p, void *userdata), void *userdata); * remaining entry. The callback function may be NULL. */
void pa_queue_free(pa_queue* q, pa_free2_cb_t free_func, void *userdata);
void pa_queue_push(pa_queue *q, void *p); void pa_queue_push(pa_queue *q, void *p);
void* pa_queue_pop(pa_queue *q); void* pa_queue_pop(pa_queue *q);