4 This file is part of polypaudio.
6 polypaudio is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published
8 by the Free Software Foundation; either version 2 of the License,
9 or (at your option) any later version.
11 polypaudio is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with polypaudio; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
32 struct queue_entry *next;
37 struct queue_entry *front, *back;
41 struct pa_queue* pa_queue_new(void) {
42 struct pa_queue *q = malloc(sizeof(struct pa_queue));
44 q->front = q->back = NULL;
49 void pa_queue_free(struct pa_queue* q, void (*destroy)(void *p, void *userdata), void *userdata) {
50 struct queue_entry *e;
55 struct queue_entry *n = e->next;
58 destroy(e->data, userdata);
67 void pa_queue_push(struct pa_queue *q, void *p) {
68 struct queue_entry *e;
70 e = malloc(sizeof(struct queue_entry));
86 void* pa_queue_pop(struct pa_queue *q) {
88 struct queue_entry *e;
106 int pa_queue_is_empty(struct pa_queue *q) {
108 return q->length == 0;