## AgsFxBufferChannel

AgsFxBufferChannel — fx buffer channel

## Stability Level

Stable, unless otherwise indicated

## Functions

#define | AGS_FX_BUFFER_CHANNEL_INPUT_DATA()
#define | AGS_FX_BUFFER_CHANNEL_INPUT_DATA_GET_STRCT_MUTEX()
AgsFxBufferChannelInputData * | ags_fx_buffer_channel_input_data_alloc ()
void | ags_fx_buffer_channel_input_data_free ()
GRecMutex * | ags_fx_buffer_channel_input_data_get_strct_mutex ()
gpointer | ags_fx_buffer_channel_input_get_parent ()
gpointer | ags_fx_buffer_channel_input_get_destination ()
AgsFxBufferChannelInputData * | ags_fx_buffer_channel_get_input_data ()
AgsFxBufferChannel * | ags_fx_buffer_channel_new ()

## Types and Values

struct | AgsFxBufferChannelInputData

## Object Hierarchy

        GObject
        ╰── AgsRecall
            ╰── AgsRecallChannel
                ╰── AgsFxBufferChannel

## Includes

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

## Description

The AgsFxBufferChannel class provides ports to the effect processor.

## Functions

### AGS_FX_BUFFER_CHANNEL_INPUT_DATA()

    #define AGS_FX_BUFFER_CHANNEL_INPUT_DATA(ptr) ((AgsFxBufferChannelInputData *) (ptr))

### AGS_FX_BUFFER_CHANNEL_INPUT_DATA_GET_STRCT_MUTEX()

    #define AGS_FX_BUFFER_CHANNEL_INPUT_DATA_GET_STRCT_MUTEX(ptr) (&(((AgsFxBufferChannelInputData *)(ptr))->strct_mutex))

### ags_fx_buffer_channel_input_data_alloc ()

    AgsFxBufferChannelInputData *
    ags_fx_buffer_channel_input_data_alloc
                                   ();

Allocate AgsFxBufferChannelInputData

#### Returns

the new AgsFxBufferChannelInputData.

[type gpointer][transfer full]

Since: 3.3.0

### ags_fx_buffer_channel_input_data_free ()

    void
    ags_fx_buffer_channel_input_data_free (AgsFxBufferChannelInputData *input_data);

Free `input_data` .

#### Parameters

input_data | the AgsFxBufferChannelInputData. | [type gpointer][transfer full]

Since: 3.3.0

### ags_fx_buffer_channel_input_data_get_strct_mutex ()

    GRecMutex *
    ags_fx_buffer_channel_input_data_get_strct_mutex
                                   (AgsFxBufferChannelInputData *input_data);

Get structure mutex.

#### Parameters

input_data | the AgsFxBufferChannelInputData. | [type gpointer][transfer none]

#### Returns

the GRecMutex to lock `input_data` .

[type gpointer][transfer none]

Since: 3.3.0

### ags_fx_buffer_channel_input_get_parent ()

    gpointer
    ags_fx_buffer_channel_input_get_parent
                                   (AgsFxBufferChannelInputData *input_data);

Get parent of `input_data` .

#### Parameters

input_data | the AgsFxBufferChannelInputData. | [type gpointer][transfer none]

#### Returns

the parent.

[type gpointer][transfer none]

Since: 3.3.0

### ags_fx_buffer_channel_input_get_destination ()

    gpointer
    ags_fx_buffer_channel_input_get_destination
                                   (AgsFxBufferChannelInputData *input_data);

Get destination of `input_data` .

#### Parameters

input_data | the AgsFxBufferChannelInputData. | [type gpointer][transfer none]

#### Returns

the destination.

[element-type AgsAudio.Recycling AgsAudio.AudioSignal][transfer none]

Since: 3.3.0

### ags_fx_buffer_channel_get_input_data ()

    AgsFxBufferChannelInputData *
    ags_fx_buffer_channel_get_input_data (AgsFxBufferChannel *fx_buffer_channel,
                                          gint sound_scope);

Get input data from `fx_buffer_channel` by `sound_scope` .

#### Parameters

fx_buffer_channel | the AgsFxBufferChannel |
sound_scope | the sound scope |

#### Returns

the matching AgsFxBufferChannelInputData.

[type gpointer][transfer none]

Since: 3.3.0

### ags_fx_buffer_channel_new ()

    AgsFxBufferChannel *
    ags_fx_buffer_channel_new (AgsChannel *channel);

Create a new instance of AgsFxBufferChannel

#### Parameters

channel | the AgsChannel |

#### Returns

the new AgsFxBufferChannel

Since: 3.3.0

## Types and Values

### struct AgsFxBufferChannelInputData

    struct AgsFxBufferChannelInputData {
      GRecMutex strct_mutex;

      gpointer parent;

      GHashTable *destination;
      GHashTable *resample_cache;
    };