Advanced Gtk+ Sequencer Reference Manual | ||||
---|---|---|---|---|
Top | Description |
#include <ags/audio/ags_audio.h> struct AgsAudio; struct AgsAudioClass; enum AgsAudioFlags;void ags_audio_add_recall (AgsAudio *audio
,,
GObject *recall);
gboolean playvoid ags_audio_add_recall_container (AgsAudio *audio
,);
GObject *recall_containervoid ags_audio_add_recall_id (AgsAudio *audio
,);
GObject *recall_idvoid ags_audio_add_recycling_container (AgsAudio *audio
,);
GObject *recycling_containervoid ags_audio_cancel (AgsAudio *audio
,AgsRecallID *recall_id
);void ags_audio_done (AgsAudio *audio
,AgsRecallID *recall_id
);void ags_audio_duplicate_recall (AgsAudio *audio
,AgsRecallID *recall_id
);GList * ags_audio_find_port (AgsAudio *audio
);void ags_audio_init_recall (AgsAudio *audio
,,
gint stageAgsRecallID *recall_id
); AgsRecallID * ags_audio_init_run (AgsAudio *audio
);gboolean ags_audio_is_playing (AgsAudio *audio
); AgsAudio * ags_audio_new ();void ags_audio_open_files (AgsAudio *audio
,,
GSList *filenames,
gboolean overwrite_channels);
gboolean create_channelsvoid ags_audio_play (AgsAudio *audio
,AgsRecallID *recall_id
,);
gint stagevoid ags_audio_recall_change_state (AgsAudio *audio
,);
gboolean enableGList * ags_audio_recursive_play_init (AgsAudio *audio
,,
gboolean playback,
gboolean sequencer);
gboolean notationvoid ags_audio_remove (AgsAudio *audio
,AgsRecallID *recall_id
);void ags_audio_remove_recall (AgsAudio *audio
,,
GObject *recall);
gboolean playvoid ags_audio_remove_recall_container (AgsAudio *audio
,);
GObject *recall_containervoid ags_audio_remove_recall_id (AgsAudio *audio
,);
GObject *recall_idvoid ags_audio_remove_recycling_container (AgsAudio *audio
,);
GObject *recycling_containervoid ags_audio_resolve_recall (AgsAudio *audio
,AgsRecallID *recall_id
);void ags_audio_set_audio_channels (AgsAudio *audio
,);
guint audio_channelsvoid ags_audio_set_devout (AgsAudio *audio
,);
GObject *devoutvoid ags_audio_set_flags (AgsAudio *audio
,);
guint flagsvoid ags_audio_set_pads (AgsAudio *audio
,,
GType type);
guint padsvoid ags_audio_set_sequence_length (AgsAudio *audio
,);
guint sequence_lengthvoid ags_audio_tact (AgsAudio *audio
,AgsRecallID *recall_id
);void ags_audio_unset_flags (AgsAudio *audio
,);
guint flags
AgsAudio organizes AgsChannel objects either as input or output and is responsible of their alignment. The class can contain AgsRecall objects in order to perform computation on all channels or in audio context. Therefor exists AgsRecyclingContainer acting as tree context.
At least one AgsRecallID is assigned to it and has one more if
AGS_AUDIO_OUTPUT_HAS_RECYCLING
If AGS_AUDIO_HAS_NOTATION
struct AgsAudio { GObject object; guint flags; GObject *devout; guint level; guint sequence_length; guint audio_channels; guint frequence; guint output_pads; guint output_lines; guint input_pads; guint input_lines; AgsChannel *output; AgsChannel *input; gpointer devout_play_domain; GList *notation; GList *recall_id; GList *recycling_container; GList *container; GList *recall; GList *play; GList *recall_remove; //TODO:JK: verify deprecation GList *play_remove; //TODO:JK: verify deprecation GtkWidget *machine; };
struct AgsAudioClass { GObjectClass object; void (*set_audio_channels)(AgsAudio *audio, guint audio_channels, guint audio_channels_old); void (*set_pads)(AgsAudio *audio, GType type, guint pads, guint pads_old); AgsRecallID* (*init_run)(AgsAudio *audio); void (*tact)(AgsAudio *audio, AgsRecallID *recall_id); void (*done)(AgsAudio *audio, AgsRecallID *recall_id); };
typedef enum { AGS_AUDIO_OUTPUT_HAS_RECYCLING = 1, AGS_AUDIO_INPUT_HAS_RECYCLING = 1 << 1, AGS_AUDIO_INPUT_TAKES_FILE = 1 << 2, AGS_AUDIO_HAS_NOTATION = 1 << 3, AGS_AUDIO_SYNC = 1 << 4, // can be combined with below AGS_AUDIO_ASYNC = 1 << 5, AGS_AUDIO_RUNNING = 1 << 6, AGS_AUDIO_PLAYING = 1 << 7, AGS_AUDIO_NOTATION_DEFAULT = 1 << 8, } AgsAudioFlags;
void ags_audio_add_recall (AgsAudio *audio
,,
GObject *recall);
gboolean play
Adds a recall.
Since 0.4
void ags_audio_add_recall_container (AgsAudio *audio
,);
GObject *recall_container
Adds a recall container.
|
an AgsAudio |
|
the AgsRecallContainer |
Since 0.4
void ags_audio_add_recall_id (AgsAudio *audio
,);
GObject *recall_id
Adds a recall id.
|
an AgsAudio |
|
the AgsRecallID |
Since 0.4
void ags_audio_add_recycling_container (AgsAudio *audio
,);
GObject *recycling_container
Adds a recycling container.
|
an AgsAudio |
|
the AgsRecyclingContainer |
Since 0.4
void ags_audio_cancel (AgsAudio *audio
,AgsRecallID *recall_id
);
Cancel processing audio data.
|
the AgsAudio |
|
the AgsRecallID to apply to |
Since 0.4
void ags_audio_done (AgsAudio *audio
,AgsRecallID *recall_id
);
Is emitted as playing audio is done.
|
an AgsAudio |
|
the current AgsRecallID |
Since 0.4
void ags_audio_duplicate_recall (AgsAudio *audio
,AgsRecallID *recall_id
);
Duplicate all AgsRecall templates of this AgsAudio.
|
an AgsAudio |
|
an AgsRecallID |
Since 0.4
GList * ags_audio_find_port (AgsAudio *audio
);
Retrieve all ports of AgsAudio.
Since 0.4
void ags_audio_init_recall (AgsAudio *audio
,,
gint stageAgsRecallID *recall_id
);
Initializes the recalls of audio
|
the AgsAudio |
|
stage benning at 0 up to 2, or just -1 |
|
the AgsRecallID to use or |
Since 0.4
AgsRecallID * ags_audio_init_run (AgsAudio *audio
);
Is emitted as audio is initialized.
|
an AgsAudio |
Returns : |
the current AgsRecallID |
Since 0.4
gboolean ags_audio_is_playing (AgsAudio *audio
);
Determine if AgsAudio is playing.
|
the AgsAudio |
Returns : |
TRUE if it's playing otherwise FALSE |
Since 0.4
AgsAudio * ags_audio_new ();
Creates an AgsAudio, with defaults of devout
.
Since 0.3
void ags_audio_open_files (AgsAudio *audio
,,
GSList *filenames,
gboolean overwrite_channels);
gboolean create_channels
Open some files.
|
the AgsAudio |
|
the files to open |
|
if existing channels should be assigned |
|
if new channels should be created as not fitting if combined with overwrite_channels
|
Since 0.4
void ags_audio_play (AgsAudio *audio
,AgsRecallID *recall_id
,);
gint stage
Performs on single play call of appropriate stage.
|
the AgsAudio |
|
the AgsRecallID to apply to |
|
valid range is from 0 up to 2 |
Since 0.4
void ags_audio_recall_change_state (AgsAudio *audio
,);
gboolean enable
GList * ags_audio_recursive_play_init (AgsAudio *audio
,,
gboolean playback,
gboolean sequencer);
gboolean notation
Initializes AgsAudio in order to do playback, sequencer or notation.
|
the AgsAudio object |
|
if doing playback |
|
if doing sequencer |
|
if doing notation |
Returns : |
a list containing all AgsRecallID |
Since 0.4
void ags_audio_remove (AgsAudio *audio
,AgsRecallID *recall_id
);
Remove processing audio data.
|
the AgsAudio |
|
the AgsRecallID to apply to |
Since 0.4
void ags_audio_remove_recall (AgsAudio *audio
,,
GObject *recall);
gboolean play
Removes a recall.
Since 0.4
void ags_audio_remove_recall_container (AgsAudio *audio
,);
GObject *recall_container
Removes a recall container.
|
an AgsAudio |
|
the AgsRecallContainer |
Since 0.4
void ags_audio_remove_recall_id (AgsAudio *audio
,);
GObject *recall_id
Removes a recall id.
|
an AgsAudio |
|
the AgsRecallID |
Since 0.4
void ags_audio_remove_recycling_container (AgsAudio *audio
,);
GObject *recycling_container
Removes a recycling container.
|
an AgsAudio |
|
the AgsRecyclingContainer |
Since 0.4
void ags_audio_resolve_recall (AgsAudio *audio
,AgsRecallID *recall_id
);
Performs resolving of recalls.
|
the AgsAudio |
|
the AgsRecallID to use |
Since 0.4
void ags_audio_set_audio_channels (AgsAudio *audio
,);
guint audio_channels
Resize audio channels AgsInput will be allocated first.
|
the AgsAudio |
|
new audio channels |
Since 0.3
void ags_audio_set_devout (AgsAudio *audio
,);
GObject *devout
Sets a devout object on audio.
Since 0.4
void ags_audio_set_flags (AgsAudio *audio
,);
guint flags
Enable a feature of AgsAudio.
|
an AgsAudio |
|
see enum AgsAudioFlags |
Since 0.4
void ags_audio_set_pads (AgsAudio *audio
,,
GType type);
guint pads
Sets pad count for the apropriate type
|
an AgsAudio |
|
AGS_TYPE_INPUT or AGS_TYPE_OUTPUT |
|
new pad count |
Since 0.3
void ags_audio_set_sequence_length (AgsAudio *audio
,);
guint sequence_length
Sets sequence length.
|
an AgsAudio |
|
the sequence length |
Since 0.4
void ags_audio_tact (AgsAudio *audio
,AgsRecallID *recall_id
);
Is emitted as audio is played.
|
an AgsAudio |
|
the current AgsRecallID |
Since 0.4
void ags_audio_unset_flags (AgsAudio *audio
,);
guint flags
Disable a feature of AgsAudio.
|
an AgsAudio |
|
see enum AgsAudioFlags |
Since 0.4