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);