AgsAudioSignal

AgsAudioSignal — Contains the audio data and its alignment

Stability Level

Stable, unless otherwise indicated

Functions

#define AGS_AUDIO_SIGNAL_GET_OBJ_MUTEX()
#define AGS_AUDIO_SIGNAL_GET_STREAM_MUTEX()
GRecMutex * ags_audio_signal_get_obj_mutex ()
void ags_audio_signal_stream_lock ()
void ags_audio_signal_stream_unlock ()
gboolean ags_audio_signal_test_flags ()
void ags_audio_signal_set_flags ()
void ags_audio_signal_unset_flags ()
void * ags_stream_alloc ()
void ags_stream_free ()
void * ags_stream_slice_alloc ()
void ags_stream_slice_free ()
GObject * ags_audio_signal_get_recycling ()
void ags_audio_signal_set_recycling ()
GObject * ags_audio_signal_get_output_soundcard ()
void ags_audio_signal_set_output_soundcard ()
GObject * ags_audio_signal_get_input_soundcard ()
void ags_audio_signal_set_input_soundcard ()
guint ags_audio_signal_get_samplerate ()
void ags_audio_signal_set_samplerate ()
guint ags_audio_signal_get_buffer_size ()
void ags_audio_signal_set_buffer_size ()
guint ags_audio_signal_get_format ()
void ags_audio_signal_set_format ()
GList * ags_audio_signal_get_note ()
void ags_audio_signal_set_note ()
void ags_audio_signal_add_note ()
void ags_audio_signal_remove_note ()
GList * ags_audio_signal_get_stream ()
void ags_audio_signal_set_stream ()
void ags_audio_signal_refresh_data ()
void ags_audio_signal_add_stream ()
void ags_audio_signal_stream_resize ()
void ags_audio_signal_stream_safe_resize ()
void ags_audio_signal_clear ()
void ags_audio_signal_duplicate_stream ()
void ags_audio_signal_feed ()
void ags_audio_signal_feed_extended ()
void ags_audio_signal_open_feed ()
void ags_audio_signal_continue_feed ()
void ags_audio_signal_close_feed ()
guint ags_audio_signal_get_length_till_current ()
gboolean ags_audio_signal_contains_note ()
AgsAudioSignal * ags_audio_signal_get_template ()
GList * ags_audio_signal_get_rt_template ()
GList * ags_audio_signal_find_stream_current ()
GList * ags_audio_signal_find_by_recall_id ()
gboolean ags_audio_signal_is_active ()
AgsAudioSignal * ags_audio_signal_new ()
AgsAudioSignal * ags_audio_signal_new_with_length ()

Types and Values

Includes

#include <ags/audio/ags_audio_signal.h>

Description

AgsAudioSignal organizes audio data within a GList whereby data pointing to the buffer.

Functions

AGS_AUDIO_SIGNAL_GET_OBJ_MUTEX()

#define AGS_AUDIO_SIGNAL_GET_OBJ_MUTEX(obj) (&(((AgsAudioSignal *) obj)->obj_mutex))

AGS_AUDIO_SIGNAL_GET_STREAM_MUTEX()

#define AGS_AUDIO_SIGNAL_GET_STREAM_MUTEX(obj) (&(((AgsAudioSignal *) obj)->stream_mutex))

ags_audio_signal_get_obj_mutex ()

GRecMutex *
ags_audio_signal_get_obj_mutex (AgsAudioSignal *audio_signal);

Get object mutex.

Parameters

audio_signal

the AgsAudioSignal

 

Returns

the GRecMutex to lock audio_signal

Since: 3.1.0


ags_audio_signal_stream_lock ()

void
ags_audio_signal_stream_lock (AgsAudioSignal *audio_signal);

Lock stream mutex.

Parameters

audio_signal

the AgsAudioSignal

 

Since: 3.1.0


ags_audio_signal_stream_unlock ()

void
ags_audio_signal_stream_unlock (AgsAudioSignal *audio_signal);

Unlock stream mutex.

Parameters

audio_signal

the AgsAudioSignal

 

