## AgsRecall

AgsRecall — The recall base class

## Stability Level

Stable, unless otherwise indicated

## Functions

#define | AGS_RECALL_HANDLER()
#define | AGS_RECALL_GET_OBJ_MUTEX()
void | ags_recall_global_set_omit_event ()
gboolean | ags_recall_global_get_children_lock_free ()
gboolean | ags_recall_global_get_omit_event ()
gboolean | ags_recall_global_get_performance_mode ()
gboolean | ags_recall_global_get_rt_safe ()
GRecMutex * | ags_recall_get_obj_mutex ()
gboolean | ags_recall_test_flags ()
void | ags_recall_set_flags ()
void | ags_recall_unset_flags ()
gboolean | ags_recall_test_ability_flags ()
void | ags_recall_set_ability_flags ()
void | ags_recall_unset_ability_flags ()
gboolean | ags_recall_check_ability_flags ()
gboolean | ags_recall_match_ability_flags_to_scope ()
gboolean | ags_recall_test_behaviour_flags ()
void | ags_recall_set_behaviour_flags ()
void | ags_recall_unset_behaviour_flags ()
gboolean | ags_recall_check_behaviour_flags ()
void | ags_recall_set_sound_scope ()
gint | ags_recall_get_sound_scope ()
gboolean | ags_recall_check_sound_scope ()
gboolean | ags_recall_test_staging_flags ()
void | ags_recall_set_staging_flags ()
void | ags_recall_unset_staging_flags ()
gboolean | ags_recall_check_staging_flags ()
gboolean | ags_recall_test_state_flags ()
void | ags_recall_set_state_flags ()
void | ags_recall_unset_state_flags ()
gboolean | ags_recall_check_state_flags ()
gchar * | ags_recall_get_filename ()
void | ags_recall_set_filename ()
gchar * | ags_recall_get_effect ()
void | ags_recall_set_effect ()
guint | ags_recall_get_effect_index ()
void | ags_recall_set_effect_index ()
GObject * | ags_recall_get_recall_container ()
void | ags_recall_set_recall_container ()
AgsRecallID * | ags_recall_get_recall_id ()
void | ags_recall_set_recall_id ()
GList * | ags_recall_get_recall_dependency ()
void | ags_recall_set_recall_dependency ()
void | ags_recall_add_recall_dependency ()
void | ags_recall_remove_recall_dependency ()
GList * | ags_recall_get_port ()
void | ags_recall_set_port ()
void | ags_recall_add_port ()
void | ags_recall_remove_port ()
GList * | ags_recall_get_children ()
void | ags_recall_set_children ()
void | ags_recall_add_child ()
void | ags_recall_remove_child ()
void | ags_recall_handler_free ()
AgsRecallHandler * | ags_recall_handler_alloc ()
void | ags_recall_add_recall_handler ()
void | ags_recall_remove_recall_handler ()
GObject * | ags_recall_get_output_soundcard ()
void | ags_recall_set_output_soundcard ()
GObject * | ags_recall_get_input_soundcard ()
void | ags_recall_set_input_soundcard ()
guint | ags_recall_get_samplerate ()
void | ags_recall_set_samplerate ()
guint | ags_recall_get_buffer_size ()
void | ags_recall_set_buffer_size ()
AgsSoundcardFormat | ags_recall_get_format ()
void | ags_recall_set_format ()
GHashTable * | ags_recall_get_midi1_cc_to_value ()
GHashTable * | ags_recall_get_midi1_cc_to_port_specifier ()
GHashTable * | ags_recall_get_midi2_cc_to_value ()
GHashTable * | ags_recall_get_midi2_cc_to_port_specifier ()
void | ags_recall_resolve_dependency ()
void | ags_recall_check_rt_data ()
void | ags_recall_run_init_pre ()
void | ags_recall_run_init_inter ()
void | ags_recall_run_init_post ()
void | ags_recall_feed_input_queue ()
void | ags_recall_automate ()
void | ags_recall_run_pre ()
void | ags_recall_run_inter ()
void | ags_recall_run_post ()
void | ags_recall_do_feedback ()
void | ags_recall_feed_output_queue ()
void | ags_recall_stop_persistent ()
void | ags_recall_cancel ()
void | ags_recall_done ()
void | ags_recall_midi1_control_change ()
void | ags_recall_midi2_control_change ()
void | ags_recall_jack_metadata ()
AgsRecall * | ags_recall_duplicate ()
void | ags_recall_notify_dependency ()
void | ags_recall_child_added ()
gboolean | ags_recall_is_done ()
GList * | ags_recall_get_by_effect ()
GList * | ags_recall_find_recall_id_with_effect ()
GList * | ags_recall_find_type ()
GList * | ags_recall_find_template ()
GList * | ags_recall_template_find_type ()
GList * | ags_recall_template_find_all_type ()
GList * | ags_recall_find_type_with_recycling_context ()
GList * | ags_recall_find_recycling_context ()
GList * | ags_recall_find_provider ()
GList * | ags_recall_template_find_provider ()
GList * | ags_recall_find_provider_with_recycling_context ()
void | ags_recall_lock_port ()
void | ags_recall_unlock_port ()
AgsRecall * | ags_recall_new ()

## Properties

guint | audio-channel | Read / Write
gpointer | automation-port | Read / Write
guint | buffer-size | Read / Write
gpointer | child | Read / Write
GType * | child-type | Read / Write
char * | effect | Read / Write
guint | effect-index | Read / Write
char * | filename | Read / Write
guint | format | Read / Write
GObject * | input-soundcard | Read / Write
int | input-soundcard-channel | Read / Write
guint | line | Read / Write
gpointer | midi1-cc-to-port-specifier | Read / Write
gpointer | midi1-cc-to-value | Read / Write
gpointer | midi2-cc-to-port-specifier | Read / Write
gpointer | midi2-cc-to-value | Read / Write
GObject * | output-soundcard | Read / Write
int | output-soundcard-channel | Read / Write
guint | pad | Read / Write
AgsRecall * | parent | Read / Write
gpointer | port | Read / Write
AgsRecallContainer * | recall-container | Read / Write
gpointer | recall-dependency | Read / Write
AgsRecallID * | recall-id | Read / Write
guint | samplerate | Read / Write

## Signals

void | automate | Run Last
void | cancel | Run Last
void | check-rt-data | Run Last
void | child-added | Run Last
void | do-feedback | Run Last
void | done | Run Last
GObject* | duplicate | Run Last
void | feed-input-queue | Run Last
void | feed-output-queue | Run Last
void | jack-metadata | Run Last
void | midi1-control-change | Run Last
void | midi2-control-change | Run Last
void | notify-dependency | Run Last
void | resolve-dependency | Run Last
void | run-init-inter | Run Last
void | run-init-post | Run Last
void | run-init-pre | Run Last
void | run-inter | Run Last
void | run-post | Run Last
void | run-pre | Run Last
void | stop-persistent | Run Last

## Types and Values

#define | AGS_RECALL_DEFAULT_VERSION
#define | AGS_RECALL_DEFAULT_BUILD_ID
enum | AgsRecallFlags
enum | AgsRecallNotifyDependencyMode
enum | AgsRecallMidi1ControlChange
enum | AgsRecallMidi2ControlChange
struct | AgsRecallHandler

## Object Hierarchy

        GFlags
        ├── AgsRecallFlags
        ╰── AgsRecallNotifyDependencyMode
        GObject
        ╰── AgsRecall
            ├── AgsRecallAudio
            ├── AgsRecallAudioRun
            ├── AgsRecallAudioSignal
            ├── AgsRecallChannel
            ├── AgsRecallChannelRun
            ╰── AgsRecallRecycling

## Includes

    #include <ags/audio/ags_recall.h>

## Description

AgsRecall acts as effect processor. It depends on staging program from AgsAudioThread and AgsChannelThread what signals are invoked.

