1 #ifndef CLIB_VORBISFILE_PROTOS_H
    2 #define CLIB_VORBISFILE_PROTOS_H
    3 
    4 #include <exec/types.h>
    5 #include <exec/semaphores.h>
    6 #include <dos/dos.h>
    7 
    8 #include <libraries/vorbisfile.h>
    9 #include <utility/hooks.h>
   10 #include <stdio.h>
   11 
   12 #ifdef __cplusplus
   13 extern "C"
   14 {
   15 #endif /* __cplusplus */
   16 
   17 /***************************/
   18 /* vorbisfile              */
   19 
   20 int ov_clear(OggVorbis_File *vf);
   21 int ov_fopen(char *path,OggVorbis_File *vf);
   22 int ov_open(BPTR f,OggVorbis_File *vf,char *initial,long ibytes);
   23 int ov_open_callbacks(void *datasource, OggVorbis_File *vf, char *initial, long ibytes, ov_callbacks *callbacks);
   24 int ov_test(BPTR f,OggVorbis_File *vf,char *initial,long ibytes);
   25 int ov_test_callbacks(void *datasource, OggVorbis_File *vf, char *initial, long ibytes, ov_callbacks *callbacks);
   26 int ov_test_open(OggVorbis_File *vf);
   27 
   28 long ov_bitrate(OggVorbis_File *vf,int i);
   29 long ov_bitrate_instant(OggVorbis_File *vf);
   30 long ov_seekable(OggVorbis_File *vf);
   31 long ov_serialnumber(OggVorbis_File *vf,int i);
   32 
   33 ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i);
   34 ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i);
   35 double ov_time_total(OggVorbis_File *vf,int i);
   36 
   37 int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos);
   38 int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos);
   39 int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos);
   40 int ov_time_seek(OggVorbis_File *vf,double pos);
   41 int ov_time_seek_page(OggVorbis_File *vf, double pos);
   42 
   43 ogg_int64_t ov_raw_tell(OggVorbis_File *vf);
   44 ogg_int64_t ov_pcm_tell(OggVorbis_File *vf);
   45 double ov_time_tell(OggVorbis_File *vf);
   46 
   47 vorbis_info *ov_info(OggVorbis_File *vf,int link);
   48 vorbis_comment *ov_comment(OggVorbis_File *vf,int link);
   49 
   50 long ov_read(OggVorbis_File *vf,char *buffer,int length, int bigendianp,int word,int sgned,int *bitstream);
   51 long ov_read_float(OggVorbis_File *vf,float ***pcm_channels,int length, int *bitstream);
   52 long ov_streams(OggVorbis_File *vf);
   53 
   54 /********************************/
   55 /* vorbisenc                    */
   56 
   57 int vorbis_encode_init(vorbis_info *vi, long channels, long rate, long max_bitrate, long nominal_bitrate, long min_bitrate);
   58 int vorbis_encode_setup_managed(vorbis_info *vi, long channels, long rate, long max_bitrate, long nominal_bitrate, long min_bitrate);
   59 int vorbis_encode_setup_vbr(vorbis_info *vi, long channels, long rate, float quality);
   60 int vorbis_encode_init_vbr(vorbis_info *vi, long channels, long rate, float base_quality);
   61 int vorbis_encode_setup_init(vorbis_info *vi);
   62 int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg);
   63 
   64 /******************************/
   65 /* required for enc too       */
   66 
   67 void vorbis_info_init(vorbis_info *vi);
   68 void vorbis_info_clear(vorbis_info *vi);
   69 
   70 void vorbis_comment_init(vorbis_comment *vc);
   71 void vorbis_comment_add_tag(vorbis_comment *vc, const char *tag, const char *contents);
   72 void vorbis_comment_clear(vorbis_comment *vc);
   73 
   74 int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi);
   75 int vorbis_analysis_headerout(vorbis_dsp_state *v, vorbis_comment *vc, ogg_packet *op, ogg_packet *op_comm, ogg_packet *op_code);
   76 float **vorbis_analysis_buffer(vorbis_dsp_state *v,int vals);
   77 int vorbis_analysis_wrote(vorbis_dsp_state *v,int vals);
   78 int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb);
   79 int vorbis_analysis(vorbis_block *vb,ogg_packet *op);
   80 
   81 int vorbis_synthesis_idheader(ogg_packet *op);
   82 int vorbis_synthesis_headerin(vorbis_info *vi, vorbis_comment *vc, ogg_packet *op);
   83 int vorbis_synthesis_init(vorbis_dsp_state *v, vorbis_info *vi);
   84 int vorbis_synthesis_restart(vorbis_dsp_state *v);
   85 int vorbis_synthesis(vorbis_block *vb, ogg_packet *op);
   86 int vorbis_synthesis_trackonly(vorbis_block *vb, ogg_packet *op);
   87 int vorbis_synthesis_blockin(vorbis_dsp_state *v, vorbis_block *vb);
   88 int vorbis_synthesis_pcmout(vorbis_dsp_state *v, float ***pcm);
   89 int vorbis_synthesis_lapout(vorbis_dsp_state *v, float ***pcm);
   90 int vorbis_synthesis_read(vorbis_dsp_state *v, int samples);
   91 long vorbis_packet_blocksize(vorbis_info *vi, ogg_packet *op);
   92 int vorbis_synthesis_halfrate(vorbis_info *v,int flag);
   93 int vorbis_synthesis_halfrate_p(vorbis_info *v);
   94 
   95 
   96 
   97 
   98 int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb);
   99 int vorbis_block_clear(vorbis_block *vb);
  100 void vorbis_dsp_clear(vorbis_dsp_state *v);
  101 
  102 int ogg_stream_init(ogg_stream_state *os,int serialno);
  103 int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op);
  104 int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op);
  105 int ogg_stream_packetpeek(ogg_stream_state *os, ogg_packet *op);
  106 int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og);
  107 int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og);
  108 int ogg_stream_flush(ogg_stream_state *os, ogg_page *og);
  109 int ogg_stream_clear(ogg_stream_state *os);
  110 
  111 int vorbis_bitrate_addblock(vorbis_block *vb);
  112 int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd, ogg_packet *op);
  113 
  114 void ogg_page_checksum_set(ogg_page *og);
  115 int ogg_page_version(const ogg_page *og);
  116 int ogg_page_continued(const ogg_page *og);
  117 int ogg_page_bos(const ogg_page *og);
  118 int ogg_page_eos(const ogg_page *og);
  119 ogg_int64_t ogg_page_granulepos(const ogg_page *og);
  120 int ogg_page_serialno(const ogg_page *og);
  121 long ogg_page_pageno(const ogg_page *og);
  122 int ogg_page_packets(const ogg_page *og);
  123 
  124 int ogg_sync_init(ogg_sync_state *oy);
  125 int ogg_sync_clear(ogg_sync_state *oy);
  126 int ogg_sync_reset(ogg_sync_state *oy);
  127 char *ogg_sync_buffer(ogg_sync_state *oy, long size);
  128 int ogg_sync_wrote(ogg_sync_state *oy, long bytes);
  129 long ogg_sync_pageseek(ogg_sync_state *oy, ogg_page *og);
  130 int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og);
  131 
  132 int ogg_stream_reset(ogg_stream_state *os);
  133 int ogg_stream_reset_serialno(ogg_stream_state *os, int serialno);
  134 int ogg_stream_eos(ogg_stream_state *os);
  135 
  136 int vorbis_info_blocksize(vorbis_info *vi, int zo);
  137 
  138 void vorbis_comment_add(vorbis_comment *vc, const char *comment); 
  139 char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count);
  140 int vorbis_comment_query_count(vorbis_comment *vc, const char *tag);
  141 int vorbis_commentheader_out(vorbis_comment *vc, ogg_packet *op);
  142 
  143 double vorbis_granule_time(vorbis_dsp_state *v, ogg_int64_t granulepos);
  144 
  145 int ov_raw_seek_lap(OggVorbis_File *vf, ogg_int64_t pos);
  146 int ov_pcm_seek_lap(OggVorbis_File *vf, ogg_int64_t pos);
  147 int ov_pcm_seek_page_lap(OggVorbis_File *vf, ogg_int64_t pos);
  148 int ov_time_seek_lap(OggVorbis_File *vf, double pos);
  149 int ov_time_seek_page_lap(OggVorbis_File *vf, double pos);
  150 
  151 int ov_crosslap(OggVorbis_File *vf1, OggVorbis_File *vf2);
  152 
  153 int ov_halfrate(OggVorbis_File *vf, int flag);
  154 int ov_halfrate_p(OggVorbis_File *vf);
  155 
  156 
  157 const char *vorbis_version_string(void);
  158 
  159 int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, int count, long e_o_s, ogg_int64_t granulepos);
  160 int ogg_sync_check(ogg_sync_state *oy);
  161 int ogg_stream_check(ogg_stream_state *os);
  162 
  163 long ov_read_filter(OggVorbis_File *vf,char *buffer,int length,int bigendianp,int word,int sgned,int *bitstream,void (*filter)(float **pcm,long channels,long samples,void *filter_param),void *filter_param);
  164 
  165 
  166 #ifdef __cplusplus
  167 }
  168 #endif /* __cplusplus */
  169 
  170 #endif /* CLIB_VORBISFILE_PROTOS_H */