---
name: "AuScanEvents"
section: "3x"
platform: "linux"
package: "nas"
version: "1.2p5-3"
release: "Debian 2.0 (Hamm)"
platforms: ["linux"]
url: "https://new.carta.tech/AuScanEvents/3x"
---

# AuScanEvents(3x)

return the first event that satisfies the predicate

## Name

**AuScanEvents** - return the first event that satisfies the predicate

## Synopsis

\#include \<audio/audiolib.h\>

**AuBool** **AuScanEvents**(*server*, *mode*, *dequeue*, *predicate*, *arg*, *event*)\
\
     **AuServer** \**server*;\
\
     int *mode*;\
\
     **AuBool** *dequeue*;\
\
     **AuBool** (\**predicate*)(**AuServer** \*,**AuEvent** \*, **AuPointer**);\
\
     **AuPointer** *arg*;\
\
     **AuEvent** \**event*; /\* **RETURN** \*/

## Arguments

- *server*

  Specifies the connection to the audio server.

- *mode*

  Specifies how far to look for a match. This should be one of these constants: **AuEventsQueuedAlready**, **AuEventsQueuedAfterReading**, or **AuEventsQueuedAfterFlush**.

- *dequeue*

  Specifies if a matching event is found, should it be removed from the queue.

- *predicate*

  Specifies the procedure that is called to determine if an event matches the criteria.

- *arg*

  Specifies any additional arguments to be passed to the predicate procedure.

- *event*

  Returns the matching event if found.

## Description

**AuScanEvents** scans the event queue looking for the first event that satisfies the caller-supplied predicate. If *mode* is **AuEventsQueuedAlready**, **AuScanEvents** only checks for events already in the queue. If *mode* is **AuEventsQueuedAfterReading**, and a matching event isn't found already in the queue, **AuScanEvents** attempts to read more events out of the application's connection. If *mode* is **AuEventsQueuedAfterFlush** and a matching event isn't already in the queue or isn't waiting to be read, **AuScanEvents** flushes the output queue and attempts to read more events out of the application's connection. If *dequeue* is **AuTrue**, and a matching event is found, it is removed from the queue. The predicate procedure is called with the arguments *server*, *event*, and *arg* and should return **AuTrue** to indicate a match.

## See Also

**AuEventsQueued**, **AuScanForTypedEvent**, **AuNextEvent**.

audiolib - **Network Audio System** C Language Interface