ags-fx staging does actually only run duplicate and intialization of a recall:

- play-duplicate

- play-run-init-pre, play-run-init-inter and play-run-init-post

And the actuall audio processing:

- play-automate

- play-run-inter

Termination of audio processing usually follows:

- play-done

- play-cancel

You usually create recalls of the same audio processing effect for different contices. For those contices exists derived recalls you inherit from.

- AgsRecallAudio

- AgsRecallAudioRun

- AgsRecallChannel

- AgsRecallChannelRun

- AgsRecallRecycling

- AgsREcallAudioSignal

You add the derived AgsRecallAudio and AgsRecallAudioRun to AgsAudio by calling `ags_audio_add_recall()`. Analogously, you do this for AgsRecallChannel and AgsRecallChannelRun by calling `ags_channel_add_recall()`.

Make sure you set property `child-type` of AgsRecallChannelRun to AgsRecallRecycling and of AgsRecallRecycling to AgsRecallAudioSignal derived type.

Further AgsRecall is packed by AgsRecallContainer.

## Functions

### AGS_RECALL_HANDLER()

    #define AGS_RECALL_HANDLER(handler)    ((AgsRecallHandler *)(handler))

### AGS_RECALL_GET_OBJ_MUTEX()

    #define AGS_RECALL_GET_OBJ_MUTEX(obj) (&(((AgsRecall *) obj)->obj_mutex))

### ags_recall_global_set_omit_event ()

    void
    ags_recall_global_set_omit_event (gboolean omit_event);

Set global config value omit event.

#### Parameters

omit_event | `TRUE` if omit event, otherwise `FALSE` |

Since: 3.0.0

### ags_recall_global_get_children_lock_free ()

    gboolean
    ags_recall_global_get_children_lock_free
                                   ();

Get global config value lock free children.

#### Returns

if `TRUE` does lock free children, else not

Since: 3.0.0

### ags_recall_global_get_omit_event ()

    gboolean
    ags_recall_global_get_omit_event ();

Get global config value omit event.

#### Returns

if `TRUE` does omit events, else not

Since: 3.0.0

### ags_recall_global_get_performance_mode ()

    gboolean
    ags_recall_global_get_performance_mode
                                   ();

Get global config value performance mode.

#### Returns

if `TRUE` does performance mode, else not

Since: 3.0.0

### ags_recall_global_get_rt_safe ()

    gboolean
    ags_recall_global_get_rt_safe ();

Get global config value rt-safe.

#### Returns

if `TRUE` does rt-safe strategy, else not

Since: 3.0.0

### ags_recall_get_obj_mutex ()

    GRecMutex *
    ags_recall_get_obj_mutex (AgsRecall *recall);

Get object mutex.

#### Parameters

recall | the AgsRecall |

#### Returns

the GRecMutex to lock `recall` .

[type gpointer][transfer none]

Since: 3.1.0

### ags_recall_test_flags ()

    gboolean
    ags_recall_test_flags (AgsRecall *recall,
                           AgsRecallFlags flags);

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

#### Parameters

recall | the AgsRecall |
flags | the flags |

#### Returns

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

Since: 3.0.0

### ags_recall_set_flags ()

    void
    ags_recall_set_flags (AgsRecall *recall,
                          AgsRecallFlags flags);

Set flags.

#### Parameters

recall | the AgsRecall |
flags | the flags |

Since: 3.0.0

### ags_recall_unset_flags ()

    void
    ags_recall_unset_flags (AgsRecall *recall,
                            AgsRecallFlags flags);

Unset flags.

#### Parameters

recall | the AgsRecall |
flags | the flags |

Since: 3.0.0

### ags_recall_test_ability_flags ()

    gboolean
    ags_recall_test_ability_flags (AgsRecall *recall,
                                   AgsSoundAbilityFlags ability_flags);

Test `ability_flags` to be set on `recall` .

#### Parameters

recall | the AgsRecall |
ability_flags | the ability flags |

#### Returns

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

Since: 3.0.0

### ags_recall_set_ability_flags ()

    void
    ags_recall_set_ability_flags (AgsRecall *recall,
                                  AgsSoundAbilityFlags ability_flags);

Set ability flags recursively.

#### Parameters

recall | the AgsRecall |
ability_flags | ability flags |

Since: 3.0.0

### ags_recall_unset_ability_flags ()

    void
    ags_recall_unset_ability_flags (AgsRecall *recall,
                                    AgsSoundAbilityFlags ability_flags);

Unset ability flags recursively.

#### Parameters

recall | the AgsRecall |
ability_flags | ability flags |

Since: 3.0.0

### ags_recall_check_ability_flags ()

    gboolean
    ags_recall_check_ability_flags (AgsRecall *recall,
                                    AgsSoundAbilityFlags ability_flags);

Check if `ability_flags` is set for `recall` .

#### Parameters

recall | the AgsRecall |
ability_flags | the ability flags |

#### Returns

`TRUE` flags are set, otherwise `FALSE`

Since: 3.0.0

### ags_recall_match_ability_flags_to_scope ()

    gboolean
    ags_recall_match_ability_flags_to_scope
                                   (AgsRecall *recall,
                                    gint sound_scope);

Check if `sound_scope` related ability flag is set.

#### Parameters

recall | the AgsRecall |
sound_scope | the sound scope |

#### Returns

`TRUE` if sound scope is available, otherwise `FALSE`

Since: 3.0.0

### ags_recall_test_behaviour_flags ()

    gboolean
    ags_recall_test_behaviour_flags (AgsRecall *recall,
                                     AgsSoundBehaviourFlags behaviour_flags);

Test `behaviour_flags` to be set on `recall` .

#### Parameters

recall | the AgsRecall |
behaviour_flags | the behaviour flags |

#### Returns

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

Since: 3.0.0

### ags_recall_set_behaviour_flags ()

    void
    ags_recall_set_behaviour_flags (AgsRecall *recall,
                                    AgsSoundBehaviourFlags behaviour_flags);

Set behaviour flags of `recall` .

#### Parameters

recall | the AgsRecall |
behaviour_flags | the behaviour flags |

Since: 3.0.0

### ags_recall_unset_behaviour_flags ()

    void
    ags_recall_unset_behaviour_flags (AgsRecall *recall,
                                      AgsSoundBehaviourFlags behaviour_flags);

Unset behaviour flags of `recall` .

#### Parameters

recall | the AgsRecall |
behaviour_flags | the behaviour flags |

Since: 3.0.0

### ags_recall_check_behaviour_flags ()

    gboolean
    ags_recall_check_behaviour_flags (AgsRecall *recall,
                                      AgsSoundBehaviourFlags behaviour_flags);

Check if `behaviour_flags` is set for `recall` .

#### Parameters

recall | the AgsRecall |
behaviour_flags | the behaviour flags |

#### Returns

`TRUE` flags are set, otherwise `FALSE`

Since: 3.0.0

### ags_recall_set_sound_scope ()

    void
    ags_recall_set_sound_scope (AgsRecall *recall,
                                gint sound_scope);

Set `sound_scope` for `recall` .

#### Parameters

recall | the AgsRecall |
sound_scope | the sound scope |

Since: 3.0.0

### ags_recall_get_sound_scope ()

    gint
    ags_recall_get_sound_scope (AgsRecall *recall);

Get sound scope for `recall` .

#### Parameters

recall | the AgsRecall |

#### Returns

the used sound scope

Since: 3.0.0

### ags_recall_check_sound_scope ()

    gboolean
    ags_recall_check_sound_scope (AgsRecall *recall,
                                  gint sound_scope);

Check if `sound_scope` is set for `recall` .

#### Parameters

recall | the AgsRecall |
sound_scope | the sound scope to check or -1 to check all |

#### Returns

`TRUE` if sound scope matches, otherwise `FALSE`

Since: 3.0.0

