2019-05-27 08:55:05 +02:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
2005-04-16 15:20:36 -07:00
/*
* ALSA sequencer Priority Queue
* Copyright ( c ) 1998 by Frank van de Pol < fvdpol @ coil . demon . nl >
*/
# ifndef __SND_SEQ_PRIOQ_H
# define __SND_SEQ_PRIOQ_H
# include "seq_memory.h"
/* === PRIOQ === */
2005-11-17 14:04:02 +01:00
struct snd_seq_prioq {
struct snd_seq_event_cell * head ; /* pointer to head of prioq */
struct snd_seq_event_cell * tail ; /* pointer to tail of prioq */
2005-04-16 15:20:36 -07:00
int cells ;
spinlock_t lock ;
2005-11-17 14:04:02 +01:00
} ;
2005-04-16 15:20:36 -07:00
/* create new prioq (constructor) */
2005-11-17 14:04:02 +01:00
struct snd_seq_prioq * snd_seq_prioq_new ( void ) ;
2005-04-16 15:20:36 -07:00
/* delete prioq (destructor) */
2005-11-17 14:04:02 +01:00
void snd_seq_prioq_delete ( struct snd_seq_prioq * * fifo ) ;
2005-04-16 15:20:36 -07:00
/* enqueue cell to prioq */
2005-11-17 14:04:02 +01:00
int snd_seq_prioq_cell_in ( struct snd_seq_prioq * f , struct snd_seq_event_cell * cell ) ;
2005-04-16 15:20:36 -07:00
/* dequeue cell from prioq */
2018-03-09 21:58:28 +01:00
struct snd_seq_event_cell * snd_seq_prioq_cell_out ( struct snd_seq_prioq * f ,
void * current_time ) ;
2005-04-16 15:20:36 -07:00
/* return number of events available in prioq */
2005-11-17 14:04:02 +01:00
int snd_seq_prioq_avail ( struct snd_seq_prioq * f ) ;
2005-04-16 15:20:36 -07:00
/* client left queue */
2005-11-17 14:04:02 +01:00
void snd_seq_prioq_leave ( struct snd_seq_prioq * f , int client , int timestamp ) ;
2005-04-16 15:20:36 -07:00
/* Remove events */
2005-11-17 14:04:02 +01:00
void snd_seq_prioq_remove_events ( struct snd_seq_prioq * f , int client ,
struct snd_seq_remove_events * info ) ;
2005-04-16 15:20:36 -07:00
# endif