AgsChannel

AgsChannel — Acts as entry point to the audio tree.

Functions

Types and Values

Includes

#include <ags/audio/ags_channel.h>

Description

AgsChannel is the entry point to the entire audio tree and its nested recycling tree.

Every channel has its own AgsRecallID. As modifying link a new AgsRecyclingContainer is indicated, since it acts as a kind of recall id tree context.

Functions

AGS_CHANNEL_ERROR

#define AGS_CHANNEL_ERROR (ags_channel_error_quark())


ags_channel_error_quark ()

GQuark
ags_channel_error_quark ();

Returns


ags_channel_find_recall ()

AgsRecall *
ags_channel_find_recall (AgsChannel *channel,
                         char *effect,
                         char *name);

Returns


ags_channel_first ()

AgsChannel *
ags_channel_first (AgsChannel *channel);

Iterates until the first AgsChannel was found.

Parameters

channel

an AgsChannel

 

Returns

the first AgsChannel

Since 0.3


ags_channel_last ()

AgsChannel *
ags_channel_last (AgsChannel *channel);

Iterates until the last AgsChannel was found.

Parameters

channel

an AgsChannel

 

Returns

the last AgsChannel

Since 0.3


ags_channel_nth ()

AgsChannel *
ags_channel_nth (AgsChannel *channel,
                 guint nth);

Iterates nth times forward.

Parameters

channel

an AgsChannel

 

nth

the count to iterate

 

Returns

the nth AgsChannel

Since 0.3


ags_channel_pad_first ()

AgsChannel *
ags_channel_pad_first (AgsChannel *channel);

Iterates until the first pad has been reached.

Parameters

channel

an AgsChannel

 

Returns

the first AgsChannel with the same audio_channel as channel

Since 0.3


ags_channel_pad_last ()

AgsChannel *
ags_channel_pad_last (AgsChannel *channel);

Iterates until the last pad has been reached.

Parameters

channel

an AgsChannel

 

Returns

the last AgsChannel with the same audio_channel as channel

Since 0.3


ags_channel_pad_nth ()

AgsChannel *
ags_channel_pad_nth (AgsChannel *channel,
                     guint nth);

Iterates nth times.

Parameters

channel

an AgsChannel

 

nth

the count of pads to step

 

Returns

the nth pad

Since 0.3


ags_channel_first_with_recycling ()

AgsChannel *
ags_channel_first_with_recycling (AgsChannel *channel);

Iterates over pads forwards as long as there is no AgsRecycling on the AgsChannel.

Parameters

channel

an AgsChannel

 

Returns

the first channel with an AgsRecycling

Since 0.3


ags_channel_last_with_recycling ()

AgsChannel *
ags_channel_last_with_recycling (AgsChannel *channel);

Iterates over pads backwards as long as there is no AgsRecycling on the AgsChannel.

Parameters

channel

an AgsChannel

 

Returns

the last channel with an AgsRecycling

Since 0.3


ags_channel_set_devout ()

void
ags_channel_set_devout (AgsChannel *channel,
                        GObject *devout);

Sets devout.

Parameters

channel

an AgsChannel

 

devout

an AgsDevout

 

Since 0.4


ags_channel_remove_recall_id ()

void
ags_channel_remove_recall_id (AgsChannel *channel,
                              AgsRecallID *recall_id);

Removes a recall id.

Parameters

channel

an AgsChannel

 

recall_id

the AgsRecallID

 

Since 0.4


ags_channel_add_recall_id ()

void
ags_channel_add_recall_id (AgsChannel *channel,
                           AgsRecallID *recall_id);

Adds a recall id.

Parameters

channel

an AgsChannel

 

recall_id

the AgsRecallID

 

Since 0.4


ags_channel_add_recall_container ()

void
ags_channel_add_recall_container (AgsChannel *channel,
                                  GObject *recall_container);

Adds a recall container.

Parameters

channel

an AgsChannel

 

recall_container

the AgsRecallContainer

 

Since 0.4


ags_channel_remove_recall_container ()

void
ags_channel_remove_recall_container (AgsChannel *channel,
                                     GObject *recall_container);

Since 0.4


ags_channel_remove_recall ()

void
ags_channel_remove_recall (AgsChannel *channel,
                           GObject *recall,
                           gboolean play);

Removes a recall.

Parameters

channel

an AgsChannel

 

play

TRUE if simple playback.

 

Since 0.4


ags_channel_add_recall ()

void
ags_channel_add_recall (AgsChannel *channel,
                        GObject *recall,
                        gboolean play);

Adds a recall.

Parameters

channel