### ags_recall_test_staging_flags ()

    gboolean
    ags_recall_test_staging_flags (AgsRecall *recall,
                                   AgsSoundStagingFlags staging_flags);

Test `staging_flags` to be set on `recall` .

#### Parameters

recall | the AgsRecall |
staging_flags | the staging flags |

#### Returns

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

Since: 3.0.0

### ags_recall_set_staging_flags ()

    void
    ags_recall_set_staging_flags (AgsRecall *recall,
                                  AgsSoundStagingFlags staging_flags);

Set staging flags.

#### Parameters

recall | the AgsRecall |
staging_flags | staging flags to set |

Since: 3.0.0

### ags_recall_unset_staging_flags ()

    void
    ags_recall_unset_staging_flags (AgsRecall *recall,
                                    AgsSoundStagingFlags staging_flags);

Unset staging flags.

#### Parameters

recall | the AgsRecall |
staging_flags | staging flags to unset |

Since: 3.0.0

### ags_recall_check_staging_flags ()

    gboolean
    ags_recall_check_staging_flags (AgsRecall *recall,
                                    AgsSoundStagingFlags staging_flags);

Check the occurence of `staging_flags` in `recall` .

#### Parameters

recall | the AgsRecall |
staging_flags | staging flags to check |

#### Returns

`TRUE` if all flags matched, otherwise `FALSE`

Since: 3.0.0

### ags_recall_test_state_flags ()

    gboolean
    ags_recall_test_state_flags (AgsRecall *recall,
                                 AgsSoundStateFlags state_flags);

Test `state_flags` to be set on `recall` .

#### Parameters

recall | the AgsRecall |
state_flags | the state flags |

#### Returns

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

Since: 3.0.0

### ags_recall_set_state_flags ()

    void
    ags_recall_set_state_flags (AgsRecall *recall,
                                AgsSoundStateFlags state_flags);

Set state flags.

#### Parameters

recall | the AgsRecall |
state_flags | state flags to set |

Since: 3.0.0

### ags_recall_unset_state_flags ()

    void
    ags_recall_unset_state_flags (AgsRecall *recall,
                                  AgsSoundStateFlags state_flags);

Unset state flags.

#### Parameters

recall | the AgsRecall |
state_flags | state flags to unset |

Since: 3.0.0

### ags_recall_check_state_flags ()

    gboolean
    ags_recall_check_state_flags (AgsRecall *recall,
                                  AgsSoundStateFlags state_flags);

Check the occurence of `state_flags` in `recall` .

#### Parameters

recall | the AgsRecall |
state_flags | state flags to check |

#### Returns

`TRUE` if all flags matched, otherwise `FALSE`

Since: 3.0.0

### ags_recall_get_filename ()

    gchar *
    ags_recall_get_filename (AgsRecall *recall);

Get filename.

#### Parameters

recall | the AgsRecall |

#### Returns

the filename

Since: 3.1.0

### ags_recall_set_filename ()

    void
    ags_recall_set_filename (AgsRecall *recall,
                             gchar *filename);

Set filename.

#### Parameters

recall | the AgsRecall |
filename | the filename |

Since: 3.1.0

### ags_recall_get_effect ()

    gchar *
    ags_recall_get_effect (AgsRecall *recall);

Get effect.

#### Parameters

recall | the AgsRecall |

#### Returns

the effect

Since: 3.1.0

### ags_recall_set_effect ()

    void
    ags_recall_set_effect (AgsRecall *recall,
                           gchar *effect);

Set effect.

#### Parameters

recall | the AgsRecall |
effect | the effect |

Since: 3.1.0

### ags_recall_get_effect_index ()

    guint
    ags_recall_get_effect_index (AgsRecall *recall);

Get effect index.

#### Parameters

recall | the AgsRecall |

#### Returns

the effect index

Since: 3.1.0

### ags_recall_set_effect_index ()

    void
    ags_recall_set_effect_index (AgsRecall *recall,
                                 guint effect_index);

Set effect index.

#### Parameters

recall | the AgsRecall |
effect_index | the effect index |

Since: 3.1.0

### ags_recall_get_recall_container ()

    GObject *
    ags_recall_get_recall_container (AgsRecall *recall);

Get recall container of `recall` .

#### Parameters

recall | the AgsRecall |

#### Returns

the AgsRecallContainer.

[transfer full]

Since: 3.1.0

### ags_recall_set_recall_container ()

    void
    ags_recall_set_recall_container (AgsRecall *recall,
                                     GObject *recall_container);

Set `recall_container` of `recall` .

#### Parameters

recall | the AgsRecall |
recall_container | the AgsRecallContainer |

Since: 3.1.0

### ags_recall_get_recall_id ()

    AgsRecallID *
    ags_recall_get_recall_id (AgsRecall *recall);

Get recall id of `recall` .

#### Parameters

recall | the AgsRecall |

#### Returns

the AgsRecallID.

[transfer full]

Since: 3.1.0

### ags_recall_set_recall_id ()

    void
    ags_recall_set_recall_id (AgsRecall *recall,
                              AgsRecallID *recall_id);

Set `recall_id` of `recall` and all its children.

#### Parameters

recall | the AgsRecall |
recall_id | the AgsRecallID to set |

Since: 3.0.0

### ags_recall_get_recall_dependency ()

    GList *
    ags_recall_get_recall_dependency (AgsRecall *recall);

Get recall dependency.

#### Parameters

recall | the AgsRecall |

#### Returns

the GList containig AgsRecallDependency.

[element-type AgsAudio.RecallDependency][transfer full]

Since: 3.1.0

### ags_recall_set_recall_dependency ()

    void
    ags_recall_set_recall_dependency (AgsRecall *recall,
                                      GList *recall_dependency);

Set recall dependency by replacing existing.

#### Parameters

recall | the AgsRecall |
recall_dependency | the GList containing AgsRecallDependency. | [element-type AgsAudio.RecallDependency][transfer full]

Since: 3.1.0

### ags_recall_add_recall_dependency ()

    void
    ags_recall_add_recall_dependency (AgsRecall *recall,
                                      AgsRecallDependency *recall_dependency);

Associate a new dependency for this recall.

#### Parameters

recall | the AgsRecall |
recall_dependency | the AgsRecallDependency |

Since: 3.0.0

### ags_recall_remove_recall_dependency ()

    void
    ags_recall_remove_recall_dependency (AgsRecall *recall,
                                         AgsRecallDependency *recall_dependency);

Remove a prior associated dependency.

#### Parameters

recall | the AgsRecall |
recall_dependency | the AgsRecallDependency |

Since: 3.0.0

### ags_recall_get_port ()

    GList *
    ags_recall_get_port (AgsRecall *recall);

Get port.

#### Parameters

recall | the AgsRecall |

#### Returns

the GList containig AgsPort.

[element-type AgsAudio.Port][transfer full]

Since: 3.7.18

### ags_recall_set_port ()

    void
    ags_recall_set_port (AgsRecall *recall,
                         GList *port);

Set port by replacing existing.

#### Parameters

recall | the AgsRecall |
port | the GList containing AgsPort. | [element-type AgsAudio.Port][transfer full]

Since: 3.7.18

### ags_recall_add_port ()

    void
    ags_recall_add_port (AgsRecall *recall,
                         AgsPort *port);

Add `port` to `recall` .

#### Parameters

recall | the AgsRecall |
port | the AgsPort |

Since: 3.3.0

### ags_recall_remove_port ()

    void
    ags_recall_remove_port (AgsRecall *recall,
                            AgsPort *port);

Remove `port` from `recall` .

#### Parameters

recall | the AgsRecall |
port | the AgsPort |

Since: 3.3.0

### ags_recall_get_children ()

    GList *
    ags_recall_get_children (AgsRecall *recall);

Get recall children.

#### Parameters

recall | the AgsRecall |

#### Returns

the GList containig AgsRecall.

[element-type AgsAudio.Recall][transfer full]

