## AgsPlaybackDomain

AgsPlaybackDomain — Outputting audio to soundcard

## Stability Level

Stable, unless otherwise indicated

## Functions

#define | AGS_PLAYBACK_DOMAIN_GET_OBJ_MUTEX()
gboolean | ags_playback_domain_test_flags ()
void | ags_playback_domain_set_flags ()
void | ags_playback_domain_unset_flags ()
void | ags_playback_domain_set_audio_thread ()
AgsThread * | ags_playback_domain_get_audio_thread ()
void | ags_playback_domain_add_playback ()
void | ags_playback_domain_insert_playback ()
void | ags_playback_domain_remove_playback ()
AgsPlaybackDomain * | ags_playback_domain_new ()

## Properties

GObject * | audio | Read / Write
gpointer | input-playback | Read / Write
gpointer | output-playback | Read / Write

## Types and Values

enum | AgsPlaybackDomainFlags

## Object Hierarchy

        GObject
        ╰── AgsPlaybackDomain

## Includes

    #include <ags/audio/ags_playback_domain.h>

## Description

AgsPlaybackDomain represents a domain to output. It provides you the audio processing threads per AgsSoundScope. The

The assigned AgsAudioThread calls `ags_channel_recursive_run_stage()` for you.

The `output-playback` and `input-playback` properties provide a GList containing AgsPlayback.

## Functions

### AGS_PLAYBACK_DOMAIN_GET_OBJ_MUTEX()

    #define AGS_PLAYBACK_DOMAIN_GET_OBJ_MUTEX(obj) (&(((AgsPlaybackDomain *) obj)->obj_mutex))

### ags_playback_domain_test_flags ()

    gboolean
    ags_playback_domain_test_flags (AgsPlaybackDomain *playback_domain,
                                    AgsPlaybackDomainFlags flags);

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

#### Parameters

playback_domain | the AgsPlaybackDomain |
flags | the flags |

#### Returns

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

Since: 3.0.0

### ags_playback_domain_set_flags ()

    void
    ags_playback_domain_set_flags (AgsPlaybackDomain *playback_domain,
                                   AgsPlaybackDomainFlags flags);

Set flags.

#### Parameters

playback_domain | the AgsPlaybackDomain |
flags | the flags |

Since: 3.0.0

### ags_playback_domain_unset_flags ()

    void
    ags_playback_domain_unset_flags (AgsPlaybackDomain *playback_domain,
                                     AgsPlaybackDomainFlags flags);

Unset flags.

#### Parameters

playback_domain | the AgsPlaybackDomain |
flags | the flags |

Since: 3.0.0

### ags_playback_domain_set_audio_thread ()

    void
    ags_playback_domain_set_audio_thread (AgsPlaybackDomain *playback_domain,
                                          AgsThread *thread,
                                          gint sound_scope);

Set audio thread to specified scope.

#### Parameters

playback_domain | the AgsPlaybackDomain |
thread | the AgsThread |
sound_scope | the thread's scope |

Since: 3.0.0

### ags_playback_domain_get_audio_thread ()

    AgsThread *
    ags_playback_domain_get_audio_thread (AgsPlaybackDomain *playback_domain,
                                          gint sound_scope);

Get audio thread of specified scope.

#### Parameters

playback_domain | the AgsPlaybackDomain |
sound_scope | the thread's scope |

#### Returns

the matching AgsThread or `NULL`.

[transfer full]

Since: 3.0.0

### ags_playback_domain_add_playback ()

    void
    ags_playback_domain_add_playback (AgsPlaybackDomain *playback_domain,
                                      GObject *playback,
                                      GType channel_type);

Add `playback` for `channel_type` to `playback_domain` .

#### Parameters

playback_domain | the AgsPlaybackDomain |
playback | the AgsPlayback |
channel_type | either an AGS_TYPE_OUTPUT or AGS_TYPE_INPUT |

Since: 3.0.0

### ags_playback_domain_insert_playback ()

    void
    ags_playback_domain_insert_playback (AgsPlaybackDomain *playback_domain,
                                         GObject *playback,
                                         GType channel_type,
                                         gint position);

Add `playback` for `channel_type` to `playback_domain` at `position` .

#### Parameters

playback_domain | the AgsPlaybackDomain |
playback | the AgsPlayback |
channel_type | either an AGS_TYPE_OUTPUT or AGS_TYPE_INPUT |
position | the position |

Since: 3.7.13

### ags_playback_domain_remove_playback ()

    void
    ags_playback_domain_remove_playback (AgsPlaybackDomain *playback_domain,
                                         GObject *playback,
                                         GType channel_type);

Remove `playback` for `channel_type` of `playback_domain` .

#### Parameters

playback_domain | the AgsPlaybackDomain |
playback | the AgsPlayback |
channel_type | either an AGS_TYPE_OUTPUT or AGS_TYPE_INPUT |

Since: 3.0.0

### ags_playback_domain_new ()

    AgsPlaybackDomain *
    ags_playback_domain_new (GObject *audio);

Creates an AgsPlaybackDomain, refering to `application_context` .

#### Parameters

audio | the AgsAudio |

#### Returns

a new AgsPlaybackDomain

Since: 3.0.0

## Types and Values

### enum AgsPlaybackDomainFlags

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

#### Members

AGS_PLAYBACK_DOMAIN_SINGLE_THREADED | single threaded |
AGS_PLAYBACK_DOMAIN_SUPER_THREADED_AUDIO | super threaded audio |

## Property Details

### The `“audio”` property

      “audio”                    GObject *

The assigned AgsAudio.

Owner: AgsPlaybackDomain

Flags: Read / Write

Since: 3.0.0

### The `“input-playback”` property

      “input-playback”           gpointer

The assigned input playback.

[transfer full]

Owner: AgsPlaybackDomain

Flags: Read / Write

Since: 3.0.0

### The `“output-playback”` property

      “output-playback”          gpointer

The assigned output playback.

[transfer full]

Owner: AgsPlaybackDomain

Flags: Read / Write

Since: 3.0.0