loader.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #ifndef VBF_LOADER_H
  2. #define VBF_LOADER_H
  3. #include "vorbis/vorbisfile.h"
  4. #if defined(_WIN32)
  5. #define VBF_APIENTRY __cdecl
  6. #else
  7. #define VBF_APIENTRY
  8. #endif
  9. // API function pointers type definitions
  10. typedef int (VBF_APIENTRY *LPOVCLEAR)(OggVorbis_File *vf);
  11. typedef int (VBF_APIENTRY *LPOVFOPEN)(const char *path,OggVorbis_File *vf);
  12. typedef int (VBF_APIENTRY *LPOVOPEN)(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes);
  13. typedef int (VBF_APIENTRY *LPOVOPENCALLBACKS)(void *datasource, OggVorbis_File *vf, const char *initial, long ibytes, ov_callbacks callbacks);
  14. typedef int (VBF_APIENTRY *LPOVTEST)(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes);
  15. typedef int (VBF_APIENTRY *LPOVTESTCALLBACKS)(void *datasource, OggVorbis_File *vf, const char *initial, long ibytes, ov_callbacks callbacks);
  16. typedef int (VBF_APIENTRY *LPOVTESTOPEN)(OggVorbis_File *vf);
  17. typedef long (VBF_APIENTRY *LPOVBITRATE)(OggVorbis_File *vf,int i);
  18. typedef long (VBF_APIENTRY *LPOVBITRATEINSTANT)(OggVorbis_File *vf);
  19. typedef int (VBF_APIENTRY *LPOVSTREAMS)(OggVorbis_File *vf);
  20. typedef int (VBF_APIENTRY *LPOVSEEKABLE)(OggVorbis_File *vf);
  21. typedef int (VBF_APIENTRY *LPOVSERIALNUMBER)(OggVorbis_File *vf,int i);
  22. typedef ogg_int64_t (VBF_APIENTRY *LPOVRAWTOTAL)(OggVorbis_File *vf,int i);
  23. typedef ogg_int64_t (VBF_APIENTRY *LPOVPCMTOTAL)(OggVorbis_File *vf,int i);
  24. typedef double (VBF_APIENTRY *LPOVTIMETOTAL)(OggVorbis_File *vf,int i);
  25. typedef int (VBF_APIENTRY *LPOVRAWSEEK)(OggVorbis_File *vf,ogg_int64_t pos);
  26. typedef int (VBF_APIENTRY *LPOVPCMSEEK)(OggVorbis_File *vf,ogg_int64_t pos);
  27. typedef int (VBF_APIENTRY *LPOVPCMSEEKPAGE)(OggVorbis_File *vf,ogg_int64_t pos);
  28. typedef int (VBF_APIENTRY *LPOVTIMESEEK)(OggVorbis_File *vf,double pos);
  29. typedef int (VBF_APIENTRY *LPOVTIMESEEKPAGE)(OggVorbis_File *vf,double pos);
  30. typedef int (VBF_APIENTRY *LPOVRAWSEEKLAP)(OggVorbis_File *vf,ogg_int64_t pos);
  31. typedef int (VBF_APIENTRY *LPOVPCMSEEKLAP)(OggVorbis_File *vf,ogg_int64_t pos);
  32. typedef int (VBF_APIENTRY *LPOVPCMSEEKPAGELAP)(OggVorbis_File *vf,ogg_int64_t pos);
  33. typedef int (VBF_APIENTRY *LPOVTIMESEEKLAP)(OggVorbis_File *vf,double pos);
  34. typedef int (VBF_APIENTRY *LPOVTIMESEEKPAGELAP)(OggVorbis_File *vf,double pos);
  35. typedef ogg_int64_t (VBF_APIENTRY *LPOVRAWTELL)(OggVorbis_File *vf);
  36. typedef ogg_int64_t (VBF_APIENTRY *LPOVPCMTELL)(OggVorbis_File *vf);
  37. typedef double (VBF_APIENTRY *LPOVTIMETELL)(OggVorbis_File *vf);
  38. typedef vorbis_info* (VBF_APIENTRY *LPOVINFO)(OggVorbis_File *vf,int link);
  39. typedef vorbis_comment* (VBF_APIENTRY *LPOVCOMMENT)(OggVorbis_File *vf,int link);
  40. typedef long (VBF_APIENTRY *LPOVREADFLOAT)(OggVorbis_File *vf,float ***pcm_channels,int samples, int *bitstream);
  41. typedef long (VBF_APIENTRY *LPOVREADFILTER)(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);
  42. typedef long (VBF_APIENTRY *LPOVREAD)(OggVorbis_File *vf,char *buffer,int length, int bigendianp,int word,int sgned,int *bitstream);
  43. typedef int (VBF_APIENTRY *LPOVCROSSLAP)(OggVorbis_File *vf1,OggVorbis_File *vf2);
  44. typedef int (VBF_APIENTRY *LPOVHALFRATE)(OggVorbis_File *vf,int flag);
  45. typedef int (VBF_APIENTRY *LPOVHALFRATEP)(OggVorbis_File *vf);
  46. int vorbisfile_load();
  47. extern LPOVCLEAR p_ov_clear;
  48. extern LPOVFOPEN p_ov_fopen;
  49. extern LPOVOPEN p_ov_open;
  50. extern LPOVOPENCALLBACKS p_ov_open_callbacks;
  51. extern LPOVTEST p_ov_test;
  52. extern LPOVTESTCALLBACKS p_ov_test_callbacks;
  53. extern LPOVTESTOPEN p_ov_test_open;
  54. extern LPOVBITRATE p_ov_bitrate;
  55. extern LPOVBITRATEINSTANT p_ov_bitrate_instant;
  56. extern LPOVSTREAMS p_ov_streams;
  57. extern LPOVSEEKABLE p_ov_seekable;
  58. extern LPOVSERIALNUMBER p_ov_serialnumber;
  59. extern LPOVRAWTOTAL p_ov_raw_total;
  60. extern LPOVPCMTOTAL p_ov_pcm_total;
  61. extern LPOVTIMETOTAL p_ov_time_total;
  62. extern LPOVRAWSEEK p_ov_raw_seek;
  63. extern LPOVPCMSEEK p_ov_pcm_seek;
  64. extern LPOVPCMSEEKPAGE p_ov_pcm_seek_page;
  65. extern LPOVTIMESEEK p_ov_time_seek;
  66. extern LPOVTIMESEEKPAGE p_ov_time_seek_page;
  67. extern LPOVRAWSEEKLAP p_ov_raw_seek_lap;
  68. extern LPOVPCMSEEKLAP p_ov_pcm_seek_lap;
  69. extern LPOVPCMSEEKPAGELAP p_ov_pcm_seek_page_lap;
  70. extern LPOVTIMESEEKLAP p_ov_time_seek_lap;
  71. extern LPOVTIMESEEKPAGELAP p_ov_time_seek_page_lap;
  72. extern LPOVRAWTELL p_ov_raw_tell;
  73. extern LPOVPCMTELL p_ov_pcm_tell;
  74. extern LPOVTIMETELL p_ov_time_tell;
  75. extern LPOVINFO p_ov_info;
  76. extern LPOVCOMMENT p_ov_comment;
  77. extern LPOVREADFLOAT p_ov_read_float;
  78. extern LPOVREADFILTER p_ov_read_filter;
  79. extern LPOVREAD p_ov_read;
  80. extern LPOVCROSSLAP p_ov_crosslap;
  81. extern LPOVHALFRATE p_ov_halfrate;
  82. extern LPOVHALFRATEP p_ov_halfrate_p;
  83. #endif