## AgsFxDssiAudio

AgsFxDssiAudio — fx dssi audio

## Stability Level

Stable, unless otherwise indicated

## Functions

#define | AGS_FX_DSSI_AUDIO_SCOPE_DATA()
#define | AGS_FX_DSSI_AUDIO_SCOPE_DATA_GET_STRCT_MUTEX()
#define | AGS_FX_DSSI_AUDIO_CHANNEL_DATA()
#define | AGS_FX_DSSI_AUDIO_CHANNEL_DATA_GET_STRCT_MUTEX()
#define | AGS_FX_DSSI_AUDIO_INPUT_DATA()
#define | AGS_FX_DSSI_AUDIO_INPUT_DATA_GET_STRCT_MUTEX()
AgsFxDssiAudioScopeData * | ags_fx_dssi_audio_scope_data_alloc ()
void | ags_fx_dssi_audio_scope_data_free ()
AgsFxDssiAudioChannelData * | ags_fx_dssi_audio_channel_data_alloc ()
void | ags_fx_dssi_audio_channel_data_free ()
AgsFxDssiAudioInputData * | ags_fx_dssi_audio_input_data_alloc ()
void | ags_fx_dssi_audio_input_data_free ()
gboolean | ags_fx_dssi_audio_test_flags ()
void | ags_fx_dssi_audio_set_flags ()
void | ags_fx_dssi_audio_unset_flags ()
void | ags_fx_dssi_audio_load_plugin ()
void | ags_fx_dssi_audio_load_port ()
void | ags_fx_dssi_audio_change_program ()
AgsFxDssiAudio * | ags_fx_dssi_audio_new ()

## Types and Values

enum | AgsFxDssiAudioFlags
struct | AgsFxDssiAudioScopeData
struct | AgsFxDssiAudioChannelData
struct | AgsFxDssiAudioInputData

## Object Hierarchy

        GObject
        ╰── AgsRecall
            ╰── AgsRecallAudio
                ╰── AgsFxNotationAudio
                    ╰── AgsFxDssiAudio

## Includes

    #include <ags/audio/fx/ags_fx_dssi_audio.h>

## Description

The AgsFxDssiAudio class provides ports to the effect processor.

## Functions

### AGS_FX_DSSI_AUDIO_SCOPE_DATA()

    #define AGS_FX_DSSI_AUDIO_SCOPE_DATA(ptr) ((AgsFxDssiAudioScopeData *) (ptr))

### AGS_FX_DSSI_AUDIO_SCOPE_DATA_GET_STRCT_MUTEX()

    #define AGS_FX_DSSI_AUDIO_SCOPE_DATA_GET_STRCT_MUTEX(ptr) (&(((AgsFxDssiAudioScopeData *)(ptr))->strct_mutex))

### AGS_FX_DSSI_AUDIO_CHANNEL_DATA()

    #define AGS_FX_DSSI_AUDIO_CHANNEL_DATA(ptr) ((AgsFxDssiAudioChannelData *) (ptr))

### AGS_FX_DSSI_AUDIO_CHANNEL_DATA_GET_STRCT_MUTEX()

    #define AGS_FX_DSSI_AUDIO_CHANNEL_DATA_GET_STRCT_MUTEX(ptr) (&(((AgsFxDssiAudioChannelData *)(ptr))->strct_mutex))

### AGS_FX_DSSI_AUDIO_INPUT_DATA()

    #define AGS_FX_DSSI_AUDIO_INPUT_DATA(ptr) ((AgsFxDssiAudioInputData *) (ptr))

### AGS_FX_DSSI_AUDIO_INPUT_DATA_GET_STRCT_MUTEX()

    #define AGS_FX_DSSI_AUDIO_INPUT_DATA_GET_STRCT_MUTEX(ptr) (&(((AgsFxDssiAudioInputData *)(ptr))->strct_mutex))

### ags_fx_dssi_audio_scope_data_alloc ()

    AgsFxDssiAudioScopeData *
    ags_fx_dssi_audio_scope_data_alloc ();

Allocate AgsFxDssiAudioScopeData

#### Returns

the new AgsFxDssiAudioScopeData

Since: 3.3.0

### ags_fx_dssi_audio_scope_data_free ()

    void
    ags_fx_dssi_audio_scope_data_free (AgsFxDssiAudioScopeData *scope_data);

Free `scope_data` .

#### Parameters

scope_data | the AgsFxDssiAudioScopeData |

Since: 3.3.0

### ags_fx_dssi_audio_channel_data_alloc ()

    AgsFxDssiAudioChannelData *
    ags_fx_dssi_audio_channel_data_alloc ();

Allocate AgsFxDssiAudioChannelData

