---
name: "AuSoundRecordToFileN"
section: "3nas"
platform: "linux"
package: "libaudio-dev"
version: "1.9.4-9"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/AuSoundRecordToFileN"
---

# AuSoundRecordToFileN(3nas)

## Name

**AuSoundRecordToFileN** -

## Synopsis

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

**AuEventHandlerRec** \***AuSoundRecordToFileN**(*server*, *filename*, *source*, *gain*, *num\_samples*, *callback*, *callback\_data*, *mode*, *file\_format*, *comment*, *rate*, *data\_format*, *flow*, *volume\_mult\_elem*, *status*)\
\
     **AuServer** \**server*;\
\
     char \**filename*;\
\
     **AuDeviceID** *source*;\
\
     **AuFixedPoint** *gain*;\
\
     **AuUint32** *num\_samples*;\
\
     void (\**callback*)(**AuServer** \*, **AuEventHandlerRec** \*, **AuEvent** \*, **AuPointer**);\
\
     **AuPointer** *callback\_data*;\
\
     int *mode*;\
\
     int *file\_format*;\
\
     char \* *comment*;\
\
     **AuUint32** *rate*;\
\
     int *data\_format*;\
\
     **AuFlowID** \**flow*;\
\
     int \**volume\_mult\_elem*;\
\
     **AuStatus** \**status*;

## Arguments

- *server*

  Specifies the connection to the audio server.

- *filename*

  Specifies the name of the file to record to.

- *source*

  Specifies the input device to record from.

- *gain*

  Specifies the gain for the input device.

- *num\_samples*

  Specifies the number of samples to record. Use **AuUnlimitedSamples** to record an unlimited number of samples.

- *callback*

  Specifies the procedure to be called for additional event processing.

- *callback\_data*

  Specifies any additional arguments to be passed to callback.

- *mode*

  Specifies the line mode for the input device. Currently the following line modes are defined: **AuDeviceInputModeNone**, **AuDeviceInputModeLineIn**, **AuDeviceInputModeMicrophone**.

- *file\_format*

  Specifies the file format. Currently, the following file formats are supported: **SoundFileFormatSnd**, **SoundFileFormatVoc**, **SoundFileFormatWave**, **SoundFileFormatAiff**, **SoundFileFormatSvx**.

- *comment*

  Specifies a comment to embedded in the file.

- *rate*

  Specifies the sample rate to record at.

- *data\_format*

  Specifies the data format. Currently, the following data formats are defined: **AuFormatULAW8**, **AuFormatLinearUnsigned8**, **AuFormatLinearSigned8**, **AuFormatLinearSigned16MSB**, **AuFormatLinearUnsigned16MSB**, **AuFormatSignedLinear16LSB**, and **AuFormatLinearUnsigned16LSB**.

- *flow*

  If non-NULL, returns the flow ID.

- *volume\_mult\_elem*

  Accord to the comment in the source, not implemented.

- *status*

  If non-NULL, flush the output buffer and return the status from the server.

## Description

**AuSoundRecordToFileN** creates a flow to record from *source* into *filename* and returns a pointer to the event handler created or NULL if there was an error.

## Errors

**AuBadDevice**.

## See Also

**AuSoundRecord**, **AuSoundRecordToBucket**, **AuSoundRecordToData**, **AuSoundRecordToFile**.

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