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

多媒体编程

开发平台:

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. */
  18. /* $Id: wavestream.h 4912 2009-10-02 14:16:12Z slouken $ */
  19. /* This file supports streaming WAV files, without volume adjustment */
  20. #include <stdio.h>
  21. typedef struct {
  22. SDL_RWops *rw;
  23. SDL_bool freerw;
  24. long  start;
  25. long  stop;
  26. SDL_AudioCVT cvt;
  27. } WAVStream;
  28. /* Initialize the WAVStream player, with the given mixer settings
  29.    This function returns 0, or -1 if there was an error.
  30.  */
  31. extern int WAVStream_Init(SDL_AudioSpec *mixer);
  32. /* Unimplemented */
  33. extern void WAVStream_SetVolume(int volume);
  34. /* Load a WAV stream from the given file */
  35. extern WAVStream *WAVStream_LoadSong(const char *file, const char *magic);
  36. /* Load a WAV stream from an SDL_RWops object */
  37. extern WAVStream *WAVStream_LoadSong_RW(SDL_RWops *rw, const char *magic);
  38. /* Start playback of a given WAV stream */
  39. extern void WAVStream_Start(WAVStream *wave);
  40. /* Play some of a stream previously started with WAVStream_Start() */
  41. extern int WAVStream_PlaySome(Uint8 *stream, int len);
  42. /* Stop playback of a stream previously started with WAVStream_Start() */
  43. extern void WAVStream_Stop(void);
  44. /* Close the given WAV stream */
  45. extern void WAVStream_FreeSong(WAVStream *wave);
  46. /* Return non-zero if a stream is currently playing */
  47. extern int WAVStream_Active(void);