Since: 3.1.0

### ags_recall_set_children ()

    void
    ags_recall_set_children (AgsRecall *recall,
                             GList *children);

Set recall children by replacing existing.

#### Parameters

recall | the AgsRecall |
children | the GList containing AgsRecall. | [element-type AgsAudio.Recall][transfer full]

Since: 3.1.0

### ags_recall_add_child ()

    void
    ags_recall_add_child (AgsRecall *recall,
                          AgsRecall *child);

Add `child` to `recall` .

#### Parameters

recall | the AgsRecall |
child | the child AgsRecall |

Since: 3.0.0

### ags_recall_remove_child ()

    void
    ags_recall_remove_child (AgsRecall *recall,
                             AgsRecall *child);

Remove `child` from `recall` .

#### Parameters

recall | the AgsRecall |
child | the child AgsRecall |

Since: 3.0.0

### ags_recall_handler_free ()

    void
    ags_recall_handler_free (AgsRecallHandler *recall_handler);

Free `recall_hanlder` .

#### Parameters

recall_handler | the AgsRecallHandler. | [type gpointer][transfer none]

Since: 3.0.0

### ags_recall_handler_alloc ()

    AgsRecallHandler *
    ags_recall_handler_alloc (const gchar *signal_name,
                              GCallback callback,
                              GObject *data);

Allocates AgsRecallHandler.

#### Parameters

signal_name | signal's name to connect |
callback | the GCallback function. | [scope call]
data | the data to pass the callback |

#### Returns

the newly allocated AgsRecallHandler.

[type gpointer][transfer none]

Since: 3.0.0

### ags_recall_add_recall_handler ()

    void
    ags_recall_add_recall_handler (AgsRecall *recall,
                                   AgsRecallHandler *recall_handler);

Connect callback to `recall` specified by `recall_handler` .

#### Parameters

recall | the AgsRecall to connect |
recall_handler | the signal specs. | [type gpointer][transfer none]

Since: 3.0.0

### ags_recall_remove_recall_handler ()

    void
    ags_recall_remove_recall_handler (AgsRecall *recall,
                                      AgsRecallHandler *recall_handler);

Remove a AgsRecallHandler from `recall` .

#### Parameters

recall | the AgsRecall to connect |
recall_handler | the signal specs. | [type gpointer][transfer none]

Since: 3.0.0

### ags_recall_get_output_soundcard ()

    GObject *
    ags_recall_get_output_soundcard (AgsRecall *recall);

Get the output soundcard object of `recall` .

#### Parameters

recall | the AgsRecall |

#### Returns

the output soundcard.

[transfer full]

Since: 3.1.0

### ags_recall_set_output_soundcard ()

    void
    ags_recall_set_output_soundcard (AgsRecall *recall,
                                     GObject *output_soundcard);

Set the output soundcard object of `recall` .

#### Parameters

recall | the AgsRecall |
output_soundcard | the GObject implementing AgsSoundcard |

Since: 3.0.0

### ags_recall_get_input_soundcard ()

    GObject *
    ags_recall_get_input_soundcard (AgsRecall *recall);

Get the input soundcard object of `recall` .

#### Parameters

recall | the AgsRecall |

#### Returns

the input soundcard.

[transfer full]

Since: 3.1.0

### ags_recall_set_input_soundcard ()

    void
    ags_recall_set_input_soundcard (AgsRecall *recall,
                                    GObject *input_soundcard);

Set the input soundcard object of `recall` .

#### Parameters

recall | an AgsRecall |
input_soundcard | the GObject implementing AgsSoundcard |

Since: 3.0.0

### ags_recall_get_samplerate ()

    guint
    ags_recall_get_samplerate (AgsRecall *recall);

Gets samplerate.

#### Parameters

recall | the AgsRecall |

#### Returns

the samplerate

Since: 3.1.0

### ags_recall_set_samplerate ()

    void
    ags_recall_set_samplerate (AgsRecall *recall,
                               guint samplerate);

Set samplerate of `recall` .

#### Parameters

recall | the AgsRecall |
samplerate | the samplerate |

Since: 3.0.0

### ags_recall_get_buffer_size ()

    guint
    ags_recall_get_buffer_size (AgsRecall *recall);

Gets buffer size.

#### Parameters

recall | the AgsRecall |

#### Returns

the buffer size

Since: 3.1.0

### ags_recall_set_buffer_size ()

    void
    ags_recall_set_buffer_size (AgsRecall *recall,
                                guint buffer_size);

Set buffer size of `recall` .

#### Parameters

recall | the AgsRecall |
buffer_size | the buffer size |

Since: 3.0.0

### ags_recall_get_format ()

    AgsSoundcardFormat
    ags_recall_get_format (AgsRecall *recall);

Gets format.

#### Parameters

recall | the AgsRecall |

#### Returns

the format

Since: 3.1.0

### ags_recall_set_format ()

    void
    ags_recall_set_format (AgsRecall *recall,
                           AgsSoundcardFormat format);

Set format of `recall` .

#### Parameters

recall | the AgsRecall |
format | the format |

Since: 3.0.0

### ags_recall_get_midi1_cc_to_value ()

    GHashTable *
    ags_recall_get_midi1_cc_to_value (AgsRecall *recall);

Gets MIDI version 1 control change to value mapped hash table.

#### Parameters

recall | the AgsRecall |

#### Returns

the MIDI version 1 control change to value hash table.

[transfer container]

Since: 7.0.0

### ags_recall_get_midi1_cc_to_port_specifier ()

    GHashTable *
    ags_recall_get_midi1_cc_to_port_specifier
                                   (AgsRecall *recall);

Gets MIDI version 1 control change to port specifier mapped hash table.

#### Parameters

recall | the AgsRecall |

#### Returns

the MIDI version 1 control change to port specifier hash table.

[transfer container]

Since: 7.0.0

### ags_recall_get_midi2_cc_to_value ()

    GHashTable *
    ags_recall_get_midi2_cc_to_value (AgsRecall *recall);

Gets MIDI version 1 control change to value mapped hash table.

#### Parameters

recall | the AgsRecall |

#### Returns

the MIDI version 1 control change to value hash table.

[transfer container]

Since: 7.0.0

### ags_recall_get_midi2_cc_to_port_specifier ()

    GHashTable *
    ags_recall_get_midi2_cc_to_port_specifier
                                   (AgsRecall *recall);

Gets MIDI version 1 control change to port specifier mapped hash table.

#### Parameters

recall | the AgsRecall |

#### Returns

the MIDI version 1 control change to port specifier hash table.

[transfer container]

Since: 7.0.0

### ags_recall_resolve_dependency ()

    void
    ags_recall_resolve_dependency (AgsRecall *recall);

A signal indicating that the inheriting object should resolve it's dependency.

#### Parameters

recall | the AgsRecall |

Since: 3.0.0

### ags_recall_check_rt_data ()

    void
    ags_recall_check_rt_data (AgsRecall *recall);

Prepare for run, this is the pre stage within the preparation.

#### Parameters

recall | the AgsRecall |

Since: 3.0.0

### ags_recall_run_init_pre ()

    void
    ags_recall_run_init_pre (AgsRecall *recall);

Prepare for run, this is the pre stage within the preparation.

#### Parameters

recall | the AgsRecall |

Since: 3.0.0

### ags_recall_run_init_inter ()

    void
    ags_recall_run_init_inter (AgsRecall *recall);

Prepare for run, this is the inter stage within the preparation.

#### Parameters

recall | the AgsRecall |

Since: 3.0.0

### ags_recall_run_init_post ()

    void
    ags_recall_run_init_post (AgsRecall *recall);

Prepare for run, this is the post stage within the preparation.

#### Parameters

recall | the AgsRecall |

Since: 3.0.0

### ags_recall_feed_input_queue ()

    void
    ags_recall_feed_input_queue (AgsRecall *recall);