Since: 3.1.0


ags_audio_signal_test_flags ()

gboolean
ags_audio_signal_test_flags (AgsAudioSignal *audio_signal,
                             guint flags);

Test flags to be set on audio_signal .

Parameters

audio_signal

the AgsAudioSignal

 

flags

the flags

 

Returns

TRUE if flags are set, else FALSE

Since: 3.0.0


ags_audio_signal_set_flags ()

void
ags_audio_signal_set_flags (AgsAudioSignal *audio_signal,
                            guint flags);

Enable a feature of audio_signal .

Parameters

audio_signal

the AgsAudioSignal

 

flags

see AgsAudioSignalFlags

 

Since: 3.0.0


ags_audio_signal_unset_flags ()

void
ags_audio_signal_unset_flags (AgsAudioSignal *audio_signal,
                              guint flags);

Disable a feature of audio_signal .

Parameters

audio_signal

the AgsAudioSignal

 

flags

see AgsAudioSignalFlags

 

Since: 3.0.0


ags_stream_alloc ()

void *
ags_stream_alloc (guint buffer_size,
                  guint format);

Allocs an audio buffer.

Parameters

buffer_size

the buffer size

 

format

the format

 

Returns

the audio data array

Since: 3.0.0


ags_stream_free ()

void
ags_stream_free (void *buffer);

Frees an audio buffer.

Parameters

buffer

the buffer

 

Since: 3.0.0


ags_stream_slice_alloc ()

void *
ags_stream_slice_alloc (guint buffer_size,
                        guint format);

Allocs an audio buffer.

Parameters

buffer_size

the buffer size

 

format

the format

 

Returns

the audio data array

Since: 3.3.0


ags_stream_slice_free ()

void
ags_stream_slice_free (guint buffer_size,
                       guint format,
                       void *buffer);

Frees an audio buffer.

Parameters

buffer_size

the buffer size

 

format

the format

 

buffer

the buffer

 

Since: 3.3.0


ags_audio_signal_get_recycling ()

GObject *
ags_audio_signal_get_recycling (AgsAudioSignal *audio_signal);

Get recycling.

Parameters

audio_signal

the AgsAudioSignal

 

Returns

the AgsRecycling.

[transfer full]

Since: 3.1.0


ags_audio_signal_set_recycling ()

void
ags_audio_signal_set_recycling (AgsAudioSignal *audio_signal,
                                GObject *recycling);

Set recycling.

Parameters

audio_signal

the AgsAudioSignal

 

recycling

the AgsRecycling

 

Since: 3.1.0


ags_audio_signal_get_output_soundcard ()

GObject *
ags_audio_signal_get_output_soundcard (AgsAudioSignal *audio_signal);

Get the output soundcard object of audio_signal .

Parameters

audio_signal

the AgsAudioSignal

 

Returns

the output soundcard.

[transfer full]

Since: 3.1.0


ags_audio_signal_set_output_soundcard ()

void
ags_audio_signal_set_output_soundcard (AgsAudioSignal *audio_signal,
                                       GObject *output_soundcard);

Set the output soundcard object of audio_signal .

Parameters

audio_signal

the AgsAudioSignal

 

output_soundcard

the GObject implementing AgsSoundcard

 

Since: 3.0.0


ags_audio_signal_get_input_soundcard ()

GObject *
ags_audio_signal_get_input_soundcard (AgsAudioSignal *audio_signal);

Get the input soundcard object of audio_signal .

Parameters

audio_signal

the AgsAudioSignal

 

Returns

the input soundcard.

[transfer full]

Since: 3.1.0


ags_audio_signal_set_input_soundcard ()

void
ags_audio_signal_set_input_soundcard (AgsAudioSignal *audio_signal,
                                      GObject *input_soundcard);

Set the input soundcard object of audio_signal .

Parameters

audio_signal

an AgsAudioSignal

 

input_soundcard

the GObject implementing AgsSoundcard

 

Since: 3.0.0


ags_audio_signal_get_samplerate ()

