struct sound_info { char **waveform_data; int length_seconds; unsigned char max_neg; unsigned char max_pos; int vals_per_sec; int channels; int refcount; SNDFILE *snd; SF_INFO sfinfo; char *filename; gboolean *mute; }; struct sound_play_data { SNDFILE *snd; SF_INFO *sfinfo; KryMarker *marker_start; KryMarker *marker_end; long frame_start; long frame_current; long frame_end; long mili_start; gboolean do_exit; gboolean prevent_change; gboolean lock_gtk; int play_speed; }; struct sound_info *sound_open(char *file, char **error); void sound_play(SNDFILE *snd, SF_INFO *sfinfo, KryMarker *marker_start, KryMarker *marker_end); long sound_buffer_fill(void *pSoundBuffer,long bufferLen, struct sound_play_data *data); void sound_stop(); void sound_mute(int channel, gboolean doMute); void sound_marker_end_changed(KryMarker *marker, long position, struct sound_play_data *data); void sound_buffer_progress(int bytes, struct sound_play_data *data); void sound_signal_pos_change(long pos); void sound_init();