dynamic_flac.h
上传用户:nini_0081
上传日期:2022-07-21
资源大小:2628k
文件大小:3k
源码类别:

多媒体编程

开发平台:

DOS

  1. /*
  2.     SDL_mixer:  An audio mixer library based on the SDL library
  3.     Copyright (C) 1997-2009 Sam Lantinga
  4.     This library is free software; you can redistribute it and/or
  5.     modify it under the terms of the GNU Library General Public
  6.     License as published by the Free Software Foundation; either
  7.     version 2 of the License, or (at your option) any later version.
  8.     This library is distributed in the hope that it will be useful,
  9.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  11.     Library General Public License for more details.
  12.     You should have received a copy of the GNU Library General Public
  13.     License along with this library; if not, write to the Free
  14.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  15.     Sam Lantinga
  16.     slouken@libsdl.org
  17.     The following file defines all of the functions/objects used to dynamically
  18.     link to the libFLAC library.
  19.      ~ Austen Dicken (admin@cvpcs.org)
  20. */
  21. #ifdef FLAC_MUSIC
  22. #include <FLAC/stream_decoder.h>
  23. typedef struct {
  24. int loaded;
  25. void *handle;
  26. FLAC__StreamDecoder *(*FLAC__stream_decoder_new)();
  27. void (*FLAC__stream_decoder_delete)(FLAC__StreamDecoder *decoder);
  28. FLAC__StreamDecoderInitStatus (*FLAC__stream_decoder_init_stream)(
  29. FLAC__StreamDecoder *decoder,
  30. FLAC__StreamDecoderReadCallback read_callback,
  31. FLAC__StreamDecoderSeekCallback seek_callback,
  32. FLAC__StreamDecoderTellCallback tell_callback,
  33. FLAC__StreamDecoderLengthCallback length_callback,
  34. FLAC__StreamDecoderEofCallback eof_callback,
  35. FLAC__StreamDecoderWriteCallback write_callback,
  36. FLAC__StreamDecoderMetadataCallback metadata_callback,
  37. FLAC__StreamDecoderErrorCallback error_callback,
  38. void *client_data);
  39. FLAC__bool (*FLAC__stream_decoder_finish)(FLAC__StreamDecoder *decoder);
  40. FLAC__bool (*FLAC__stream_decoder_flush)(FLAC__StreamDecoder *decoder);
  41. FLAC__bool (*FLAC__stream_decoder_process_single)(
  42. FLAC__StreamDecoder *decoder);
  43. FLAC__bool (*FLAC__stream_decoder_process_until_end_of_metadata)(
  44. FLAC__StreamDecoder *decoder);
  45. FLAC__bool (*FLAC__stream_decoder_process_until_end_of_stream)(
  46. FLAC__StreamDecoder *decoder);
  47. FLAC__bool (*FLAC__stream_decoder_seek_absolute)(
  48. FLAC__StreamDecoder *decoder,
  49. FLAC__uint64 sample);
  50. FLAC__StreamDecoderState (*FLAC__stream_decoder_get_state)(
  51. const FLAC__StreamDecoder *decoder);
  52. } flac_loader;
  53. extern flac_loader flac;
  54. #endif /* FLAC_MUSIC */
  55. extern int Mix_InitFLAC();
  56. extern void Mix_QuitFLAC();