guint
ags_audio_signal_get_samplerate (AgsAudioSignal *audio_signal);

Gets samplerate.

Parameters

audio_signal

the AgsAudioSignal

 

Returns

the samplerate

Since: 3.1.0


ags_audio_signal_set_samplerate ()

void
ags_audio_signal_set_samplerate (AgsAudioSignal *audio_signal,
                                 guint samplerate);

Set samplerate.

Parameters

audio_signal

the AgsAudioSignal

 

samplerate

the samplerate

 

Since: 3.0.0


ags_audio_signal_get_buffer_size ()

guint
ags_audio_signal_get_buffer_size (AgsAudioSignal *audio_signal);

Gets buffer size.

Parameters

audio_signal

the AgsAudioSignal

 

Returns

the buffer size

Since: 3.1.0


ags_audio_signal_set_buffer_size ()

void
ags_audio_signal_set_buffer_size (AgsAudioSignal *audio_signal,
                                  guint buffer_size);

Set buffer size.

Parameters

audio_signal

the AgsAudioSignal

 

buffer_size

the buffer size

 

Since: 3.0.0


ags_audio_signal_get_format ()

guint
ags_audio_signal_get_format (AgsAudioSignal *audio_signal);

Gets format.

Parameters

audio_signal

the AgsAudioSignal

 

Returns

the format

Since: 3.1.0


ags_audio_signal_set_format ()

void
ags_audio_signal_set_format (AgsAudioSignal *audio_signal,
                             guint format);

Set format.

Parameters

audio_signal

the AgsAudioSignal

 

format

the format

 

Since: 3.0.0


ags_audio_signal_get_note ()

GList *
ags_audio_signal_get_note (AgsAudioSignal *audio_signal);

Get note.

Parameters

audio_signal

the AgsAudioSignal

 

Returns

the GList containig AgsNote.

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

Since: 3.1.0


ags_audio_signal_set_note ()

void
ags_audio_signal_set_note (AgsAudioSignal *audio_signal,
                           GList *note);

Set note by replacing existing.

Parameters

audio_signal

the AgsAudioSignal

 

note

the GList containing AgsNote.

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

Since: 3.1.0


ags_audio_signal_add_note ()

void
ags_audio_signal_add_note (AgsAudioSignal *audio_signal,
                           GObject *note);

Add note to audio_signal .

Parameters

audio_signal

the AgsAudioSignal

 

note

the AgsNote

 

Since: 3.0.0


ags_audio_signal_remove_note ()

void
ags_audio_signal_remove_note (AgsAudioSignal *audio_signal,
                              GObject *note);

Remove note from audio_signal .

Parameters

audio_signal

the AgsAudioSignal

 

note

the AgsNote

 

Since: 3.0.0


ags_audio_signal_get_stream ()

GList *
ags_audio_signal_get_stream (AgsAudioSignal *audio_signal);

Get stream.

Parameters

audio_signal

the AgsAudioSignal

 

Returns

the GList containig audio data.

[element-type guint8][transfer none]

Since: 3.8.11


ags_audio_signal_set_stream ()

void
ags_audio_signal_set_stream (AgsAudioSignal *audio_signal,
                             GList *stream);

Set stream by replacing existing.

Parameters

audio_signal

the AgsAudioSignal

 

stream

the GList containing audio data.

[element-type guint8][transfer full]

Since: 3.8.11


ags_audio_signal_refresh_data ()

void
ags_audio_signal_refresh_data (AgsAudioSignal *audio_signal);

ags_audio_signal_add_stream ()

void
ags_audio_signal_add_stream (AgsAudioSignal *audio_signal);

Adds a buffer at the end of the stream.

Parameters

audio_signal

the AgsAudioSignal

 

Since: 3.0.0


ags_audio_signal_stream_resize ()

void
ags_audio_signal_stream_resize (AgsAudioSignal *audio_signal,
                                guint length);

Resize stream of audio_signal to length number of buffers.

Parameters

audio_signal

the AgsAudioSignal

 

length

the new length

 

Since: 3.0.0


ags_audio_signal_stream_safe_resize ()

