00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef __FISH_SOUND_H__
00034 #define __FISH_SOUND_H__
00035
00036 #include <fishsound/constants.h>
00037
00384 typedef struct {
00386 int samplerate;
00387
00389 int channels;
00390
00392 int format;
00393 } FishSoundInfo;
00394
00398 typedef struct {
00400 int format;
00401
00403 const char * name;
00404
00406 const char * extension;
00407 } FishSoundFormat;
00408
00413 typedef void * FishSound;
00414
00426 typedef int (*FishSoundDecoded) (FishSound * fsound, float ** pcm,
00427 long frames, void * user_data);
00428
00440 typedef int (*FishSoundEncoded) (FishSound * fsound, unsigned char * buf,
00441 long bytes, void * user_data);
00442
00459 int
00460 fish_sound_identify (unsigned char * buf, long bytes);
00461
00468 FishSound * fish_sound_new (int mode, FishSoundInfo * fsinfo);
00469
00478 int fish_sound_set_decoded_callback (FishSound * fsound,
00479 FishSoundDecoded decoded,
00480 void * user_data);
00481
00490 int fish_sound_set_encoded_callback (FishSound * fsound,
00491 FishSoundEncoded encoded,
00492 void * user_data);
00493
00501 long fish_sound_decode (FishSound * fsound, unsigned char * buf, long bytes);
00502
00512 long fish_sound_encode (FishSound * fsound, float ** pcm, long frames);
00513
00519 long fish_sound_flush (FishSound * fsound);
00520
00526 int fish_sound_reset (FishSound * fsound);
00527
00533 int fish_sound_delete (FishSound * fsound);
00534
00543 int fish_sound_command (FishSound * fsound, int command, void * data,
00544 int datasize);
00545
00553 int fish_sound_get_interleave (FishSound * fsound);
00554
00564 int fish_sound_set_interleave (FishSound * fsound, int interleave);
00565
00566 #endif