#ifndef datavox_H
#define datavox_H

__swi(0x44380) void datavox_type(int channel, int type);
__swi(0x44381) void datavox_timed(int channel, int flag);
__swi(0x44386) void datavox_set_memory(int channel, byte *start, byte *end);
extern byte *datavox_read_address(int channel);
__swi(0x4438E) int datavox_sample_to_pitch(int samp_speed, int sys_speed);
__swi(0x44390) void datavox_unset(int channel);
__swi(0x44394) void datavox_deallocate_channel(int channel, int key);
__swi(0x44395) int datavox_request_channel(int channel, int key);
__swi(0x4439C) int datavox_system_speed(void);

extern os_error *xspch_ready(osbool *ready);
__swi(0x42B81) void spch_oldchannel(void);
__swi(0x42B83) void spch_say(const char *text);
__swi(0x42B84) void spch_sayw(const char *text);
__swi(0x42B8C) void spch_reset(void);

__swi(0x47E40) void qtmload_file(const char *filename, void *addr);
__swi(0x47E40) void qtmload_memory(int opt, const void *addr);
extern os_error *xqtmload_file(const char *filename, void *addr);
extern os_error *xqtmload_memory(int opt, void *addr);
__swi(0x47E41) void qtm_start(void);
__swi(0x47E42) void qtm_stop(void);
__swi(0x47E43) void qtm_pause(void);
__swi(0x47E44) void qtm_clear(int opt);
extern int qtm_stereo(int channel, int position);
__swi(0x47E55) int qtm_song_status(void);
extern void qtm_play_raw_sample(int channel, const void *addr, int len,
                                int repeat_off, int repeat_len, int note, int vol);
extern int qtm_sound_control(int channels, int tss_flags, int tss_handler,
                             int *old_tss_flags, int *old_tss_handler);
extern void qtm_register_sample(int sample, const void *addr, int len,
                                int repeat_off, int repeat_len, int vol, int finetune);
__swi(0x47E5C) int qtm_music_volume(int vol);
__swi(0x47E5D) int qtm_sample_volume(int vol);
__swi(0x47E5E) bits qtm_music_options(bits mask, bits value,
                                      bits *masked_value, bits *new_value);
extern void *qtm_music_interrupt(int opt, void *addr, void *r12, void **old_r12);
#endif

