00001 #include <fishsound/constants.h>
00002 typedef struct {
00003 int samplerate;
00004 int channels;
00005 int format;
00006 } FishSoundInfo;
00007 typedef struct {
00008 int format;
00009 const char * name;
00010 const char * extension;
00011 } FishSoundFormat;
00012
00013 typedef void * FishSound;
00014 typedef int (__cdecl *FishSoundDecoded) (FishSound * fsound, float ** pcm,
00015 long frames, void * user_data);
00016 typedef int (__cdecl *FishSoundEncoded) (FishSound * fsound, unsigned char * buf,
00017 long bytes, void * user_data);
00018 int __cdecl fish_sound_identify (unsigned char * buf, long bytes);
00019
00020 FishSound * __cdecl fish_sound_new (int mode, FishSoundInfo * fsinfo);
00021
00022 int __cdecl fish_sound_set_decoded_callback (FishSound * fsound,
00023 FishSoundDecoded decoded,
00024 void * user_data);
00025
00026 int __cdecl fish_sound_set_encoded_callback (FishSound * fsound,
00027 FishSoundEncoded encoded,
00028 void * user_data);
00029
00030 long __cdecl fish_sound_decode (FishSound * fsound, unsigned char * buf, long bytes);
00031
00032 long __cdecl fish_sound_encode (FishSound * fsound, float ** pcm, long frames);
00033
00034 long __cdecl fish_sound_flush (FishSound * fsound);
00035
00036 int __cdecl fish_sound_reset (FishSound * fsound);
00037
00038 int __cdecl fish_sound_delete (FishSound * fsound);
00039
00040 int __cdecl fish_sound_command (FishSound * fsound, int command, void * data,
00041 int datasize);
00042
00043 int __cdecl fish_sound_get_interleave (FishSound * fsound);
00044
00045 int __cdecl fish_sound_set_interleave (FishSound * fsound, int interleave);
00046
00047 long __cdecl fish_sound_get_frameno (FishSound * fsound);