## AgsAudioUnitDevin

AgsAudioUnitDevin — Output to soundcard

## Stability Level

Stable, unless otherwise indicated

## Functions

#define | AGS_AUDIO_UNIT_DEVIN_GET_OBJ_MUTEX()
GQuark | ags_audio_unit_devin_error_quark ()
gboolean | ags_audio_unit_devin_test_flags ()
void | ags_audio_unit_devin_set_flags ()
void | ags_audio_unit_devin_unset_flags ()
void | ags_audio_unit_devin_switch_buffer_flag ()
void | ags_audio_unit_devin_realloc_buffer ()
AgsAudioUnitDevin * | ags_audio_unit_devin_new ()

## Types and Values

#define | AGS_AUDIO_UNIT_DEVIN_DEFAULT_APP_BUFFER_SIZE
enum | AgsAudioUnitDevinFlags
enum | AgsAudioUnitDevinAppBufferMode
enum | AgsAudioUnitDevinSyncFlags
#define | AGS_AUDIO_UNIT_DEVIN_ERROR
enum | AgsAudioUnitDevinError

## Includes

    #include <ags/audio/audio-unit/ags_audio_unit_devin.h>

## Description

AgsAudioUnitDevin represents a soundcard and supports output.

## Functions

### AGS_AUDIO_UNIT_DEVIN_GET_OBJ_MUTEX()

    #define AGS_AUDIO_UNIT_DEVIN_GET_OBJ_MUTEX(obj) (&(((AgsAudioUnitDevin *) obj)->obj_mutex))

### ags_audio_unit_devin_error_quark ()

    GQuark
    ags_audio_unit_devin_error_quark ();

### ags_audio_unit_devin_test_flags ()

    gboolean
    ags_audio_unit_devin_test_flags (AgsAudioUnitDevin *audio_unit_devin,
                                     guint flags);

Test `flags` to be set on `audio_unit_devin` .

#### Parameters

audio_unit_devin | the AgsAudioUnitDevin |
flags | the flags |

#### Returns

`TRUE` if flags are set, else `FALSE`

Since: 3.0.0

### ags_audio_unit_devin_set_flags ()

    void
    ags_audio_unit_devin_set_flags (AgsAudioUnitDevin *audio_unit_devin,
                                    guint flags);

Enable a feature of `audio_unit_devin` .

#### Parameters

audio_unit_devin | the AgsAudioUnitDevin |
flags | see AgsAudioUnitDevinFlags |

Since: 3.0.0

### ags_audio_unit_devin_unset_flags ()

    void
    ags_audio_unit_devin_unset_flags (AgsAudioUnitDevin *audio_unit_devin,
                                      guint flags);

Disable a feature of `audio_unit_devin` .

#### Parameters

audio_unit_devin | the AgsAudioUnitDevin |
flags | see AgsAudioUnitDevinFlags |

Since: 3.0.0

### ags_audio_unit_devin_switch_buffer_flag ()

    void
    ags_audio_unit_devin_switch_buffer_flag
                                   (AgsAudioUnitDevin *audio_unit_devin);

The buffer flag indicates the currently played buffer.

#### Parameters

audio_unit_devin | an AgsAudioUnitDevin |

Since: 3.0.0

### ags_audio_unit_devin_realloc_buffer ()

    void
    ags_audio_unit_devin_realloc_buffer (AgsAudioUnitDevin *audio_unit_devin);

Reallocate the internal audio buffer.

#### Parameters

audio_unit_devin | the AgsAudioUnitDevin |

Since: 3.0.0

### ags_audio_unit_devin_new ()

    AgsAudioUnitDevin *
    ags_audio_unit_devin_new ();

Creates a new instance of AgsAudioUnitDevin.

#### Returns

a new AgsAudioUnitDevin

Since: 3.0.0

## Types and Values

### AGS_AUDIO_UNIT_DEVIN_DEFAULT_APP_BUFFER_SIZE

    #define AGS_AUDIO_UNIT_DEVIN_DEFAULT_APP_BUFFER_SIZE (8)

### enum AgsAudioUnitDevinFlags

Enum values to control the behavior or indicate internal state of AgsAudioUnitDevin by enable/disable as flags.

#### Members

AGS_AUDIO_UNIT_DEVIN_INITIALIZED | the soundcard was initialized |
AGS_AUDIO_UNIT_DEVIN_START_RECORD | capture starting |
AGS_AUDIO_UNIT_DEVIN_RECORD | do capture |
AGS_AUDIO_UNIT_DEVIN_SHUTDOWN | stop capture |
AGS_AUDIO_UNIT_DEVIN_NONBLOCKING | do non-blocking calls |
AGS_AUDIO_UNIT_DEVIN_ATTACK_FIRST | use first attack, instead of second one |

### enum AgsAudioUnitDevinAppBufferMode

Enum values to indicate internal state of AgsAudioUnitDevin application buffer by setting mode.

#### Members

AGS_AUDIO_UNIT_DEVIN_APP_BUFFER_0 | ring-buffer 0 |
AGS_AUDIO_UNIT_DEVIN_APP_BUFFER_1 | ring-buffer 1 |
AGS_AUDIO_UNIT_DEVIN_APP_BUFFER_2 | ring-buffer 2 |
AGS_AUDIO_UNIT_DEVIN_APP_BUFFER_3 | ring-buffer 3 |
AGS_AUDIO_UNIT_DEVIN_APP_BUFFER_4 | ring-buffer 4 |
AGS_AUDIO_UNIT_DEVIN_APP_BUFFER_5 | ring-buffer 5 |
AGS_AUDIO_UNIT_DEVIN_APP_BUFFER_6 | ring-buffer 6 |
AGS_AUDIO_UNIT_DEVIN_APP_BUFFER_7 | ring-buffer 7 |

### enum AgsAudioUnitDevinSyncFlags

Enum values to control the synchronization between soundcard and client.

#### Members

AGS_AUDIO_UNIT_DEVIN_PASS_THROUGH | do not sync |
AGS_AUDIO_UNIT_DEVIN_INITIAL_CALLBACK | initial callback |
AGS_AUDIO_UNIT_DEVIN_CALLBACK_WAIT | sync wait, soundcard conditional lock |
AGS_AUDIO_UNIT_DEVIN_CALLBACK_DONE | sync done, soundcard conditional lock |
AGS_AUDIO_UNIT_DEVIN_CALLBACK_FINISH_WAIT | sync wait, client conditional lock |
AGS_AUDIO_UNIT_DEVIN_CALLBACK_FINISH_DONE | sync done, client conditional lock |

### AGS_AUDIO_UNIT_DEVIN_ERROR

    #define AGS_AUDIO_UNIT_DEVIN_ERROR (ags_audio_unit_devin_error_quark())

### enum AgsAudioUnitDevinError

#### Members

AGS_AUDIO_UNIT_DEVIN_ERROR_LOCKED_SOUNDCARD |  |