an AgsChannel

 

play

TRUE if simple playback.

 

Since 0.4


ags_channel_set_link ()

void
ags_channel_set_link (AgsChannel *channel,
                      AgsChannel *link,
                      GError **error);

Change the linking of AgsChannel objects.

Parameters

channel

an AgsChannel to link

 

link

an other AgsChannel to link with

 

error

you may retrieve a AGS_CHANNEL_ERROR_LOOP_IN_LINK error

 

Since 0.3


ags_channel_set_recycling ()

void
ags_channel_set_recycling (AgsChannel *channel,
                           AgsRecycling *first_recycling,
                           AgsRecycling *last_recycling,
                           gboolean update,
                           gboolean destroy_old);

Called by ags_channel_set_link() to handle outdated AgsRecycling references.

Parameters

channel

the channel to reset

 

first_recycling

the recycling to set for channel->first_recycling

 

last_recycling

the recycling to set for channel->last_recycling

 

update

reset allthough the AgsRecyclings are still the same

 

destroy_old

destroy old AgsRecyclings

 

Since 0.3


ags_channel_recursive_reset_recycling_container ()

void
ags_channel_recursive_reset_recycling_container
                               (AgsChannel *channel,
                                AgsRecyclingContainer *old_recycling_container,
                                AgsRecyclingContainer *recycling_container);

Since 0.4


ags_channel_recycling_changed ()

void
ags_channel_recycling_changed (AgsChannel *channel,
                               AgsRecycling *old_start_region,
                               AgsRecycling *old_end_region,
                               AgsRecycling *new_start_region,
                               AgsRecycling *new_end_region,
                               AgsRecycling *old_start_changed_region,
                               AgsRecycling *old_end_changed_region,
                               AgsRecycling *new_start_changed_region,
                               AgsRecycling *new_end_changed_region);

Modify recycling.

Parameters

channel

the object recycling changed

 

old_start_region

first recycling

 

old_end_region

last recycling

 

new_start_region

new first recycling

 

new_end_region

new last recycling

 

old_start_changed_region

modified link recycling start

 

old_end_changed_region

modified link recyclig end

 

new_start_changed_region

replacing link recycling start

 

new_end_changed_region

replacing link recycling end

 

Since 0.3


ags_channel_done ()

void
ags_channel_done (AgsChannel *channel,
                  AgsRecallID *recall_id);

Is emitted as playing channel is done.

Parameters

channel

an AgsChannel

 

recall_id

the current AgsRecallID

 

Since 0.4


ags_channel_safe_resize_audio_signal ()

void
ags_channel_safe_resize_audio_signal (AgsChannel *channel,
                                      guint size);

Resize audio data.

Parameters

channel

an AgsChannel

 

Since 0.4


ags_channel_resolve_recall ()

void
ags_channel_resolve_recall (AgsChannel *channel,
                            AgsRecallID *recall_id);

Resolve step of initialization.

Parameters

channel

an AgsChannel

 

recall_id

appropriate AgsRecallID

 

Since 0.4


ags_channel_play ()

void
ags_channel_play (AgsChannel *channel,
                  AgsRecallID *recall_id,
                  gint stage);

Play one single run of stage step.

Parameters

channel

an AgsChannel

 

recall_id

appropriate AgsRecallID

 

stage

run_pre, run_inter or run_post

 

Since 0.3


ags_channel_recursive_play_threaded ()

void
ags_channel_recursive_play_threaded (AgsChannel *channel,
                                     AgsRecallID *recall_id,
                                     gint stage);

Super-threaded version of play one single run of stage step.

Parameters

channel

an AgsChannel

 

recall_id

appropriate AgsRecallID

 

stage

run_pre, run_inter or run_post

 

Since 0.4


ags_channel_recursive_play ()

void
ags_channel_recursive_play (AgsChannel *channel,
                            AgsRecallID *recall_id,
                            gint stage);

Call recursively ags_channel_play() and ags_audio_play()

Parameters

channel

an AgsChannel

 

recall_id

appropriate AgsRecallID

 

stage

run_pre, run_inter or run_post

 

Since 0.3


ags_channel_duplicate_recall ()

void
ags_channel_duplicate_recall (AgsChannel *channel,
                              AgsRecallID *recall_id);

Duplicate AgsRecall templates for use with ags_channel_recursive_play(), but ags_channel_recursive_play_init() may call this function for you.

Parameters

channel

an AgsChannel that contains the AgsRecall templates

 

recall_id

the AgsRecallID the newly allocated AgsRecall objects belongs to

 

Since 0.3


ags_channel_init_recall ()

