music_ogg.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: music_ogg.h 4211 2008-12-08 00:27:32Z slouken $ */
  19. #ifdef OGG_MUSIC
  20. /* This file supports Ogg Vorbis music streams */
  21. #ifdef OGG_USE_TREMOR
  22. #include <tremor/ivorbisfile.h>
  23. #else
  24. #include <vorbis/vorbisfile.h>
  25. #endif
  26. typedef struct {
  27. int playing;
  28. int volume;
  29. OggVorbis_File vf;
  30. int section;
  31. SDL_AudioCVT cvt;
  32. int len_available;
  33. Uint8 *snd_available;
  34. } OGG_music;
  35. /* Initialize the Ogg Vorbis player, with the given mixer settings
  36.    This function returns 0, or -1 if there was an error.
  37.  */
  38. extern int OGG_init(SDL_AudioSpec *mixer);
  39. /* Set the volume for an OGG stream */
  40. extern void OGG_setvolume(OGG_music *music, int volume);
  41. /* Load an OGG stream from the given file */
  42. extern OGG_music *OGG_new(const char *file);
  43. /* Load an OGG stream from an SDL_RWops object */
  44. extern OGG_music *OGG_new_RW(SDL_RWops *rw);
  45. /* Start playback of a given OGG stream */
  46. extern void OGG_play(OGG_music *music);
  47. /* Return non-zero if a stream is currently playing */
  48. extern int OGG_playing(OGG_music *music);
  49. /* Play some of a stream previously started with OGG_play() */
  50. extern int OGG_playAudio(OGG_music *music, Uint8 *stream, int len);
  51. /* Stop playback of a stream previously started with OGG_play() */
  52. extern void OGG_stop(OGG_music *music);
  53. /* Close the given OGG stream */
  54. extern void OGG_delete(OGG_music *music);
  55. /* Jump (seek) to a given position (time is in seconds) */
  56. extern void OGG_jump_to_time(OGG_music *music, double time);
  57. #endif /* OGG_MUSIC */