| Top |
| GQuark | ags_playable_error_quark () |
| gboolean | ags_playable_open () |
| gboolean | ags_playable_rw_open () |
| guint | ags_playable_level_count () |
| guint | ags_playable_nth_level () |
| gchar * | ags_playable_selected_level () |
| gchar ** | ags_playable_sublevel_names () |
| void | ags_playable_level_select () |
| void | ags_playable_level_up () |
| void | ags_playable_iter_start () |
| gboolean | ags_playable_iter_next () |
| void | ags_playable_info () |
| guint | ags_playable_get_samplerate () |
| guint | ags_playable_get_format () |
| double * | ags_playable_read () |
| void | ags_playable_write () |
| void | ags_playable_flush () |
| void | ags_playable_seek () |
| void | ags_playable_close () |
| GList * | ags_playable_read_audio_signal () |
| #define | AGS_IS_PLAYABLE() |
| #define | AGS_IS_PLAYABLE_INTERFACE() |
| #define | AGS_PLAYABLE() |
| #define | AGS_PLAYABLE_GET_INTERFACE() |
| #define | AGS_PLAYABLE_INTERFACE() |
| GType | ags_playable_get_type () |
| #define | AGS_PLAYABLE_ERROR |
| enum | AgsPlayableError |
| #define | AGS_TYPE_PLAYABLE |
| AgsPlayable | |
| struct | AgsPlayableInterface |
gboolean ags_playable_open (AgsPlayable *playable,gchar *name);
Opens a file in read-only mode.
Since: 1.0.0
gboolean ags_playable_rw_open (AgsPlayable *playable,gchar *name,gboolean create,guint samplerate,guint channels,guint frames,guint format);
Opens a file in read/write mode.
playable |
the AgsPlayable |
|
name |
the filename |
|
create |
if |
|
samplerate |
the samplerate of the file |
|
channels |
the count of audio channels |
|
frames |
the count of frames |
|
format |
the audio file's format |
Since: 1.0.0
guint
ags_playable_level_count (AgsPlayable *playable);
Retrieve the count of levels.
Since: 1.0.0
guint
ags_playable_nth_level (AgsPlayable *playable);
Retrieve the selected level.
Since: 1.0.0
gchar *
ags_playable_selected_level (AgsPlayable *playable);
Retrieve the selected level's name.
Since: 1.0.0
gchar **
ags_playable_sublevel_names (AgsPlayable *playable);
Retrieve the all sub-level's name.
Since: 1.0.0
void ags_playable_level_select (AgsPlayable *playable,guint nth_level,gchar *sublevel_name,GError **error);
Select a level in an monolythic file where nth_level
and sublevel_name
are equivalent.
If sublevel_name
is NULL nth_level
will be chosen.
playable |
an AgsPlayable |
|
nth_level |
of type guint |
|
sublevel_name |
a gchar pointer |
|
error |
an error that may occure |
Since: 1.0.0
void ags_playable_level_up (AgsPlayable *playable,guint levels,GError **error);
Move up in hierarchy.
Since: 1.0.0
void
ags_playable_iter_start (AgsPlayable *playable);
Start iterating current level.
Since: 1.0.0
gboolean
ags_playable_iter_next (AgsPlayable *playable);
Iterating next on current level.
Since: 1.0.0
void ags_playable_info (AgsPlayable *playable,guint *channels,guint *frames,guint *loop_start,guint *loop_end,GError **error);
Retrieve information about selected audio data.
playable |
an AgsPlayable |
|
channels |
channels |
|
frames |
frames |
|
loop_start |
loop start |
|
loop_end |
loop end |
|
error |
returned error |
Since: 1.0.0
guint
ags_playable_get_samplerate (AgsPlayable *playable);
Get samplerate.
Since: 1.0.0
guint
ags_playable_get_format (AgsPlayable *playable);
Get format.
Since: 1.0.0
double * ags_playable_read (AgsPlayable *playable,guint channel,GError **error);
Read audio buffer of playable audio data.
Since: 1.0.0
void ags_playable_write (AgsPlayable *playable,double *buffer,guint buffer_length);
Write buffer_length
of buffer
audio data.
Since: 1.0.0
void
ags_playable_flush (AgsPlayable *playable);
Flush internal audio buffer.
Since: 1.0.0
void ags_playable_seek (AgsPlayable *playable,guint frames,gint whence);
Seek playable
to address.
Since: 1.0.0
void
ags_playable_close (AgsPlayable *playable);
Close audio file.
Since: 1.0.0
GList * ags_playable_read_audio_signal (AgsPlayable *playable,GObject *soundcard,guint start_channel,guint channels_to_read);
Read the audio signal of AgsPlayable
.
playable |
an AgsPlayable |
|
soundcard |
the AgsSoundcard defaulting to |
|
start_channel |
read from channel |
|
channels_to_read |
n-times |
Since: 1.0.0
#define AGS_IS_PLAYABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), AGS_TYPE_PLAYABLE))
#define AGS_IS_PLAYABLE_INTERFACE(vtable) (G_TYPE_CHECK_CLASS_TYPE((vtable), AGS_TYPE_PLAYABLE))
#define AGS_PLAYABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_PLAYABLE, AgsPlayable))
#define AGS_PLAYABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), AGS_TYPE_PLAYABLE, AgsPlayableInterface))
#define AGS_PLAYABLE_INTERFACE(vtable) (G_TYPE_CHECK_CLASS_CAST((vtable), AGS_TYPE_PLAYABLE, AgsPlayableInterface))
struct AgsPlayableInterface {
GTypeInterface ginterface;
gboolean (*open)(AgsPlayable *playable, gchar *name);
gboolean (*rw_open)(AgsPlayable *playable, gchar *name,
gboolean create,
guint samplerate, guint channels,
guint frames,
guint format);
/* these functions are especially for soundfonts */
guint (*level_count)(AgsPlayable *playable);
guint (*nth_level)(AgsPlayable *playable);
gchar* (*selected_level)(AgsPlayable *playable);
gchar** (*sublevel_names)(AgsPlayable *playable);
void (*level_select)(AgsPlayable *playable,
guint nth_level, gchar *sublevel_name,
GError **error);
void (*level_up)(AgsPlayable *playable,
guint levels,
GError **error);
void (*iter_start)(AgsPlayable *playable);
gboolean (*iter_next)(AgsPlayable *playable);
/* read sample data */
void (*info)(AgsPlayable *playable,
guint *channels, guint *frames,
guint *loop_start, guint *loop_end,
GError **error);
guint (*get_samplerate)(AgsPlayable *playable);
guint (*get_format)(AgsPlayable *playable);
double* (*read)(AgsPlayable *playable,
guint channel,
GError **error);
int* (*read_int)(AgsPlayable *playable,
guint channel,
GError **error);
/* write sample data */
void (*write)(AgsPlayable *playable,
double *buffer, guint buffer_length);
void (*write_int)(AgsPlayable *playable,
int *buffer, guint buffer_length);
void (*flush)(AgsPlayable *playable);
/* position */
void (*seek)(AgsPlayable *playable,
guint frames, gint whence);
/* close */
void (*close)(AgsPlayable *playable);
};