Feed input queue of `recall` .

#### Parameters

recall | the AgsRecall |

Since: 3.0.0

### ags_recall_automate ()

    void
    ags_recall_automate (AgsRecall *recall);

Automate port of `recall` .

#### Parameters

recall | the AgsRecall |

Since: 3.0.0

### ags_recall_run_pre ()

    void
    ags_recall_run_pre (AgsRecall *recall);

This is the pre stage within a run.

#### Parameters

recall | the AgsRecall |

Since: 3.0.0

### ags_recall_run_inter ()

    void
    ags_recall_run_inter (AgsRecall *recall);

This is the inter stage within a run.

#### Parameters

recall | the AgsRecall |

Since: 3.0.0

### ags_recall_run_post ()

    void
    ags_recall_run_post (AgsRecall *recall);

This is the post stage within a run.

#### Parameters

recall | the AgsRecall |

Since: 3.0.0

### ags_recall_do_feedback ()

    void
    ags_recall_do_feedback (AgsRecall *recall);

Do feedback of `recall` .

#### Parameters

recall | the AgsRecall |

Since: 3.0.0

### ags_recall_feed_output_queue ()

    void
    ags_recall_feed_output_queue (AgsRecall *recall);

Feed output queue of `recall` .

#### Parameters

recall | the AgsRecall |

Since: 3.0.0

### ags_recall_stop_persistent ()

    void
    ags_recall_stop_persistent (AgsRecall *recall);

Unsets the `AGS_SOUND_BEHAVIOUR_PERSISTENT` and related behaviour flags and invokes `ags_recall_done()`.

#### Parameters

recall | the AgsRecall |

Since: 3.0.0

### ags_recall_cancel ()

    void
    ags_recall_cancel (AgsRecall *recall);

The AgsRecall doesn't want to run anymore, it aborts further execution.

#### Parameters

recall | the AgsRecall |

Since: 3.0.0

### ags_recall_done ()

    void
    ags_recall_done (AgsRecall *recall);

The AgsRecall doesn't want to run anymore, it has been done its work.

#### Parameters

recall | the AgsRecall |

Since: 3.0.0

### ags_recall_midi1_control_change ()

    void
    ags_recall_midi1_control_change (AgsRecall *recall);

The AgsRecall checks MIDI version 1 control change from input sequencer.

#### Parameters

recall | the AgsRecall |

Since: 7.0.0

### ags_recall_midi2_control_change ()

    void
    ags_recall_midi2_control_change (AgsRecall *recall);

The AgsRecall checks MIDI version 2 control change from input sequencer.

#### Parameters

recall | the AgsRecall |

Since: 7.0.0

### ags_recall_jack_metadata ()

    void
    ags_recall_jack_metadata (AgsRecall *recall);

The AgsRecall checks JACK metadata property change from CV port.

#### Parameters

recall | the AgsRecall |

Since: 7.0.0

### ags_recall_duplicate ()

    AgsRecall *
    ags_recall_duplicate (AgsRecall *recall,
                          AgsRecallID *recall_id,
                          guint *n_params,
                          gchar **parameter_name,
                          GValue *value);

Should duplicate an AgsRecall, so it can pass the run stages. Mainly used for creating duplicates of templates, see `AGS_RECALL_TEMPLATE`.

#### Parameters

recall | the template AgsRecAll |
recall_id | the AgsRecallID |
n_params | guint pointer to parameter count |
parameter_name | string vector containing parameter names |
value | the GValue array |

#### Returns

the duplicated AgsRecall.

[transfer full]

Since: 3.0.0

### ags_recall_notify_dependency ()

    void
    ags_recall_notify_dependency (AgsRecall *recall,
                                  guint dependency,
                                  gboolean increase);

Notifies a recall that an other depends on it.

#### Parameters

recall | the AgsRecall |
dependency | the dependency to notify for, see AgsRecallNotifyDependencyMode |
increase | if `TRUE` increase, else if `FALSE` decrease |

Since: 3.0.0

### ags_recall_child_added ()

    void
    ags_recall_child_added (AgsRecall *recall,
                            AgsRecall *child);

A signal indicating that the a child has been added.

#### Parameters

recall | the AgsRecall |
child | the child AgsRecall |

Since: 3.0.0

### ags_recall_is_done ()

    gboolean
    ags_recall_is_done (GList *recall,
                        GObject *recycling_context);

Check if recall is over.

#### Parameters

recall | the GList containing AgsRecall. | [element-type AgsAudio.Recall][transfer none]
recycling_context | the AgsRecyclingContext |

#### Returns

`TRUE` if recall is done, otherwise `FALSE`

Since: 3.0.0

### ags_recall_get_by_effect ()

    GList *
    ags_recall_get_by_effect (GList *recall,
                              gchar *filename,
                              gchar *effect);

Finds all recalls matching `filename` and `effect` .

#### Parameters

recall | the GList containing AgsRecall. | [element-type AgsAudio.Recall][transfer none]
filename | the filename containing `effect` or `NULL` |
effect | the effect name |

#### Returns

a GList containing AgsRecall, or `NULL` if not found.

[element-type AgsAudio.Recall][transfer full]

Since: 3.0.0

### ags_recall_find_recall_id_with_effect ()

    GList *
    ags_recall_find_recall_id_with_effect (GList *recall,
                                           AgsRecallID *recall_id,
                                           gchar *filename,
                                           gchar *effect);

Finds next matching effect name. Intended to be used as iteration function.

#### Parameters

recall | the GList containing AgsRecall. | [element-type AgsAudio.Recall][transfer none]
recall_id | the AgsRecallID, may be `NULL` |
filename | the filename or `NULL` |
effect | the effect name |

#### Returns

next matching GList, or `NULL` if not found.

[element-type AgsAudio.Recall][transfer none]

Since: 3.0.0

### ags_recall_find_type ()

    GList *
    ags_recall_find_type (GList *recall,
                          GType type);

Finds next matching recall for type. Intended to be used as iteration function.

#### Parameters

recall | the GList containing AgsRecall. | [element-type AgsAudio.Recall][transfer none]
type | the GType |

#### Returns

next matching GList, or `NULL` if not found.

[element-type AgsAudio.Recall][transfer none]

Since: 3.0.0

### ags_recall_find_template ()

    GList *
    ags_recall_find_template (GList *recall);

Finds next template, see AGS_RECALL_TEMPLATE flag. Intended to be used as iteration function.

#### Parameters

recall | the GList containing AgsRecall. | [element-type AgsAudio.Recall][transfer none]

#### Returns

next matching GList, or `NULL` if not found.

[element-type AgsAudio.Recall][transfer none]

Since: 3.0.0

### ags_recall_template_find_type ()

    GList *
    ags_recall_template_find_type (GList *recall,
                                   GType type);

Finds next matching recall for type which is a template, see AGS_RECALL_TEMPLATE flag. Intended to be used as iteration function.

#### Parameters

recall | the GList containing AgsRecall. | [element-type AgsAudio.Recall][transfer none]
type | a GType |

#### Returns

next matching GList, or `NULL` if not found.

[element-type AgsAudio.Recall][transfer none]

Since: 3.0.0

### ags_recall_template_find_all_type ()

    GList *
    ags_recall_template_find_all_type (GList *recall,
                                       ...);

Finds next matching recall for type which is a template, see AGS_RECALL_TEMPLATE flag. Intended to be used as iteration function.

#### Parameters

recall | the GList containing AgsRecall. | [element-type AgsAudio.Recall][transfer none]
... | a GType |

#### Returns

next matching GList, or `NULL` if not found.

[element-type AgsAudio.Recall][transfer none]

Since: 3.0.0

### ags_recall_find_type_with_recycling_context ()

    GList *
    ags_recall_find_type_with_recycling_context
                                   (GList *recall,
                                    GType type,
                                    GObject *recycling_context);