void
ags_audio_signal_stream_safe_resize (AgsAudioSignal *audio_signal,
                                     guint length);

Resize stream of audio_signal to length number of buffers. But doesn't shrink more than the current stream position.

Parameters

audio_signal

the AgsAudioSignal

 

length

the new length

 

Since: 3.0.0


ags_audio_signal_clear ()

void
ags_audio_signal_clear (AgsAudioSignal *audio_signal);

Clear audio_signal .

Parameters

audio_signal

the AgsAudioSignal

 

Since: 3.4.1


ags_audio_signal_duplicate_stream ()

void
ags_audio_signal_duplicate_stream (AgsAudioSignal *audio_signal,
                                   AgsAudioSignal *template);

Apply template audio data to audio_signal . Note should only be invoked by proper recall context because only the stream of template is locked.

Parameters

audio_signal

the AgsAudioSignal

 

template

the template AgsAudioSignal

 

Since: 3.0.0


ags_audio_signal_feed ()

void
ags_audio_signal_feed (AgsAudioSignal *audio_signal,
                       AgsAudioSignal *template,
                       guint frame_count);

Feed audio signal to grow upto frame count.

Parameters

audio_signal

the AgsAudioSignal

 

template

the template AgsAudioSignal

 

frame_count

the new frame count

 

Since: 3.0.0


ags_audio_signal_feed_extended ()

void
ags_audio_signal_feed_extended (AgsAudioSignal *audio_signal,
                                AgsAudioSignal *template,
                                guint frame_count,
                                guint old_frame_count,
                                gboolean do_open,
                                gboolean do_close);

Feed audio signal to grow upto frame count.

Parameters

audio_signal

the AgsAudioSignal

 

template

the template AgsAudioSignal

 

frame_count

the new frame count

 

old_frame_count

the old frame count

 

do_open

open feed

 

do_close

close feed

 

Since: 3.3.0


ags_audio_signal_open_feed ()

void
ags_audio_signal_open_feed (AgsAudioSignal *audio_signal,
                            AgsAudioSignal *template,
                            guint frame_count,
                            guint old_frame_count);

Feed audio signal to grow upto frame count.

Parameters

audio_signal

the AgsAudioSignal

 

template

the template AgsAudioSignal

 

frame_count

the new frame count

 

old_frame_count

the old frame count

 

Since: 3.3.0


ags_audio_signal_continue_feed ()

void
ags_audio_signal_continue_feed (AgsAudioSignal *audio_signal,
                                AgsAudioSignal *template,
                                guint frame_count,
                                guint old_frame_count);

Feed audio signal to grow upto frame count.

Parameters

audio_signal

the AgsAudioSignal

 

template

the template AgsAudioSignal

 

frame_count

the new frame count

 

old_frame_count

the old frame count

 

Since: 3.3.0


ags_audio_signal_close_feed ()

void
ags_audio_signal_close_feed (AgsAudioSignal *audio_signal,
                             AgsAudioSignal *template,
                             guint frame_count,
                             guint old_frame_count);

Feed audio signal to grow upto frame count.

Parameters

audio_signal

the AgsAudioSignal

 

template

the template AgsAudioSignal

 

frame_count

the new frame count

 

old_frame_count

the old frame count

 

Since: 3.3.0


ags_audio_signal_get_length_till_current ()

guint
ags_audio_signal_get_length_till_current
                               (AgsAudioSignal *audio_signal);

Counts the buffers from :stream upto :stream-current.

Parameters

audio_signal

the AgsAudioSignal

 

Returns

the counted length.

Since: 3.0.0


ags_audio_signal_contains_note ()

gboolean
ags_audio_signal_contains_note (AgsAudioSignal *audio_signal,
                                AgsNote *note);

Check if audio_signal contains note .

Parameters

audio_signal

the AgsAudioSignal

 

note

the AgsNote

 

Returns

TRUE on success, otherwise FALSE

Since: 3.3.0


ags_audio_signal_get_template ()

AgsAudioSignal *
ags_audio_signal_get_template (GList *audio_signal);

