## AgsAudioLoop

AgsAudioLoop — audio loop

## Stability Level

Stable, unless otherwise indicated

## Functions

gboolean | ags_audio_loop_test_flags ()
void | ags_audio_loop_set_flags ()
void | ags_audio_loop_unset_flags ()
void | ags_audio_loop_add_audio ()
void | ags_audio_loop_remove_audio ()
void | ags_audio_loop_add_channel ()
void | ags_audio_loop_remove_channel ()
gboolean | ags_audio_loop_get_do_fx_staging ()
void | ags_audio_loop_set_do_fx_staging ()
guint * | ags_audio_loop_get_staging_program ()
void | ags_audio_loop_set_staging_program ()
AgsAudioLoop * | ags_audio_loop_new ()

## Properties

gpointer | play-audio | Write
gpointer | play-channel | Write

## Types and Values

#define | AGS_AUDIO_LOOP_DEFAULT_JIFFIE
enum | AgsAudioLoopFlags

## Object Hierarchy

        GObject
        ╰── AgsThread
            ╰── AgsAudioLoop

## Includes

    #include <ags/audio/thread/ags_audio_loop.h>

## Description

The AgsAudioLoop is suitable as AgsMainLoop and does audio processing.

## Functions

### ags_audio_loop_test_flags ()

    gboolean
    ags_audio_loop_test_flags (AgsAudioLoop *audio_loop,
                               AgsAudioLoopFlags flags);

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

#### Parameters

audio_loop | the AgsAudioLoop |
flags | the flags |

#### Returns

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

Since: 3.0.0

### ags_audio_loop_set_flags ()

    void
    ags_audio_loop_set_flags (AgsAudioLoop *audio_loop,
                              AgsAudioLoopFlags flags);

Set flags.

#### Parameters

audio_loop | the AgsAudioLoop |
flags | the flags |

Since: 3.0.0

### ags_audio_loop_unset_flags ()

    void
    ags_audio_loop_unset_flags (AgsAudioLoop *audio_loop,
                                AgsAudioLoopFlags flags);

Unset flags.

#### Parameters

audio_loop | the AgsAudioLoop |
flags | the flags |

Since: 3.0.0

### ags_audio_loop_add_audio ()

    void
    ags_audio_loop_add_audio (AgsAudioLoop *audio_loop,
                              GObject *audio);

Add audio for playback.

#### Parameters

audio_loop | the AgsAudioLoop |
audio | an AgsAudio |

Since: 3.0.0

### ags_audio_loop_remove_audio ()

    void
    ags_audio_loop_remove_audio (AgsAudioLoop *audio_loop,
                                 GObject *audio);

Remove audio of playback.

#### Parameters

audio_loop | the AgsAudioLoop |
audio | an AgsAudio |

Since: 3.0.0

### ags_audio_loop_add_channel ()

    void
    ags_audio_loop_add_channel (AgsAudioLoop *audio_loop,
                                GObject *channel);

Add channel for playback.

#### Parameters

audio_loop | the AgsAudioLoop |
channel | an AgsChannel |

Since: 3.0.0

### ags_audio_loop_remove_channel ()

    void
    ags_audio_loop_remove_channel (AgsAudioLoop *audio_loop,
                                   GObject *channel);

Remove channel of playback.

#### Parameters

audio_loop | the AgsAudioLoop |
channel | an AgsChannel |

Since: 3.0.0

### ags_audio_loop_get_do_fx_staging ()

    gboolean
    ags_audio_loop_get_do_fx_staging (AgsAudioLoop *audio_loop);

Get do fx staging.

#### Parameters

audio_loop | the AgsAudioLoop |

#### Returns

`TRUE` if set, otherwise `FALSE`

Since: 3.3.0

### ags_audio_loop_set_do_fx_staging ()

    void
    ags_audio_loop_set_do_fx_staging (AgsAudioLoop *audio_loop,
                                      gboolean do_fx_staging);

Set do fx staging.

#### Parameters

audio_loop | the AgsAudioLoop |
do_fx_staging | `TRUE` if do fx staging, else `FALSE` |

Since: 3.3.0

### ags_audio_loop_get_staging_program ()

    guint *
    ags_audio_loop_get_staging_program (AgsAudioLoop *audio_loop,
                                        guint *staging_program_count);

Get staging program.

#### Parameters

audio_loop | the AgsAudioLoop |
staging_program_count | the staging program count. | [out]

#### Returns

the staging program.

[transfer full]

Since: 3.3.0

### ags_audio_loop_set_staging_program ()

    void
    ags_audio_loop_set_staging_program (AgsAudioLoop *audio_loop,
                                        guint *staging_program,
                                        guint staging_program_count);

Set staging program.

#### Parameters

audio_loop | the AgsAudioLoop |
staging_program | the staging program. | [transfer none]
staging_program_count | the staging program count |

Since: 3.3.0

### ags_audio_loop_new ()

    AgsAudioLoop *
    ags_audio_loop_new ();

Create a new AgsAudioLoop.

#### Returns

the new AgsAudioLoop

Since: 3.0.0

## Types and Values

### AGS_AUDIO_LOOP_DEFAULT_JIFFIE

    #define AGS_AUDIO_LOOP_DEFAULT_JIFFIE (ceil(AGS_SOUNDCARD_DEFAULT_SAMPLERATE / AGS_SOUNDCARD_DEFAULT_BUFFER_SIZE) + AGS_SOUNDCARD_DEFAULT_OVERCLOCK)

### enum AgsAudioLoopFlags

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

#### Members

AGS_AUDIO_LOOP_PLAY_CHANNEL | play channel |
AGS_AUDIO_LOOP_PLAYING_CHANNEL | playing channnel |
AGS_AUDIO_LOOP_PLAY_CHANNEL_TERMINATING | play channe terminating |
AGS_AUDIO_LOOP_PLAY_AUDIO | play audio |
AGS_AUDIO_LOOP_PLAYING_AUDIO | playing audio |
AGS_AUDIO_LOOP_PLAY_AUDIO_TERMINATING | play audio terminating |

## Property Details

### The `“play-audio”` property

      “play-audio”               gpointer

An AgsAudio to add for playback.

[transfer full]

Owner: AgsAudioLoop

Flags: Write

Since: 3.0.0

### The `“play-channel”` property

      “play-channel”             gpointer

An AgsChannel to add for playback.

[transfer full]

Owner: AgsAudioLoop

Flags: Write

Since: 3.0.0