Finds next matching recall for type which has `recycling_context` , see AgsRecallId for further details about AgsRecyclingContext. Intended to be used as iteration function.

#### Parameters

recall | the GList containing AgsRecall. | [element-type AgsAudio.Recall][transfer none]
type | the GType |
recycling_context | the AgsRecyclingContext |

#### Returns

next matching GList, or `NULL` if not found.

[element-type AgsAudio.Recall][transfer none]

Since: 3.0.0

### ags_recall_find_recycling_context ()

    GList *
    ags_recall_find_recycling_context (GList *recall,
                                       GObject *recycling_context);

Finds next matching recall which has `recycling_context` , see AgsRecallId for further details about AgsRecyclingContext. Intended to be used as iteration function.

#### Parameters

recall | the GList containing AgsRecall. | [element-type AgsAudio.Recall][transfer none]
recycling_context | the AgsRecyclingContext |

#### Returns

next matching GList, or `NULL` if not found.

[element-type AgsAudio.Recall][transfer none]

Since: 3.0.0

### ags_recall_find_provider ()

    GList *
    ags_recall_find_provider (GList *recall,
                              GObject *provider);

Finds next matching recall for type which has `provider` . The `provider` may be either an AgsChannel or an AgsAudio object. This function tries to find the corresponding AgsRecallChannel and AgsRecallAudio objects of a AgsRecall to find. If these recalls contains the `provider` , the function will return.

#### Parameters

recall | the GList containing AgsRecall. | [element-type AgsAudio.Recall][transfer none]
provider | the GObject, either AgsAudio, AgsChannel, AgsRecycling or AgsAudioSignal |

#### Returns

next matching GList, or `NULL` if not found.

[element-type AgsAudio.Recall][transfer none]

Since: 3.0.0

### ags_recall_template_find_provider ()

    GList *
    ags_recall_template_find_provider (GList *recall,
                                       GObject *provider);

Finds provider eg. AgsAudio or AgsChannel within `recall` containig AgsRecall.

#### Parameters

recall | the GList containing AgsRecall. | [element-type AgsAudio.Recall][transfer none]
provider | the GObject as provider |

#### Returns

next matching GList, or `NULL` if not found.

[element-type AgsAudio.Recall][transfer none]

Since: 3.0.0

### ags_recall_find_provider_with_recycling_context ()

    GList *
    ags_recall_find_provider_with_recycling_context
                                   (GList *recall,
                                    GObject *provider,
                                    GObject *recycling_context);

Like `ags_recall_template_find_provider()` but given additionally `recycling_context` as search parameter.

#### Parameters

recall | the GList containing AgsRecall. | [element-type AgsAudio.Recall][transfer none]
provider | the GObject as provider |
recycling_context | the AgsRecyclingContext |

#### Returns

next matching GList, or `NULL` if not found.

[element-type AgsAudio.Recall][transfer none]

Since: 3.0.0

### ags_recall_lock_port ()

    void
    ags_recall_lock_port (AgsRecall *recall);

Locks the ports.

#### Parameters

recall | the AgsRecall |

Since: 3.0.0

### ags_recall_unlock_port ()

    void
    ags_recall_unlock_port (AgsRecall *recall);

Unlocks the ports.

#### Parameters

recall | the AgsRecall |

Since: 3.0.0

### ags_recall_new ()

    AgsRecall *
    ags_recall_new ();

Instantiate AgsRecall.

#### Returns

the new instance of AgsRecall.

Since: 3.0.0

## Types and Values

### AGS_RECALL_DEFAULT_VERSION

    #define AGS_RECALL_DEFAULT_VERSION "7.0.0"

### AGS_RECALL_DEFAULT_BUILD_ID

    #define AGS_RECALL_DEFAULT_BUILD_ID "Fri Apr 26 12:33:34 UTC 2024"

### enum AgsRecallFlags

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

#### Members

AGS_RECALL_TEMPLATE | is template |
AGS_RECALL_DEFAULT_TEMPLATE | is default template |
AGS_RECALL_HAS_OUTPUT_PORT | has output port |
AGS_RECALL_BYPASS | don't apply effect processing |
AGS_RECALL_INITIAL_RUN | initial run, first attack to audio data |
AGS_RECALL_MIDI1 | enable MIDI version 1 |
AGS_RECALL_MIDI1_CONTROL_CHANGE | enable MIDI version 1 control change |
AGS_RECALL_MIDI2 | enable MIDI version 2 |
AGS_RECALL_MIDI2_CONTROL_CHANGE | enable MIDI version 2 control change |

### enum AgsRecallNotifyDependencyMode

Modes to notify of dependencies.

#### Members

AGS_RECALL_NOTIFY_RUN | notify dependency as calling run |
AGS_RECALL_NOTIFY_AUDIO | notify dependency audio |
AGS_RECALL_NOTIFY_AUDIO_RUN | notifiy dependency audio run |
AGS_RECALL_NOTIFY_CHANNEL | notifiy dependency channel |
AGS_RECALL_NOTIFY_CHANNEL_RUN | notifiy dependency channel run |
AGS_RECALL_NOTIFY_RECALL | notifiy dependency recall |

### enum AgsRecallMidi1ControlChange

Modes to handle MIDI version 1 control change and others.

#### Members

AGS_RECALL_MIDI1_BANK_SELECT | MIDI version 1 bank select |
AGS_RECALL_MIDI1_MODULATION_WHEEL | MIDI version 1 modulation wheel |
AGS_RECALL_MIDI1_BREATH_CONTROLLER | MIDI version 1 breath controller |
AGS_RECALL_MIDI1_FOOT_CONTROLLER | MIDI version 1 foot controller |
AGS_RECALL_MIDI1_PORTAMENTO_TIME | MIDI version 1 portamento time |
AGS_RECALL_MIDI1_CHANNEL_VOLUME | MIDI version 1 channel volume |
AGS_RECALL_MIDI1_BALANCE | MIDI version 1 balance |
AGS_RECALL_MIDI1_PAN | MIDI version 1 PAN |
AGS_RECALL_MIDI1_CC_24 | MIDI version 1 control change 24 |
AGS_RECALL_MIDI1_CC_25 | MIDI version 1 control change 25 |
AGS_RECALL_MIDI1_CC_26 | MIDI version 1 control change 26 |
AGS_RECALL_MIDI1_CC_27 | MIDI version 1 control change 27 |
AGS_RECALL_MIDI1_CC_28 | MIDI version 1 control change 28 |
AGS_RECALL_MIDI1_CC_29 | MIDI version 1 control change 29 |
AGS_RECALL_MIDI1_CC_30 | MIDI version 1 control change 30 |
AGS_RECALL_MIDI1_CC_31 | MIDI version 1 control change 31 |
AGS_RECALL_MIDI1_EXPRESSION_CONTROLLER | MIDI version 1 expression controller |
AGS_RECALL_MIDI1_EFFECT_CONTROL_1 | MIDI version 1 effect control 1 |
AGS_RECALL_MIDI1_EFFECT_CONTROL_2 | MIDI version 1 effect control 2 |
AGS_RECALL_MIDI1_GENERAL_PURPOSE_CONTROLLER_1 | MIDI version 1 general purpose controller 1 |
AGS_RECALL_MIDI1_GENERAL_PURPOSE_CONTROLLER_2 | MIDI version 1 general purpose controller 2 |
AGS_RECALL_MIDI1_GENERAL_PURPOSE_CONTROLLER_3 | MIDI version 1 general purpose controller 3 |
AGS_RECALL_MIDI1_GENERAL_PURPOSE_CONTROLLER_4 | MIDI version 1 general purpose controller 4 |
AGS_RECALL_MIDI1_CHANGE_PROGRAM | MIDI version 1 change program |
AGS_RECALL_MIDI1_CHANGE_PRESSURE | MIDI version 1 change pressure |
AGS_RECALL_MIDI1_PITCH_BEND | MIDI version 1 pitch bend |
AGS_RECALL_MIDI1_SONG_POSITION | MIDI version 1 song position |
AGS_RECALL_MIDI1_SONG_SELECT | MIDI version 1 song select |
AGS_RECALL_MIDI1_TUNE_REQUEST | MIDI version 1 tune request |

