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
00388 typedef struct {
00390 int samplerate;
00391
00393 int channels;
00394
00396 int format;
00397 } FishSoundInfo;
00398
00402 typedef struct {
00404 int format;
00405
00407 const char * name;
00408
00410 const char * extension;
00411 } FishSoundFormat;
00412
00417 typedef void * FishSound;
00418
00430 typedef int (*FishSoundDecoded) (FishSound * fsound, float ** pcm,
00431 long frames, void * user_data);
00432
00444 typedef int (*FishSoundEncoded) (FishSound * fsound, unsigned char * buf,
00445 long bytes, void * user_data);
00446
00447 #ifdef __cplusplus
00448 extern "C" {
00449 #endif
00450
00467 int
00468 fish_sound_identify (unsigned char * buf, long bytes);
00469
00476 FishSound * fish_sound_new (int mode, FishSoundInfo * fsinfo);
00477
00486 int fish_sound_set_decoded_callback (FishSound * fsound,
00487 FishSoundDecoded decoded,
00488 void * user_data);
00489
00498 int fish_sound_set_encoded_callback (FishSound * fsound,
00499 FishSoundEncoded encoded,
00500 void * user_data);
00501
00509 long fish_sound_decode (FishSound * fsound, unsigned char * buf, long bytes);
00510
00520 long fish_sound_encode (FishSound * fsound, float ** pcm, long frames);
00521
00527 long fish_sound_flush (FishSound * fsound);
00528
00538 int fish_sound_reset (FishSound * fsound);
00539
00545 int fish_sound_delete (FishSound * fsound);
00546
00555 int fish_sound_command (FishSound * fsound, int command, void * data,
00556 int datasize);
00557
00565 int fish_sound_get_interleave (FishSound * fsound);
00566
00576 int fish_sound_set_interleave (FishSound * fsound, int interleave);
00577
00595 long fish_sound_get_frameno (FishSound * fsound);
00596
00610 int fish_sound_set_frameno (FishSound * fsound, long frameno);
00611
00642 int fish_sound_prepare_truncation (FishSound * fsound, long next_granulepos,
00643 int next_eos);
00644
00645 #ifdef __cplusplus
00646 }
00647 #endif
00648
00649 #include <fishsound/comments.h>
00650
00651 #endif