void
ags_channel_init_recall (AgsChannel *channel,
                         gint stage,
                         AgsRecallID *recall_id);

Prepare AgsRecall objects to become runnning, ags_channel_recursive_play_init() may call this function for you.

Parameters

channel

an AgsChannel that contains the recalls

 

recall_id

the AgsRecallId this recall belongs to

 

Since 0.3


ags_channel_recursive_play_init ()

AgsRecallID *
ags_channel_recursive_play_init (AgsChannel *channel,
                                 gint stage,
                                 gboolean arrange_recall_id,
                                 gboolean duplicate_templates,
                                 gboolean playback,
                                 gboolean sequencer,
                                 gboolean notation,
                                 gboolean resolve_dependencies,
                                 AgsRecallID *recall_id);

Make the tree ready for a new AgsDevoutPlay.

Parameters

channel

the AgsChannel to prepare

 

stage

valid values for stage are: -1 for running all three stages, or the stages 0 through 2 to run just the specified stage. With stage is meant the AgsRecall run_init_pre, AgsRecall run_init_inter and AgsRecall run_init_post stages.

 

arrange_recall_id

TRUE if new AgsRecallID objects should be created

 

duplicate_templates

TRUE if the AgsRecall templates should be duplicated

 

playback

TRUE if the purpose is a simple playback of the tree, this option is used to omit the duplication of AgsRecall templates which haven't set AGS_RECALL_PLAYBACK flag

 

sequencer

TRUE if the purpose is playing the tree for a sequencer, this option is used to omit the duplication of AgsRecall templates which haven't set the AGS_RECALL_SEQUENCER flag

 

notation

TRUE if the purpose is playing the tree for a notation, this option is used to omit the duplication of AgsRecall templates which haven't set the AGS_RECALL_NOTATION flag

 

resolve_dependencies

TRUE if the

 

recall_id

the initial recall id or NULL

 

Returns

Since 0.3


ags_channel_cancel ()

void
ags_channel_cancel (AgsChannel *channel,
                    AgsRecallID *recall_id);

Calls for every matching recall_id ags_recall_cancel()

Parameters

channel

an AgsChannel

 

recall_id

and AgsRecallID

 

Since 0.3


ags_channel_remove ()

void
ags_channel_remove (AgsChannel *channel,
                    AgsRecallID *recall_id);

Since 0.3


ags_channel_tillrecycling_cancel ()

void
ags_channel_tillrecycling_cancel (AgsChannel *channel,
                                  AgsRecallID *recall_id);

Traverses the tree down and up and calls ags_channel_cancel() for corresponding recall_id .

Parameters

channel

an AgsChannel

 

recall_id

an AgsRecallID

 

Since 0.4


ags_channel_recursive_reset_recall_ids ()

void
ags_channel_recursive_reset_recall_ids
                               (AgsChannel *channel,
                                AgsChannel *link,
                                AgsChannel *old_channel_link,
                                AgsChannel *old_link_link);

Called by ags_channel_set_link() to handle running AgsAudio objects correctly. This function destroys AgsRecall objects which were uneeded because they became invalid due to unlinking. By the way it destroys the uneeded AgsRecallID objects, too. Additionally it creates AgsRecall and AgsRecallID objects to prepare becoming a running object (AgsAudio or AgsChannel). By the clean up the invalid AgsRecall objects will be removed. Once the clean up has done ags_channel_recursive_play_init() will be called for every playing instance that was found.

Parameters

channel

an AgsChannel that was linked with link

 

link

an AgsChannel that was linked with channel

 

old_channel_link

the old link of channel

 

old_link_link

the old link of link

 

Since 0.4


ags_channel_recall_id_set ()

void
ags_channel_recall_id_set (AgsChannel *output,
                           AgsRecallID *recall_id,
                           gboolean ommit_own_channel,
                           guint mode,
                           ...);


ags_channel_find_port ()

GList *
ags_channel_find_port (AgsChannel *channel);

ags_channel_new ()

AgsChannel *
ags_channel_new (GObject *audio);

Creates a AgsChannel, linking tree to audio .

Parameters

audio

the AgsAudio

 

Returns

a new AgsChannel

Since 0.3

Types and Values

enum AgsChannelFlags

Members

AGS_CHANNEL_RUNNING

   

enum AgsChannelRecallIDMode

Members

AGS_CHANNEL_RECALL_ID_RUN_STAGE

   

AGS_CHANNEL_RECALL_ID_CANCEL

   

enum AgsChannelError

Members

AGS_CHANNEL_ERROR_LOOP_IN_LINK