### enum AgsRecallMidi2ControlChange

Modes to handle MIDI version 2 control change and others.

#### Members

AGS_RECALL_MIDI2_MIDI1_BANK_SELECT | MIDI version 2 bank select |
AGS_RECALL_MIDI2_MIDI1_MODULATION_WHEEL | MIDI version 2 modulation wheel |
AGS_RECALL_MIDI2_MIDI1_BREATH_CONTROLLER | MIDI version 2 breath controller |
AGS_RECALL_MIDI2_MIDI1_FOOT_CONTROLLER | MIDI version 2 foot controller |
AGS_RECALL_MIDI2_MIDI1_PORTAMENTO_TIME | MIDI version 2 portamento time |
AGS_RECALL_MIDI2_MIDI1_CHANNEL_VOLUME | MIDI version 2 channel volume |
AGS_RECALL_MIDI2_MIDI1_BALANCE | MIDI version 2 balance |
AGS_RECALL_MIDI2_MIDI1_PAN | MIDI version 2 PAN |
AGS_RECALL_MIDI2_MIDI1_EXPRESSION_CONTROLLER | MIDI version 2 expression controller |
AGS_RECALL_MIDI2_MIDI1_EFFECT_CONTROL_1 | MIDI version 2 effect control 1 |
AGS_RECALL_MIDI2_MIDI1_EFFECT_CONTROL_2 | MIDI version 2 effect control 2 |
AGS_RECALL_MIDI2_MIDI1_GENERAL_PURPOSE_CONTROLLER_1 | MIDI version 2 general purpose controller 1 |
AGS_RECALL_MIDI2_MIDI1_GENERAL_PURPOSE_CONTROLLER_2 | MIDI version 2 general purpose controller 2 |
AGS_RECALL_MIDI2_MIDI1_GENERAL_PURPOSE_CONTROLLER_3 | MIDI version 2 general purpose controller 3 |
AGS_RECALL_MIDI2_MIDI1_GENERAL_PURPOSE_CONTROLLER_4 | MIDI version 2 general purpose controller 4 |
AGS_RECALL_MIDI2_MIDI1_CHANGE_PROGRAM | MIDI version 2 change program |
AGS_RECALL_MIDI2_MIDI1_CHANGE_PRESSURE | MIDI version 2 change pressure |
AGS_RECALL_MIDI2_MIDI1_PITCH_BEND | MIDI version 2 pitch bend |
AGS_RECALL_MIDI2_CHANGE_PROGRAM | MIDI version 2 change program |
AGS_RECALL_MIDI2_CHANGE_PRESSURE | MIDI version 2 change pressure |
AGS_RECALL_MIDI2_PITCH_BEND | MIDI version 2 pitch bend |
AGS_RECALL_MIDI2_MODULATION | MIDI version 2 modulation |
AGS_RECALL_MIDI2_BREATH | MIDI version 2 breath |
AGS_RECALL_MIDI2_PITCH_7_25 | MIDI version 2 pitch 7.25 |
AGS_RECALL_MIDI2_VOLUME | MIDI version 2 volume |
AGS_RECALL_MIDI2_BALANCE | MIDI version 2 balance |
AGS_RECALL_MIDI2_PAN | MIDI version 2 pan |
AGS_RECALL_MIDI2_EXPRESSION | MIDI version 2 expression |
AGS_RECALL_MIDI2_CC_24 | MIDI version 2 control change 24 |
AGS_RECALL_MIDI2_CC_25 | MIDI version 2 control change 25 |
AGS_RECALL_MIDI2_CC_26 | MIDI version 2 control change 26 |
AGS_RECALL_MIDI2_CC_27 | MIDI version 2 control change 27 |
AGS_RECALL_MIDI2_CC_28 | MIDI version 2 control change 28 |
AGS_RECALL_MIDI2_CC_29 | MIDI version 2 control change 29 |
AGS_RECALL_MIDI2_CC_30 | MIDI version 2 control change 30 |
AGS_RECALL_MIDI2_CC_31 | MIDI version 2 control change 31 |
AGS_RECALL_MIDI2_SOUND_VARIATION | MIDI version 2 sound variation |
AGS_RECALL_MIDI2_TIMBRE | MIDI version 2 timbre |
AGS_RECALL_MIDI2_RELEASE | MIDI version 2 release |
AGS_RECALL_MIDI2_ATTACK | MIDI version 2 attack |
AGS_RECALL_MIDI2_BRIGHTNESS | MIDI version 2 brightness |
AGS_RECALL_MIDI2_DECAY | MIDI version 2 decay |
AGS_RECALL_MIDI2_VIBRATO_RATE | MIDI version 2 vibrato rate |
AGS_RECALL_MIDI2_VIBRATO_DEPTH | MIDI version 2 vibrato depth |
AGS_RECALL_MIDI2_VIBRATO_DELAY | MIDI version 2 vibrato delay |
AGS_RECALL_MIDI2_SOUND_CONTROLLER_10 | MIDI version 2 sound controller 10 |
AGS_RECALL_MIDI2_EFFECTS_1 | MIDI version 2 effects 1 |
AGS_RECALL_MIDI2_EFFECTS_2 | MIDI version 2 effects 2 |
AGS_RECALL_MIDI2_EFFECTS_3 | MIDI version 2 effects 3 |
AGS_RECALL_MIDI2_EFFECTS_4 | MIDI version 2 effects 4 |
AGS_RECALL_MIDI2_EFFECTS_5 | MIDI version 2 effects 5 |

### struct AgsRecallHandler

    struct AgsRecallHandler {
      const gchar *signal_name;
      GCallback callback;
      GObject *data;
    };

A AgsRecallHandler acts as a callback definition

#### Members

const gchar *`signal_name`; | the signal to listen |
GCallback `callback`; | the callback to use |
GObject *`data`; | user data to pass |

## Property Details

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

      “audio-channel”            guint

The nth audio channel.

Owner: AgsRecall

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“automation-port”` property

      “automation-port”          gpointer

The AgsPort doing automation.

[transfer full]

Owner: AgsRecall

Flags: Read / Write

Since: 3.0.0

### The `“buffer-size”` property

      “buffer-size”              guint

The buffer size.

Owner: AgsRecall

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“child”` property

      “child”                    gpointer

The child AgsRecall.

[transfer full]

Owner: AgsRecall

Flags: Read / Write

Since: 3.0.0

### The `“child-type”` property

      “child-type”               GType *

The type of child AgsRecall.

Owner: AgsRecall

Flags: Read / Write

Allowed values: void

Since: 3.0.0

### The `“effect”` property

      “effect”                   char *

The plugin's effect.

Owner: AgsRecall

Flags: Read / Write

Default value: NULL

Since: 3.0.0

### The `“effect-index”` property

      “effect-index”             guint

The effect's index.

Owner: AgsRecall

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“filename”` property

      “filename”                 char *

The plugin's filename.

Owner: AgsRecall

Flags: Read / Write

Default value: NULL

Since: 3.0.0

### The `“format”` property

      “format”                   guint

The format.

Owner: AgsRecall

Flags: Read / Write

Default value: 0

Since: 3.0.0

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

      “input-soundcard”          GObject *

The assigned soundcard.

Owner: AgsRecall

Flags: Read / Write

Since: 3.0.0

### The `“input-soundcard-channel”` property

      “input-soundcard-channel”  int

The input soundcard channel.

Owner: AgsRecall

Flags: Read / Write

Allowed values: >= -1

Default value: -1

Since: 3.0.0

### The `“line”` property

      “line”                     guint

The nth line.

Owner: AgsRecall

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“midi1-cc-to-port-specifier”` property

      “midi1-cc-to-port-specifier” gpointer

