Top |
#define | AGS_CHANNEL_MINIMUM_OCTAVE |
#define | AGS_CHANNEL_MAXIMUM_OCTAVE |
#define | AGS_CHANNEL_DEFAULT_OCTAVE |
#define | AGS_CHANNEL_MINIMUM_OCTAVE_SEMITONE |
#define | AGS_CHANNEL_MAXIMUM_OCTAVE_SEMITONE |
#define | AGS_CHANNEL_DEFAULT_OCTAVE_SEMITONE |
#define | AGS_CHANNEL_MINIMUM_SEMITONE |
#define | AGS_CHANNEL_MAXIMUM_SEMITONE |
#define | AGS_CHANNEL_DEFAULT_SEMITONE |
#define | AGS_CHANNEL_MINIMUM_NOTE_FREQUENCY |
#define | AGS_CHANNEL_MAXIMUM_NOTE_FREQUENCY |
#define | AGS_CHANNEL_DEFAULT_NOTE_FREQUENCY |
#define | AGS_CHANNEL_MINIMUM_MIDI_NOTE |
#define | AGS_CHANNEL_MAXIMUM_MIDI_NOTE |
#define | AGS_CHANNEL_DEFAULT_MIDI_NOTE |
enum | AgsChannelFlags |
#define | AGS_CHANNEL_ERROR |
enum | AgsChannelError |
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.
#define AGS_CHANNEL_GET_OBJ_MUTEX(obj) (&(((AgsChannel *) obj)->obj_mutex))
#define AGS_CHANNEL_GET_PLAY_MUTEX(obj) (&(((AgsChannel *) obj)->play_mutex))
#define AGS_CHANNEL_GET_RECALL_MUTEX(obj) (&(((AgsChannel *) obj)->recall_mutex))
GRecMutex *
ags_channel_get_obj_mutex (AgsChannel *channel
);
Get object mutex.
Since: 3.1.0
GRecMutex *
ags_channel_get_play_mutex (AgsChannel *channel
);
Get play mutex.
Since: 3.1.0
GRecMutex *
ags_channel_get_recall_mutex (AgsChannel *channel
);
Get recall mutex.
Since: 3.1.0
gboolean ags_channel_test_flags (AgsChannel *channel
,guint flags
);
Test flags
to be set on channel
.
Since: 3.0.0
void ags_channel_set_flags (AgsChannel *channel
,guint flags
);
Enable a feature of channel
.
Since: 3.0.0
void ags_channel_unset_flags (AgsChannel *channel
,guint flags
);
Disable a feature of channel
.
Since: 3.0.0
gboolean ags_channel_test_ability_flags (AgsChannel *channel
,guint ability_flags
);
Test ability_flags
to be set on channel
.
Since: 3.0.0
void ags_channel_set_ability_flags (AgsChannel *channel
,guint ability_flags
);
Enable an ability of AgsChannel.
Since: 3.0.0
void ags_channel_unset_ability_flags (AgsChannel *channel
,guint ability_flags
);
Disable an ability of AgsChannel.
Since: 3.0.0
gboolean ags_channel_test_behaviour_flags (AgsChannel *channel
,guint behaviour_flags
);
Test behaviour_flags
to be set on channel
.
Since: 3.0.0
void ags_channel_set_behaviour_flags (AgsChannel *channel
,guint behaviour_flags
);
Set behaviour flags.
Since: 3.0.0
void ags_channel_unset_behaviour_flags (AgsChannel *channel
,guint behaviour_flags
);
Unset behaviour flags.
Since: 3.0.0
gboolean ags_channel_test_staging_flags (AgsChannel *channel
,gint sound_scope
,guint staging_flags
);
Test staging_flags
to be set on channel
.
channel |
the AgsChannel |
|
sound_scope |
the AgsSoundScope to test |
|
staging_flags |
the staging flags |
Since: 3.0.0
void ags_channel_set_staging_flags (AgsChannel *channel
,gint sound_scope
,guint staging_flags
);
Set staging flags.
channel |
the AgsChannel |
|
sound_scope |
the AgsSoundScope to apply, or -1 to apply to all |
|
staging_flags |
the staging flags |
Since: 3.0.0
void ags_channel_unset_staging_flags (AgsChannel *channel
,gint sound_scope
,guint staging_flags
);
Unset staging flags.
channel |
the AgsChannel |
|
sound_scope |
the AgsSoundScope to apply, or -1 to apply to all |
|
staging_flags |
the staging flags |
Since: 3.0.0
gboolean ags_channel_test_staging_completed (AgsChannel *channel
,gint sound_scope
);
Test sound_scope
to be completed on channel
.
Since: 3.3.0
void ags_channel_set_staging_completed (AgsChannel *channel
,gint sound_scope
);
Set sound_scope
to be completed.
Since: 3.3.0
void ags_channel_unset_staging_completed (AgsChannel *channel
,gint sound_scope
);
Unset sound_scope
to be completed.
Since: 3.3.0
GObject *
ags_channel_get_audio (AgsChannel *channel
);
Get audio.
Since: 3.1.0
void ags_channel_set_audio (AgsChannel *channel
,GObject *audio
);
Set audio.
Since: 3.1.0
AgsChannel *
ags_channel_next (AgsChannel *channel
);
Iterate channel
.
Since: 3.0.0
AgsChannel *
ags_channel_prev (AgsChannel *channel
);
Iterate channel
.
Since: 3.0.0
AgsChannel *
ags_channel_next_pad (AgsChannel *channel
);
Iterate channel
.
Since: 3.0.0
AgsChannel *
ags_channel_prev_pad (AgsChannel *channel
);
Iterate channel
.
Since: 3.0.0
AgsChannel *
ags_channel_first (AgsChannel *channel
);
Iterates until the first AgsChannel was found.
Since: 3.0.0
AgsChannel *
ags_channel_last (AgsChannel *channel
);
Iterates until the last AgsChannel was found.
Since: 3.0.0
AgsChannel * ags_channel_nth (AgsChannel *channel
,guint nth
);
Iterates nth
times forward.
Since: 3.0.0
AgsChannel *
ags_channel_pad_first (AgsChannel *channel
);
Iterates until the first pad has been reached.
Since: 3.0.0
AgsChannel *
ags_channel_pad_last (AgsChannel *channel
);
Iterates until the last pad has been reached.
Since: 3.0.0
AgsChannel * ags_channel_pad_nth (AgsChannel *channel
,guint nth
);
Iterates nth times.
Since: 3.0.0
AgsChannel *
ags_channel_first_with_recycling (AgsChannel *channel
);
Find first recycling related to channel
.
Since: 3.0.0
AgsChannel *
ags_channel_last_with_recycling (AgsChannel *channel
);
Find last recycling related to channel
.
Since: 3.0.0
AgsChannel *
ags_channel_prev_with_recycling (AgsChannel *channel
);
Find previous AgsRecycling of channel
.
Since: 3.0.0
AgsChannel *
ags_channel_next_with_recycling (AgsChannel *channel
);
Find next AgsRecycling of channel
.
Since: 3.0.0
AgsChannel *
ags_channel_get_link (AgsChannel *channel
);
Ascend/descend channel
.
Since: 3.0.0
void ags_channel_set_link (AgsChannel *channel
,AgsChannel *link
,GError **error
);
Change the linking of AgsChannel objects. Sets link, calls ags_channel_reset_recycling()
.
Further it does loop detection and makes your machine running.
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: 3.0.0
void ags_channel_reset_recycling (AgsChannel *channel
,AgsRecycling *first_recycling
,AgsRecycling *last_recycling
);
Called by ags_channel_set_link()
to handle outdated AgsRecycling references.
Invoke only by a task.
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 |
Since: 3.0.0
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: 3.0.0
GObject *
ags_channel_get_output_soundcard (AgsChannel *channel
);
Get the output soundcard object of channel
.
Since: 3.1.0
void ags_channel_set_output_soundcard (AgsChannel *channel
,GObject *output_soundcard
);
Set the output soundcard object of channel
.
Since: 3.0.0
GObject *
ags_channel_get_input_soundcard (AgsChannel *channel
);
Get the input soundcard object of channel
.
Since: 3.1.0
void ags_channel_set_input_soundcard (AgsChannel *channel
,GObject *input_soundcard
);
Set the input soundcard object of channel
.
Since: 3.0.0
guint
ags_channel_get_samplerate (AgsChannel *channel
);
Gets samplerate.
Since: 3.1.0
void ags_channel_set_samplerate (AgsChannel *channel
,guint samplerate
);
Set samplerate.
Since: 3.0.0
guint
ags_channel_get_buffer_size (AgsChannel *channel
);
Gets buffer size.
Since: 3.1.0
void ags_channel_set_buffer_size (AgsChannel *channel
,guint buffer_size
);
Set buffer-size.
Since: 3.0.0
guint
ags_channel_get_format (AgsChannel *channel
);
Gets format.
Since: 3.1.0
void ags_channel_set_format (AgsChannel *channel
,guint format
);
Set format.
Since: 3.0.0
void ags_channel_set_pad (AgsChannel *channel
,guint pad
);
Set pad.
Since: 3.0.0
guint
ags_channel_get_audio_channel (AgsChannel *channel
);
Gets audio_channel.
Since: 3.1.0
void ags_channel_set_audio_channel (AgsChannel *channel
,guint audio_channel
);
Set audio_channel.
Since: 3.0.0
void ags_channel_set_line (AgsChannel *channel
,guint line
);
Set line.
Since: 3.0.0
gint
ags_channel_get_octave (AgsChannel *channel
);
Gets octave.
Since: 3.1.0
void ags_channel_set_octave (AgsChannel *channel
,gint octave
);
Sets octave.
Since: 3.1.0
void ags_channel_set_key (AgsChannel *channel
,guint key
);
Sets key.
Since: 3.1.0
gint
ags_channel_get_absolute_key (AgsChannel *channel
);
Gets absolute key.
Since: 3.1.0
void ags_channel_set_absolute_key (AgsChannel *channel
,gint absolute_key
);
Sets absolute key.
Since: 3.1.0
GList *
ags_channel_get_pattern (AgsChannel *channel
);
Get pattern.
Since: 3.1.0
void ags_channel_set_pattern (AgsChannel *channel
,GList *pattern
);
Set pattern by replacing existing.
channel |
the AgsChannel |
|
pattern |
the GList containing AgsPattern. |
[element-type AgsAudio.Pattern][transfer full] |
Since: 3.1.0
void ags_channel_add_pattern (AgsChannel *channel
,GObject *pattern
);
Removes a pattern.
Since: 3.0.0
void ags_channel_remove_pattern (AgsChannel *channel
,GObject *pattern
);
Removes a pattern.
Since: 3.0.0
GObject *
ags_channel_get_playback (AgsChannel *channel
);
Get playback.
Since: 3.1.0
void ags_channel_set_playback (AgsChannel *channel
,GObject *playback
);
Set playback.
Since: 3.1.0
GList *
ags_channel_get_recall_id (AgsChannel *channel
);
Get recall id.
Since: 3.1.0
void ags_channel_set_recall_id (AgsChannel *channel
,GList *recall_id
);
Set recall id by replacing existing.
channel |
the AgsChannel |
|
recall_id |
the GList containing AgsRecallID. |
[element-type AgsAudio.RecallID][transfer full] |
Since: 3.1.0
void ags_channel_add_recall_id (AgsChannel *channel
,AgsRecallID *recall_id
);
Adds a recall id.
Since: 3.0.0
void ags_channel_remove_recall_id (AgsChannel *channel
,AgsRecallID *recall_id
);
Removes a recall id.
Since: 3.0.0
GList *
ags_channel_get_recall_container (AgsChannel *channel
);
Get recall_container.
the GList containig AgsRecallContainer.
[element-type AgsAudio.RecallContainer][transfer full]
Since: 3.1.0
void ags_channel_set_recall_container (AgsChannel *channel
,GList *recall_container
);
Set recall_container by replacing existing.
channel |
the AgsChannel |
|
recall_container |
the GList containing AgsRecallContainer. |
[element-type AgsAudio.RecallContainer][transfer full] |
Since: 3.1.0
void ags_channel_add_recall_container (AgsChannel *channel
,GObject *recall_container
);
Adds a recall container.
Since: 3.0.0
void ags_channel_remove_recall_container (AgsChannel *channel
,GObject *recall_container
);
Removes a recall container.
Since: 3.0.0
void ags_channel_set_play (AgsChannel *channel
,GList *play
);
Set play by replacing existing.
channel |
the AgsChannel |
|
play |
the GList containing AgsRecall. |
[element-type AgsAudio.Recall][transfer full] |
Since: 3.1.0
GList *
ags_channel_get_recall (AgsChannel *channel
);
Get recall.
Since: 3.1.0
void ags_channel_set_recall (AgsChannel *channel
,GList *recall
);
Set recall by replacing existing.
channel |
the AgsChannel |
|
recall |
the GList containing AgsRecall. |
[element-type AgsAudio.Recall][transfer full] |
Since: 3.1.0
void ags_channel_add_recall (AgsChannel *channel
,GObject *recall
,gboolean play_context
);
Adds a recall.
Since: 3.0.0
void ags_channel_insert_recall (AgsChannel *channel
,GObject *recall
,gboolean play_context
,gint position
);
Insert recall
at position
in channel
's play_context
.
Since: 3.3.0
void ags_channel_remove_recall (AgsChannel *channel
,GObject *recall
,gboolean play_context
);
Removes a recall.
Since: 3.0.0
GList * ags_channel_add_effect (AgsChannel *channel
,char *filename
,gchar *effect
);
Add specified effect to channel
.
Since: 3.0.0
void ags_channel_remove_effect (AgsChannel *channel
,guint nth
);
Remove specified effect of channel
.
Since: 3.0.0
void ags_channel_duplicate_recall (AgsChannel *channel
,AgsRecallID *recall_id
);
Duplicate AgsRecall template and assign recall_id
to it.
Since: 3.0.0
void ags_channel_resolve_recall (AgsChannel *channel
,AgsRecallID *recall_id
);
Resolve step of initialization.
Since: 3.0.0
void ags_channel_init_recall (AgsChannel *channel
,AgsRecallID *recall_id
,guint staging_flags
);
Prepare AgsRecall objects and invoke “run-init-pre”, “run-init-inter” or
“run-init-post” as specified by staging_flags
.
Since: 3.0.0
void ags_channel_play_recall (AgsChannel *channel
,AgsRecallID *recall_id
,guint staging_flags
);
Run the specified steps by recall_id
of channel
.
Since: 3.0.0
void ags_channel_done_recall (AgsChannel *channel
,AgsRecallID *recall_id
);
Done processing specified by recall_id
.
Since: 3.0.0
void ags_channel_cancel_recall (AgsChannel *channel
,AgsRecallID *recall_id
);
Cancel processing specified by recall_id
.
Since: 3.0.0
void ags_channel_cleanup_recall (AgsChannel *channel
,AgsRecallID *recall_id
);
Cleanup processing specified by recall_id
.
Since: 3.0.0
GList * ags_channel_start (AgsChannel *channel
,gint sound_scope
);
Start channel
's sound_scope
to do playback.
Since: 3.0.0
void ags_channel_stop (AgsChannel *channel
,GList *recall_id
,gint sound_scope
);
Stop channel
's sound_scope
playback specified by recall_id
.
channel |
the AgsChannel |
|
recall_id |
the GList containing AgsRecallID. |
[element-type AgsAudio.RecallID][transfer none] |
sound_scope |
the sound scope |
Since: 3.0.0
GList * ags_channel_check_scope (AgsChannel *channel
,gint sound_scope
);
Check channel
's sound_scope
.
the GList containing AgsRecallID or NULL
if not playing.
[element-type AgsAudio.RecallID][transfer full]
Since: 3.0.0
GList *
ags_channel_collect_all_channel_ports (AgsChannel *channel
);
Retrieve all ports of AgsChannel.
Since: 3.0.0
GList * ags_channel_collect_all_channel_ports_by_specifier_and_context (AgsChannel *channel
,gchar *specifier
,gboolean play_context
);
Retrieve specified port of AgsChannel
Since: 3.0.0
AgsChannel *
ags_channel_get_level (AgsChannel *channel
);
Get level.
Since: 3.0.0
void ags_channel_recursive_set_property (AgsChannel *channel
,gint n_params
,gchar **parameter_name
,GValue *value
);
Recursive set property for AgsChannel.
channel |
the AgsChannel |
|
n_params |
the count of paramter name and value pairs |
|
parameter_name |
a string vector containing parameter names |
|
value |
the value array |
Since: 3.0.0
void ags_channel_recursive_run_stage (AgsChannel *channel
,gint sound_scope
,guint staging_flags
);
Recursive run stage specified by staging_flags
for matching sound_scope
.
Since: 3.0.0
AgsChannel *
ags_channel_new (GObject *audio
);
Creates a new instance of AgsChannel, linking tree to audio
.
Since: 3.0.0
#define AGS_CHANNEL_DEFAULT_OCTAVE_SEMITONE (AGS_CHANNEL_MINIMUM_OCTAVE_SEMITONE)
#define AGS_CHANNEL_MINIMUM_NOTE_FREQUENCY (440.0 * exp((-69.0 / 12.0) * log(2.0)))
#define AGS_CHANNEL_MAXIMUM_NOTE_FREQUENCY (440.0 * exp((58.0 / 12.0) * log(2.0)))
#define AGS_CHANNEL_DEFAULT_NOTE_FREQUENCY (AGS_CHANNEL_MINIMUM_NOTE_FREQUENCY)
Enum values to control the behavior or indicate internal state of AgsChannel by enable/disable as flags.