diff options
Diffstat (limited to 'include/xas')
-rw-r--r-- | include/xas/bank.h | 11 | ||||
-rw-r--r-- | include/xas/object.h | 19 | ||||
-rw-r--r-- | include/xas/synth.h | 3 | ||||
-rw-r--r-- | include/xas/vox.h | 7 |
4 files changed, 35 insertions, 5 deletions
diff --git a/include/xas/bank.h b/include/xas/bank.h index 33be492..cd1511e 100644 --- a/include/xas/bank.h +++ b/include/xas/bank.h @@ -3,6 +3,7 @@ #include <sys/types.h> +#include <xas/object.h> #include <xas/audio.h> enum xas_bank_player_status { @@ -22,6 +23,8 @@ typedef struct _xas_bank { } xas_bank; typedef struct _xas_bank_player { + xas_object obj; + xas_bank *bank; enum xas_bank_player_status status; @@ -50,9 +53,11 @@ xas_bank_player *xas_bank_player_new(xas_bank *bank); void xas_bank_player_destroy(xas_bank_player *player); -int xas_bank_player_start(xas_bank_player *player, - size_t entry, - float gain); +int xas_bank_player_select(xas_bank_player *player, + size_t entry, + float gain); + +int xas_bank_player_start(xas_bank_player *player); int xas_bank_player_stop(xas_bank_player *player); diff --git a/include/xas/object.h b/include/xas/object.h new file mode 100644 index 0000000..b8b713b --- /dev/null +++ b/include/xas/object.h @@ -0,0 +1,19 @@ +#ifndef _XAS_OBJECT_H +#define _XAS_OBJECT_H + +typedef struct _xas_object xas_object; + +typedef int (*xas_object_start_callback)(xas_object *object); + +typedef int (*xas_object_stop_callback)(xas_object *object); + +struct _xas_object { + xas_object_start_callback start; + xas_object_stop_callback stop; +}; + +int xas_object_start(xas_object *object); + +int xas_object_stop(xas_object *object); + +#endif /* _XAS_OBJECT_H */ diff --git a/include/xas/synth.h b/include/xas/synth.h index 53f3343..61f50bc 100644 --- a/include/xas/synth.h +++ b/include/xas/synth.h @@ -4,6 +4,7 @@ #include <stdint.h> #include <sys/types.h> +#include <xas/object.h> #include <xas/audio.h> #define XAS_SYNTH_DEFAULT_FREQUENCY 2600 /* Hz */ @@ -25,6 +26,8 @@ typedef struct _xas_synth xas_synth; typedef int16_t (*xas_synth_sample_callback)(xas_synth *synth); struct _xas_synth { + xas_object obj; + enum xas_synth_type type; enum xas_synth_state state; diff --git a/include/xas/vox.h b/include/xas/vox.h index 5a1cacf..9d63bba 100644 --- a/include/xas/vox.h +++ b/include/xas/vox.h @@ -5,6 +5,7 @@ #include <stdarg.h> #include <sys/types.h> +#include <xas/object.h> #include <xas/audio.h> #define XAS_VOX_SETTINGS_TMP_PATH "/tmp/xas-vox.XXXXXX" @@ -16,6 +17,8 @@ enum xas_vox_state { }; typedef struct _xas_vox { + xas_object obj; + xas_audio_format format; size_t buffer_size; @@ -66,12 +69,12 @@ int xas_vox_set_parameter_int(xas_vox *vox, const char *name, int value); +int xas_vox_generate(xas_vox *vox); + int xas_vox_stop(xas_vox *vox); int xas_vox_active(xas_vox *vox); -int xas_vox_generate(xas_vox *vox); - int xas_vox_vsayf(xas_vox *vox, const char *message, va_list args); int xas_vox_sayf(xas_vox *vox, const char *message, ...); |