The MIDI version 1 control change to port specifier.

[transfer container]

Owner: AgsRecall

Flags: Read / Write

Since: 7.0.0

### The `“midi1-cc-to-value”` property

      “midi1-cc-to-value”        gpointer

The MIDI version 1 control change to value.

[transfer container]

Owner: AgsRecall

Flags: Read / Write

Since: 7.0.0

### The `“midi2-cc-to-port-specifier”` property

      “midi2-cc-to-port-specifier” gpointer

The MIDI version 1 control change to port specifier.

[transfer container]

Owner: AgsRecall

Flags: Read / Write

Since: 7.0.0

### The `“midi2-cc-to-value”` property

      “midi2-cc-to-value”        gpointer

The MIDI version 1 control change to value.

[transfer container]

Owner: AgsRecall

Flags: Read / Write

Since: 7.0.0

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

      “output-soundcard”         GObject *

The assigned soundcard.

Owner: AgsRecall

Flags: Read / Write

Since: 3.0.0

### The `“output-soundcard-channel”` property

      “output-soundcard-channel” int

The output soundcard channel.

Owner: AgsRecall

Flags: Read / Write

Allowed values: >= -1

Default value: -1

Since: 3.0.0

### The `“pad”` property

      “pad”                      guint

The nth pad.

Owner: AgsRecall

Flags: Read / Write

Default value: 0

Since: 3.0.0

### The `“parent”` property

      “parent”                   AgsRecall *

The parent AgsRecall.

Owner: AgsRecall

Flags: Read / Write

Since: 3.0.0

### The `“port”` property

      “port”                     gpointer

The assigned AgsPort

[transfer full]

Owner: AgsRecall

Flags: Read / Write

Since: 3.0.0

### The `“recall-container”` property

      “recall-container”         AgsRecallContainer *

The AgsRecallContainer packed into.

Owner: AgsRecall

Flags: Read / Write

Since: 3.0.0

### The `“recall-dependency”` property

      “recall-dependency”        gpointer

The AgsRecallDependency.

[transfer full]

Owner: AgsRecall

Flags: Read / Write

Since: 3.0.0

### The `“recall-id”` property

      “recall-id”                AgsRecallID *

The AgsRecallID running in.

Owner: AgsRecall

Flags: Read / Write

Since: 3.0.0

### The `“samplerate”` property

      “samplerate”               guint

The samplerate.

Owner: AgsRecall

Flags: Read / Write

Default value: 0

Since: 3.0.0

## Signal Details

### The `“automate”` signal

    void
    user_function (AgsRecall *recall,
                   gpointer   user_data)

The ::automate signal notifies about running automation and is normally called during ::run-pre.

#### Parameters

recall | the AgsRecall to play |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“cancel”` signal

    void
    user_function (AgsRecall *recall,
                   gpointer   user_data)

The ::cancel signal notifies about cancelling playback.

#### Parameters

recall | the AgsRecall to cancel playback |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“check-rt-data”` signal

    void
    user_function (AgsRecall *recall,
                   gpointer   user_data)

The ::check-rt-data signal notifies about initializing stage 0.

#### Parameters

recall | the AgsRecall to initialize |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“child-added”` signal

    void
    user_function (AgsRecall *recall,
                   GObject   *child,
                   gpointer   user_data)

The ::child-added signal notifies about children added.

#### Parameters

recall | the AgsRecall to add the child |
child | the AgsRecall to add |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“do-feedback”` signal

    void
    user_function (AgsRecall *recall,
                   gpointer   user_data)

The ::do-feedback signal notifies about running stage 2.

#### Parameters

recall | the AgsRecall to play |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“done”` signal

    void
    user_function (AgsRecall *recall,
                   gpointer   user_data)

The ::done signal notifies about stopping playback.

#### Parameters

recall | the AgsRecall to finish playback |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“duplicate”` signal

    GObject*
    user_function (AgsRecall *recall,
                   GObject   *recall_id,
                   gpointer   n_params,
                   gpointer   parameter_name,
                   gpointer   value,
                   gpointer   user_data)

The ::duplicate signal notifies about instantiating.

#### Parameters

recall | the AgsRecall to duplicate |
recall_id | the assigned AgsRecallID |
n_params | pointer to array length |
parameter_name | parameter name string vector |
value | the GValue array |
user_data | user data set when the signal handler was connected. |

#### Returns

the new AgsRecall instance.

[transfer full]

Flags: Run Last

Since: 3.0.0

### The `“feed-input-queue”` signal

    void
    user_function (AgsRecall *recall,
                   gpointer   user_data)

The ::feed-input-queue signal notifies about running feed input queue.

#### Parameters

recall | the AgsRecall to play |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“feed-output-queue”` signal

    void
    user_function (AgsRecall *recall,
                   gpointer   user_data)

The ::feed-output-queue signal notifies about running feed output queue.

#### Parameters

recall | the AgsRecall to play |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“jack-metadata”` signal

    void
    user_function (AgsRecall *recall,
                   gpointer   user_data)

The ::jack-metadata signal notifies about checking JACK metadata property change.

#### Parameters

recall | the AgsRecall to finish playback |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“midi1-control-change”` signal

    void
    user_function (AgsRecall *recall,
                   gpointer   user_data)

The ::midi1-control change event notifies about parsing MIDI version 1.0 control change.

#### Parameters

recall | the AgsRecall |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 7.0.0

### The `“midi2-control-change”` signal

    void
    user_function (AgsRecall *recall,
                   gpointer   user_data)

The ::midi2-control change event notifies about parsing MIDI version 2.0 control change.

#### Parameters

recall | the AgsRecall |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 7.0.0

### The `“notify-dependency”` signal

    void
    user_function (AgsRecall *recall,
                   guint      dependency,
                   gboolean   increase,
                   gpointer   user_data)

The ::notify-dependency signal notifies about dependency added.

#### Parameters

recall | the AgsRecall to notify |
dependency | the kind of dependency |
increase | if `TRUE` increase dependency count, else if `FALSE` decrease |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“resolve-dependency”` signal

    void
    user_function (AgsRecall *recall,
                   gpointer   user_data)

The ::resolve-dependency signal notifies about resolving dependency.

#### Parameters

recall | the AgsRecall to resolve |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“run-init-inter”` signal

    void
    user_function (AgsRecall *recall,
                   gpointer   user_data)

The ::run-init-inter signal notifies about initializing stage 1.

#### Parameters

recall | the AgsRecall to initialize |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“run-init-post”` signal

    void
    user_function (AgsRecall *recall,
                   gpointer   user_data)

The ::run-init-post signal notifies about initializing stage 2.

#### Parameters

recall | the AgsRecall to initialize |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“run-init-pre”` signal

    void
    user_function (AgsRecall *recall,
                   gpointer   user_data)

The ::run-init-pre signal notifies about initializing stage 0.

#### Parameters

recall | the AgsRecall to initialize |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“run-inter”` signal

    void
    user_function (AgsRecall *recall,
                   gpointer   user_data)

The ::run-inter signal notifies about running stage 1.

#### Parameters

recall | the AgsRecall to play |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“run-post”` signal

    void
    user_function (AgsRecall *recall,
                   gpointer   user_data)

The ::run-post signal notifies about running stage 2.

#### Parameters

recall | the AgsRecall to play |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“run-pre”` signal

    void
    user_function (AgsRecall *recall,
                   gpointer   user_data)

The ::run-pre signal notifies about running stage 0.

#### Parameters

recall | the AgsRecall to play |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0

### The `“stop-persistent”` signal

    void
    user_function (AgsRecall *recall,
                   gpointer   user_data)

The ::stop-persistent signal notifies about definitively stopping playback.

#### Parameters

recall | the AgsRecall stop playback |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

Since: 3.0.0