Retrieve the template audio signal.

Parameters

audio_signal

the GList containing AgsAudioSignal.

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

Returns

the template AgsAudioSignal or NULL if not found.

[transfer full]

Since: 3.0.0


ags_audio_signal_get_rt_template ()

GList *
ags_audio_signal_get_rt_template (GList *audio_signal);

Retrieve the realtime template audio signal.

Parameters

audio_signal

a GList containing AgsAudioSignal.

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

Returns

the rt-templates as GList containing AgsAudioSignal.

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

Since: 3.0.0


ags_audio_signal_find_stream_current ()

GList *
ags_audio_signal_find_stream_current (GList *audio_signal,
                                      GObject *recall_id);

Retrieve next current stream of AgsAudioSignal list. Warning this function does not lock the stream mutex.

Parameters

audio_signal

the GList containing AgsAudioSignal.

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

recall_id

the matching AgsRecallID

 

Returns

next GList matching AgsRecallID.

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

Since: 3.0.0


ags_audio_signal_find_by_recall_id ()

GList *
ags_audio_signal_find_by_recall_id (GList *audio_signal,
                                    GObject *recall_id);

Retrieve next audio signal refering to recall_id

Parameters

audio_signal

a GList containing AgsAudioSignal.

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

recall_id

matching AgsRecallID

 

Returns

matching GList containing AgsAudioSignal.

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

Since: 3.0.0


ags_audio_signal_is_active ()

gboolean
ags_audio_signal_is_active (GList *audio_signal,
                            GObject *recall_id);

Check if is active.

Parameters

audio_signal

the GList containing AgsAudioSignal.

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

recall_id

the AgsRecallID

 

Returns

TRUE if related audio signal to recall id is available, otherwise FALSE

Since: 3.0.0


ags_audio_signal_new ()

AgsAudioSignal *
ags_audio_signal_new (GObject *output_soundcard,
                      GObject *recycling,
                      GObject *recall_id);

Creates a AgsAudioSignal, with defaults of output_soundcard , linking recycling tree and refering to recall_id .

Parameters

output_soundcard

the assigned output AgsSoundcard

 

recycling

the AgsRecycling

 

recall_id

the AgsRecallID, it can be NULL if AGS_AUDIO_SIGNAL_TEMPLATE is set

 

Returns

a new AgsAudioSignal

Since: 3.0.0


ags_audio_signal_new_with_length ()

AgsAudioSignal *
ags_audio_signal_new_with_length (GObject *output_soundcard,
                                  GObject *recycling,
                                  GObject *recall_id,
                                  guint length);

Creates a AgsAudioSignal, with defaults of soundcard , linking recycling tree and refering to recall_id . The audio data is tiled to length frame count.

Parameters

output_soundcard

the assigned output AgsSoundcard

 

recycling

the AgsRecycling

 

recall_id

the AgsRecallID, it can be NULL if AGS_AUDIO_SIGNAL_TEMPLATE is set

 

length

audio data frame count

 

Returns

a new AgsAudioSignal

Since: 3.0.0

Types and Values

enum AgsAudioSignalFlags

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

Members

AGS_AUDIO_SIGNAL_ADDED_TO_REGISTRY

the audio signal was added to registry, see AgsConnectable::add_to_registry()

 

AGS_AUDIO_SIGNAL_CONNECTED

indicates the audio signal was connected by calling AgsConnectable::connect()

 

AGS_AUDIO_SIGNAL_TEMPLATE

the audio signal acts as a template

 

AGS_AUDIO_SIGNAL_RT_TEMPLATE

the audio signal acts as a realtime template

 

AGS_AUDIO_SIGNAL_MASTER

the audio signal needs master

 

AGS_AUDIO_SIGNAL_FEED

the audio signal needs feed

 

AGS_AUDIO_SIGNAL_RECYCLED

the audio signal is recycled

 

AGS_AUDIO_SIGNAL_STREAM

the audio signal needs stream

 

AGS_AUDIO_SIGNAL_SLICE_ALLOC

the audio signal allocates from slice