Top | ![]() |
![]() |
![]() |
![]() |
GObject * | audio | Read / Write |
guint | audio-channel | Read |
guint | buffer-size | Read / Write |
AgsRecycling * | first-recycling | Read |
guint | format | Read / Write |
AgsRecycling * | last-recycling | Read |
guint | line | Read |
AgsChannel * | link | Read / Write |
gchar * | note | Read / Write |
guint | pad | Read |
AgsPattern * | pattern | Read / Write |
AgsRecall * | play | Read / Write |
AgsPlayback * | playback | Read / Write |
AgsRecall * | recall | Read / Write |
AgsRecallContainer * | recall-container | Read / Write |
AgsRecallID * | recall-id | Read / Write |
guint | samplerate | Read / Write |
GObject * | soundcard | Read / Write |
gpointer | add-effect | Run Last |
void | done | Run Last |
void | recycling-changed | Run Last |
void | remove-effect | Run Last |
enum | AgsChannelFlags |
enum | AgsChannelRecallIDMode |
#define | AGS_CHANNEL_ERROR |
enum | AgsChannelError |
#define | AGS_TYPE_CHANNEL |
struct | AgsChannel |
struct | AgsChannelClass |
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 AgsRecyclingContext is indicated, since it acts as a kind of recall id tree context.
AgsRecall * ags_channel_find_recall (AgsChannel *channel
,char *effect
,char *name
);
AgsChannel *
ags_channel_first (AgsChannel *channel
);
Iterates until the first AgsChannel was found.
Since: 0.3
AgsChannel *
ags_channel_last (AgsChannel *channel
);
Iterates until the last AgsChannel was found.
Since: 0.3
AgsChannel * ags_channel_nth (AgsChannel *channel
,guint nth
);
Iterates nth
times forward.
Since: 0.3
AgsChannel *
ags_channel_pad_first (AgsChannel *channel
);
Iterates until the first pad has been reached.
Since: 0.3
AgsChannel *
ags_channel_pad_last (AgsChannel *channel
);
Iterates until the last pad has been reached.
Since: 0.3
AgsChannel * ags_channel_pad_nth (AgsChannel *channel
,guint nth
);
Iterates nth times.
Since: 0.3
AgsChannel *
ags_channel_first_with_recycling (AgsChannel *channel
);
Iterates over pads forwards as long as there is no AgsRecycling on the AgsChannel.
Since: 0.3
AgsChannel *
ags_channel_last_with_recycling (AgsChannel *channel
);
Iterates over pads backwards as long as there is no AgsRecycling on the AgsChannel.
Since: 0.3
AgsChannel *
ags_channel_prev_with_recycling (AgsChannel *channel
);
AgsChannel *
ags_channel_next_with_recycling (AgsChannel *channel
);
void ags_channel_set_soundcard (AgsChannel *channel
,GObject *soundcard
);
Sets soundcard.
Since: 0.4
void ags_channel_set_samplerate (AgsChannel *channel
,guint samplerate
);
void ags_channel_set_buffer_size (AgsChannel *channel
,guint buffer_size
);
void ags_channel_add_remote_channel (AgsChannel *channel
,GObject *remote_channel
);
Adds a remote channel.
Since: 0.7.65
void ags_channel_remove_remote_channel (AgsChannel *channel
,GObject *remote_channel
);
Removes a remote channel.
Since: 0.7.65
void ags_channel_add_recall_id (AgsChannel *channel
,AgsRecallID *recall_id
);
Adds a recall id.
Since: 0.4
void ags_channel_remove_recall_id (AgsChannel *channel
,AgsRecallID *recall_id
);
Removes a recall id.
Since: 0.4
void ags_channel_add_recall_container (AgsChannel *channel
,GObject *recall_container
);
Adds a recall container.
Since: 0.4
void ags_channel_remove_recall_container (AgsChannel *channel
,GObject *recall_container
);
Removes a recall container.
Since: 0.4
void ags_channel_add_recall (AgsChannel *channel
,GObject *recall
,gboolean play
);
Adds a recall.
Since: 0.4
void ags_channel_remove_recall (AgsChannel *channel
,GObject *recall
,gboolean play
);
Removes a recall.
Since: 0.4
void ags_channel_remove_pattern (AgsChannel *channel
,GObject *pattern
);
Removes a pattern.
Since: 0.7.2
GList * ags_channel_add_effect (AgsChannel *channel
,char *filename
,gchar *effect
);
void ags_channel_safe_resize_audio_signal (AgsChannel *channel
,guint length
);
Resize audio data.
Since: 0.4
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.
channel |
an AgsChannel that contains the AgsRecall templates |
|
recall_id |
the AgsRecallID the newly allocated AgsRecall objects belongs to |
Since: 0.3
void ags_channel_resolve_recall (AgsChannel *channel
,AgsRecallID *recall_id
);
Resolve step of initialization.
Since: 0.4
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.
channel |
an AgsChannel that contains the recalls |
|
stage |
the stage to init |
|
recall_id |
the AgsRecallId this recall belongs to |
Since: 0.3
void ags_channel_play (AgsChannel *channel
,AgsRecallID *recall_id
,gint stage
);
Play one single run of stage
step.
channel |
an AgsChannel |
|
recall_id |
appropriate AgsRecallID |
|
stage |
run_pre, run_inter or run_post |
Since: 0.3
void ags_channel_done (AgsChannel *channel
,AgsRecallID *recall_id
);
Is emitted as playing channel is done.
Since: 0.4
void ags_channel_cancel (AgsChannel *channel
,AgsRecallID *recall_id
);
Calls for every matching recall_id
ags_recall_cancel()
Since: 0.3
void ags_channel_remove (AgsChannel *channel
,AgsRecallID *recall_id
);
Calls for every matching recall_id
ags_recall_remove()
Since: 0.3
void ags_channel_recall_id_set (AgsChannel *output
,AgsRecallID *recall_id
,gboolean ommit_own_channel
,guint mode
,...
);
GList *
ags_channel_find_port (AgsChannel *channel
);
Retrieve all ports of AgsChannel
Since: 0.4
void ags_channel_set_link (AgsChannel *channel
,AgsChannel *link
,GError **error
);
Change the linking of AgsChannel objects. Sets link, calls ags_channel_set_recycling()
and ags_channel_recursive_reset_recall_ids()
. Further it does loop detection and makes
your machine running. Thus it adds AgsRecallID. Asynchronously only.
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
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.
Asynchronously only.
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
void ags_channel_recursive_reset_recycling_context (AgsChannel *channel
,AgsRecyclingContext *old_recycling_context
,AgsRecyclingContext *recycling_context
);
Resets the recycling container context. Asynchronously only.
channel |
the channel to reset |
|
old_recycling_context |
the old recycling container context |
|
recycling_context |
the new recycling container context |
Since: 0.4
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. Asynchronously only.
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
void ags_channel_recursive_set_property (AgsChannel *channel
,GParameter *parameter
,gint n_params
);
Recursive set property for AgsChannel.
channel |
the AgsChannel |
|
parameter |
the GParameter array containing properties |
|
n_params |
the length of |
Since: 0.7.65
AgsRecallID * ags_channel_recursive_play_init (AgsChannel *channel
,gint stage
,gboolean arrange_recall_id
,gboolean duplicate_templates
,gboolean do_playback
,gboolean do_sequencer
,gboolean do_notation
,gboolean resolve_dependencies
,AgsRecallID *recall_id
);
Make the tree ready for a new AgsPlayback. Only for asynchronous use, take a look at AgsInitChannel or AgsInitAudio task.
channel |
the AgsChannel to prepare |
|
stage |
valid values for |
|
arrange_recall_id |
|
|
duplicate_templates |
||
do_playback |
|
|
do_sequencer |
|
|
do_notation |
|
|
resolve_dependencies |
|
|
recall_id |
the initial recall id or |
Since: 0.3
void ags_channel_recursive_play_threaded (AgsChannel *channel
,AgsRecallID *recall_id
,gint stage
);
Super-threaded version of ags_channel_recursive_play()
one single run of stage
step. This
function expects to be called by AgsIteratorThread and having a functional AgsRecyclingThread
setup.
channel |
an AgsChannel |
|
recall_id |
appropriate AgsRecallID |
|
stage |
run_pre, run_inter or run_post |
Since: 0.4
void ags_channel_recursive_play (AgsChannel *channel
,AgsRecallID *recall_id
,gint stage
);
Call recursively ags_channel_play()
and ags_audio_play()
. This tree iterator
function isn't capable of doing parallel computing tree.
channel |
an AgsChannel |
|
recall_id |
appropriate AgsRecallID |
|
stage |
run_pre, run_inter or run_post |
Since: 0.3
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
.
Since: 0.4
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.
channel |
an AgsChannel that was linked with |
|
link |
an AgsChannel that was linked with |
|
old_channel_link |
the old link of |
|
old_link_link |
the old link of |
Since: 0.4
AgsChannel *
ags_channel_new (GObject *audio
);
Creates a AgsChannel, linking tree to audio
.
Since: 0.3
#define AGS_CHANNEL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_CHANNEL, AgsChannel))
#define AGS_CHANNEL_CLASS(class) (G_TYPE_CHECK_CLASS_CAST((class), AGS_TYPE_CHANNEL, AgsChannelClass))
#define AGS_CHANNEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), AGS_TYPE_CHANNEL, AgsChannelClass))
#define AGS_IS_CHANNEL_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), AGS_TYPE_CHANNEL))
struct AgsChannelClass { GObjectClass object; GList* (*add_effect)(AgsChannel *channel, gchar *filename, gchar *effect); void (*remove_effect)(AgsChannel *channel, guint nth); void (*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); void (*done)(AgsChannel *channel, AgsRecallID *recall_id); };
“audio”
property“audio” GObject *
The assigned AgsAudio aligning channels.
Flags: Read / Write
Since: 0.4.0
“audio-channel”
property“audio-channel” guint
The nth audio channel.
Flags: Read
Allowed values: <= 65535
Default value: 0
“buffer-size”
property“buffer-size” guint
The buffer size.
Flags: Read / Write
Default value: 0
“first-recycling”
property“first-recycling” AgsRecycling *
The containing AgsRecycling it takes it AgsAudioSignal from.
Flags: Read
Since: 0.7.2
“last-recycling”
property“last-recycling” AgsRecycling *
The containing AgsRecycling it takes it AgsAudioSignal from.
Flags: Read
Since: 0.7.2
“line”
property“line” guint
The nth line.
Flags: Read
Allowed values: <= 65535
Default value: 0
“link”
property“link” AgsChannel *
The assigned link as AgsChannel.
Flags: Read / Write
Since: 0.7.2
“note”
property“note” gchar *
The assigned AgsNote representing this channel.
Flags: Read / Write
Default value: NULL
Since: 0.7.2
“pattern”
property“pattern” AgsPattern *
The containing AgsPattern.
Flags: Read / Write
Since: 0.7.2
“play”
property“play” AgsRecall *
The containing AgsRecall in play-context.
Flags: Read / Write
Since: 0.7.2
“playback”
property“playback” AgsPlayback *
The assigned AgsPlayback.
Flags: Read / Write
Since: 0.7.2
“recall”
property“recall” AgsRecall *
The containing AgsRecall in recall-context.
Flags: Read / Write
Since: 0.7.2
“recall-container”
property“recall-container” AgsRecallContainer *
The containing AgsRecallContainer.
Flags: Read / Write
Since: 0.7.2
“recall-id”
property“recall-id” AgsRecallID *
The assigned AgsRecallID.
Flags: Read / Write
Since: 0.7.2
“soundcard”
property“soundcard” GObject *
The assigned AgsSoundcard acting as default sink.
Flags: Read / Write
Since: 0.4.0
“add-effect”
signalgpointer user_function (AgsChannel *channel, gchar *effect, gchar *arg2, gpointer user_data)
The ::add-effect signal notifies about added effect.
channel |
the AgsChannel to modify |
|
effect |
the effect's name |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run Last
“done”
signalvoid user_function (AgsChannel *channel, GObject *recall_id, gpointer user_data)
The ::done signal is invoked during termination of playback.
channel |
the object done playing. |
|
recall_id |
the appropriate AgsRecallID |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run Last
“recycling-changed”
signalvoid user_function (AgsChannel *old_start_region, GObject *old_end_region, GObject *new_start_region, GObject *new_end_region, GObject *old_start_changed_region, GObject *old_end_changed_region, GObject *new_start_changed_region, GObject *new_end_changed_region, GObject *arg8, gpointer user_data)
The ::recycling-changed signal is invoked to notify modified recycling tree.
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 |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run Last
“remove-effect”
signalvoid user_function (AgsChannel *channel, guint nth, gpointer user_data)
The ::remove-effect signal notifies about removed effect.
channel |
the AgsChannel to modify |
|
nth |
the nth effect |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run Last