#### Returns

the new AgsFxDssiAudioChannelData

Since: 3.3.0

### ags_fx_dssi_audio_channel_data_free ()

    void
    ags_fx_dssi_audio_channel_data_free (AgsFxDssiAudioChannelData *channel_data);

Free `channel_data` .

#### Parameters

channel_data | the AgsFxDssiAudioChannelData |

Since: 3.3.0

### ags_fx_dssi_audio_input_data_alloc ()

    AgsFxDssiAudioInputData *
    ags_fx_dssi_audio_input_data_alloc ();

Allocate AgsFxDssiAudioInputData

#### Returns

the new AgsFxDssiAudioInputData

Since: 3.3.0

### ags_fx_dssi_audio_input_data_free ()

    void
    ags_fx_dssi_audio_input_data_free (AgsFxDssiAudioInputData *input_data);

Free `input_data` .

#### Parameters

input_data | the AgsFxDssiAudioInputData |

Since: 3.3.0

### ags_fx_dssi_audio_test_flags ()

    gboolean
    ags_fx_dssi_audio_test_flags (AgsFxDssiAudio *fx_dssi_audio,
                                  guint flags);

Test `flags` of `fx_dssi_audio` .

#### Parameters

fx_dssi_audio | the AgsFxDssiAudio |
flags | the flags |

#### Returns

`TRUE` on success, otherwise `FALSE`

Since: 3.3.0

### ags_fx_dssi_audio_set_flags ()

    void
    ags_fx_dssi_audio_set_flags (AgsFxDssiAudio *fx_dssi_audio,
                                 guint flags);

Set `flags` of `fx_dssi_audio` .

#### Parameters

fx_dssi_audio | the AgsFxDssiAudio |
flags | the flags |

Since: 3.3.0

### ags_fx_dssi_audio_unset_flags ()

    void
    ags_fx_dssi_audio_unset_flags (AgsFxDssiAudio *fx_dssi_audio,
                                   guint flags);

Unset `flags` of `fx_dssi_audio` .

#### Parameters

fx_dssi_audio | the AgsFxDssiAudio |
flags | the flags |

Since: 3.3.0

### ags_fx_dssi_audio_load_plugin ()

    void
    ags_fx_dssi_audio_load_plugin (AgsFxDssiAudio *fx_dssi_audio);

Load plugin of `fx_dssi_audio` .

#### Parameters

fx_dssi_audio | the AgsFxDssiAudio |

Since: 3.3.0

### ags_fx_dssi_audio_load_port ()

    void
    ags_fx_dssi_audio_load_port (AgsFxDssiAudio *fx_dssi_audio);

Load port of `fx_dssi_audio` .

#### Parameters

fx_dssi_audio | the AgsFxDssiAudio |

Since: 3.3.0

### ags_fx_dssi_audio_change_program ()

    void
    ags_fx_dssi_audio_change_program (AgsFxDssiAudio *fx_dssi_audio,
                                      guint bank_index,
                                      guint program_index);

Change program of `fx_dssi_audio` .

#### Parameters

fx_dssi_audio | the AgsFxDssiAudio |
bank_index | the bank index |
program_index | the program index |

Since: 3.3.0

### ags_fx_dssi_audio_new ()

    AgsFxDssiAudio *
    ags_fx_dssi_audio_new (AgsAudio *audio);

Create a new instance of AgsFxDssiAudio

#### Parameters

audio | the AgsAudio |

#### Returns

the new AgsFxDssiAudio

Since: 3.3.0

## Types and Values

### enum AgsFxDssiAudioFlags

#### Members

AGS_FX_DSSI_AUDIO_LIVE_INSTRUMENT |  |

### struct AgsFxDssiAudioScopeData

    struct AgsFxDssiAudioScopeData {
      GRecMutex strct_mutex;

      gpointer parent;

      guint audio_channels;

      AgsFxDssiAudioChannelData **channel_data;
    };

### struct AgsFxDssiAudioChannelData

    struct AgsFxDssiAudioChannelData {
      GRecMutex strct_mutex;

      gpointer parent;

      guint event_count;

      LADSPA_Data *output;
      LADSPA_Data *input;

      LADSPA_Handle ladspa_handle;

      AgsFxDssiAudioInputData* input_data[AGS_SEQUENCER_MAX_MIDI_KEYS];
    };

### struct AgsFxDssiAudioInputData

    struct AgsFxDssiAudioInputData {
      GRecMutex strct_mutex;

      gpointer parent;

      LADSPA_Data *output;
      LADSPA_Data *input;

      LADSPA_Handle ladspa_handle;

      snd_seq_event_t *event_buffer;
      guint key_on;
    };