diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/xas/audio.h | 38 | ||||
| -rw-r--r-- | include/xas/bank.h | 13 | ||||
| -rw-r--r-- | include/xas/mixer.h | 5 | ||||
| -rw-r--r-- | include/xas/riff.h | 4 | ||||
| -rw-r--r-- | include/xas/synth.h | 11 | ||||
| -rw-r--r-- | include/xas/vox.h | 12 | 
6 files changed, 41 insertions, 42 deletions
| diff --git a/include/xas/audio.h b/include/xas/audio.h index 5a92a50..b18a2d2 100644 --- a/include/xas/audio.h +++ b/include/xas/audio.h @@ -30,12 +30,16 @@ typedef ssize_t (*xas_audio_fill)(void *ctx,  typedef void (*xas_audio_cleanup)(void *ctx,                                      xas_audio_stream *stream); -struct _xas_audio_stream { -    enum xas_audio_stream_type type; - +typedef struct _xas_audio_format {      size_t channels,             sample_size,             sample_rate; +} xas_audio_format; + +struct _xas_audio_stream { +    enum xas_audio_stream_type type; + +    xas_audio_format format;      size_t buffer_size,             buffer_count; @@ -51,21 +55,29 @@ struct _xas_audio_stream {      void *ctx;  }; +void xas_audio_zero(xas_audio_format format, +                      void *dest, +                      size_t index, +                      size_t count); + +void xas_audio_copy(xas_audio_format format, +                      void *dest, +                      void *src, +                      size_t index_dest, +                      size_t index_src, +                      size_t count); +  xas_audio_stream *xas_audio_stream_new_sink(xas_audio_drain drain,                                                  xas_audio_cleanup cleanup, -                                                void *ctx, -                                                size_t channels, -                                                size_t sample_size, -                                                size_t sample_rate, -                                                size_t buffer_size); +                                                xas_audio_format format, +                                                size_t buffer_size, +                                                void *ctx);  xas_audio_stream *xas_audio_stream_new_source(xas_audio_fill fill,                                                    xas_audio_cleanup cleanup, -                                                  void *ctx, -                                                  size_t channels, -                                                  size_t sample_size, -                                                  size_t sample_rate, -                                                  size_t buffer_size); +                                                  xas_audio_format format, +                                                  size_t buffer_size, +                                                  void *ctx);  void xas_audio_stream_destroy(xas_audio_stream *stream); diff --git a/include/xas/bank.h b/include/xas/bank.h index ec3cb99..9f877d0 100644 --- a/include/xas/bank.h +++ b/include/xas/bank.h @@ -13,26 +13,25 @@ typedef struct _xas_bank_entry {  } xas_bank_entry;  typedef struct _xas_bank { -    size_t sample_size, -           sample_rate, -           entry_size, +    xas_audio_format format; + +    size_t entry_size,             entry_count;      int flags; -    float force; +    float gain;      size_t entry,             index;  } xas_bank; -xas_bank *xas_bank_new(size_t sample_size, -                           size_t sample_rate, +xas_bank *xas_bank_new(xas_audio_format format,                             size_t entry_size,                             size_t entry_count);  void xas_bank_destroy(xas_bank *bank); -int xas_bank_play(xas_bank *bank, size_t entry, float force); +int xas_bank_play(xas_bank *bank, size_t entry, float gain);  void xas_bank_stop(xas_bank *bank); diff --git a/include/xas/mixer.h b/include/xas/mixer.h index 73fd363..3769272 100644 --- a/include/xas/mixer.h +++ b/include/xas/mixer.h @@ -25,10 +25,7 @@ typedef struct _xas_mixer {      size_t buffer_size;  } xas_mixer; -xas_mixer *xas_mixer_new(size_t channels, -                             size_t sample_size, -                             size_t sample_rate, -                             size_t buffer_size); +xas_mixer *xas_mixer_new(xas_audio_format format, size_t buffer_size);  void xas_mixer_destroy(xas_mixer *mixer); diff --git a/include/xas/riff.h b/include/xas/riff.h index f78e9e9..5a5d4ed 100644 --- a/include/xas/riff.h +++ b/include/xas/riff.h @@ -50,9 +50,7 @@ typedef struct _xas_riff xas_riff;  #pragma pack(pop)  xas_audio_stream *xas_riff_new_file(const char *path, -                                        size_t channels, -                                        size_t sample_size, -                                        size_t sample_rate, +                                        xas_audio_format format,                                          int flags);  xas_audio_stream *xas_riff_open_file(const char *path, int flags); diff --git a/include/xas/synth.h b/include/xas/synth.h index 1d070aa..20446cd 100644 --- a/include/xas/synth.h +++ b/include/xas/synth.h @@ -13,19 +13,16 @@ typedef int16_t (*xas_synth_callback_sample)(xas_synth *synth, void *ctx);  typedef void (*xas_synth_callback_cleanup)(xas_synth *synth, void *ctx);  struct _xas_synth { -    size_t sample_size, -           sample_rate; - +    xas_audio_format format;      xas_synth_callback_sample  sample;      xas_synth_callback_cleanup cleanup;      void *ctx;  }; -xas_audio_stream *xas_synth_new(size_t sample_size, -                                    size_t sample_rate, -                                    size_t buffer_size, -                                    xas_synth_callback_sample  sample, +xas_audio_stream *xas_synth_new(xas_synth_callback_sample  sample,                                      xas_synth_callback_cleanup cleanup, +                                    xas_audio_format format, +                                    size_t buffer_size,                                      void *ctx);  #endif /* _XAS_SYNTH_H */ diff --git a/include/xas/vox.h b/include/xas/vox.h index 85d8d20..fd442a8 100644 --- a/include/xas/vox.h +++ b/include/xas/vox.h @@ -13,11 +13,9 @@  typedef struct _xas_vox {      const char *text2wave_path; -    size_t sample_size, -           sample_rate, -           buffer_size; +    xas_audio_format format; -    void *ctx; +    size_t buffer_size;      int flags; @@ -29,10 +27,8 @@ typedef struct _xas_vox {  } xas_vox;  xas_vox *xas_vox_new(const char *text2wave_path, -                         size_t sample_size, -                         size_t sample_rate, -                         size_t buffer_size, -                         void *ctx); +                         xas_audio_format format, +                         size_t buffer_size);  void xas_vox_destroy(xas_vox *vox); | 
 
    