## AgsAudioTreeDispatcher

AgsAudioTreeDispatcher — The audio tree dispatcher

## Stability Level

Stable, unless otherwise indicated

## Functions

#define | AGS_DISPATCH_AUDIO()
#define | AGS_AUDIO_TREE_DISPATCHER_GET_OBJ_MUTEX()
AgsDispatchAudio * | ags_dispatch_audio_alloc ()
void | ags_dispatch_audio_free ()
GList * | ags_audio_tree_dispatcher_compile_tree_list ()
void | ags_audio_tree_dispatcher_remove_dispatch_source ()
guint * | ags_audio_tree_dispatcher_get_staging_program ()
void | ags_audio_tree_dispatcher_set_staging_program ()
GList * | ags_audio_tree_dispatcher_get_tree_list ()
void | ags_audio_tree_dispatcher_set_tree_list ()
gint64 | ags_audio_tree_dispatcher_get_tree_list_stamp ()
void | ags_audio_tree_dispatcher_set_tree_list_stamp ()
void | ags_audio_tree_dispatcher_run ()
AgsAudioTreeDispatcher * | ags_audio_tree_dispatcher_new ()

## Types and Values

struct | AgsDispatchAudio

## Includes

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

## Description

AgsAudioTreeDispatcher runs per dispatch source and sound scope.

## Functions

### AGS_DISPATCH_AUDIO()

    #define AGS_DISPATCH_AUDIO(ptr) ((AgsDispatchAudio*)(ptr))

### AGS_AUDIO_TREE_DISPATCHER_GET_OBJ_MUTEX()

    #define AGS_AUDIO_TREE_DISPATCHER_GET_OBJ_MUTEX(obj) (&(((AgsAudioTreeDispatcher *) obj)->obj_mutex))

### ags_dispatch_audio_alloc ()

    AgsDispatchAudio *
    ags_dispatch_audio_alloc (GObject *dispatch_source,
                              gint sound_scope);

Alloc dispatch audio.

#### Parameters

dispatch_source | the dispatch source |
sound_scope | the AgsSoundScope |

#### Returns

the newly allocated AgsDispatchAudio

Since: 8.0.0

### ags_dispatch_audio_free ()

    void
    ags_dispatch_audio_free (AgsDispatchAudio *dispatch_audio);

Free `dispatch_audio` .

#### Parameters

dispatch_audio | the AgsDispatchAudio |

Since: 8.0.0

### ags_audio_tree_dispatcher_compile_tree_list ()

    GList *
    ags_audio_tree_dispatcher_compile_tree_list
                                   (AgsAudioTreeDispatcher *audio_tree_dispatcher,
                                    GObject *dispatch_source,
                                    gint sound_scope);

Compile tree list.

#### Parameters

audio_tree_dispatcher | the AgsAudioTreeDispatcher |
dispatch_source | the dispatch source |
sound_scope | the sound scope |

#### Returns

the newly created tree list.

[transfer full]

Since: 8.0.0

### ags_audio_tree_dispatcher_remove_dispatch_source ()

    void
    ags_audio_tree_dispatcher_remove_dispatch_source
                                   (AgsAudioTreeDispatcher *audio_tree_dispatcher,
                                    GObject *dispatch_source,
                                    gint sound_scope);

Remove dispatch source from tree list.

#### Parameters

audio_tree_dispatcher | the AgsAudioTreeDispatcher |
dispatch_source | the dispatch source |
sound_scope | the sound scope |

Since: 8.0.0

### ags_audio_tree_dispatcher_get_staging_program ()

    guint *
    ags_audio_tree_dispatcher_get_staging_program
                                   (AgsAudioTreeDispatcher *audio_tree_dispatcher,
                                    guint *staging_program_count);

### ags_audio_tree_dispatcher_set_staging_program ()

    void
    ags_audio_tree_dispatcher_set_staging_program
                                   (AgsAudioTreeDispatcher *audio_tree_dispatcher,
                                    guint *staging_program,
                                    guint staging_program_count);

Get tree list.

#### Parameters

audio_tree_dispatcher | the AgsAudioTreeDispatcher |
staging_program | the staging program array. | [transfer none]
staging_program_count | the staging program count |

Since: 8.0.0

### ags_audio_tree_dispatcher_get_tree_list ()

    GList *
    ags_audio_tree_dispatcher_get_tree_list
                                   (AgsAudioTreeDispatcher *audio_tree_dispatcher);

Get tree list.

#### Parameters

audio_tree_dispatcher | the AgsAudioTreeDispatcher |

#### Returns

the tree list.

[transfer container]

Since: 8.0.0

### ags_audio_tree_dispatcher_set_tree_list ()

    void
    ags_audio_tree_dispatcher_set_tree_list
                                   (AgsAudioTreeDispatcher *audio_tree_dispatcher,
                                    GList *tree_list);

Set tree list.

#### Parameters

audio_tree_dispatcher | the AgsAudioTreeDispatcher |
tree_list | the GList containing AgsDispatchAudio. | [transfer full]

Since: 8.0.0

### ags_audio_tree_dispatcher_get_tree_list_stamp ()

    gint64
    ags_audio_tree_dispatcher_get_tree_list_stamp
                                   (AgsAudioTreeDispatcher *audio_tree_dispatcher);

Get tree list stamp.

#### Parameters

audio_tree_dispatcher | the AgsAudioTreeDispatcher |

#### Returns

the tree list stamp

Since: 8.0.0

### ags_audio_tree_dispatcher_set_tree_list_stamp ()

    void
    ags_audio_tree_dispatcher_set_tree_list_stamp
                                   (AgsAudioTreeDispatcher *audio_tree_dispatcher,
                                    gint64 tree_list_stamp);

Set tree list stamp.

#### Parameters

audio_tree_dispatcher | the AgsAudioTreeDispatcher |
tree_list_stamp | the tree list stamp |

Since: 8.0.0

### ags_audio_tree_dispatcher_run ()

    void
    ags_audio_tree_dispatcher_run (AgsAudioTreeDispatcher *audio_tree_dispatcher);

Run the dispatcher.

#### Parameters

audio_tree_dispatcher | the AgsAudioTreeDispatcher |

Since: 8.0.0

### ags_audio_tree_dispatcher_new ()

    AgsAudioTreeDispatcher *
    ags_audio_tree_dispatcher_new ();

Creates a AgsAudioTreeDispatcher

#### Returns

a new AgsAudioTreeDispatcher

Since: 8.0.0

## Types and Values

### struct AgsDispatchAudio

    struct AgsDispatchAudio {
      GObject *dispatch_source;

      gint sound_scope;

      GType tree_element_type;

      union{
        GObject *audio;
        GObject *output;
        GObject *input;
      }tree_element;

      GObject *recall_id;
      GObject *recycling_context;
    };