# SoundStore (Slick - The 2D Library)
Date: 2013-06-03

## org.newdawn.slick.openal
Class SoundStore

    java.lang.Object
      org.newdawn.slick.openal.SoundStore

    public class SoundStore

extends java.lang.Object

Responsible for holding and playing the sounds used in the game.

Author:
  Kevin Glass, Rockstar setVolume cleanup

Method Summary
`void` `clear()` Clear out the sound store contents
`void` `disable()` Disable use of the Sound Store
`static SoundStore` `get()` Get the single instance of this class
`Audio` `getAIF(java.io.InputStream in)` Get the Sound based on a specified AIF file
`Audio` `getAIF(java.lang.String ref)` Get the Sound based on a specified AIF file
`Audio` `getAIF(java.lang.String ref, java.io.InputStream in)` Get the Sound based on a specified AIF file
`float` `getCurrentMusicVolume()` Get the volume scalar of the music that is currently playing.
`Audio` `getMOD(java.io.InputStream in)` Get a MOD sound (mod/xm etc)
`Audio` `getMOD(java.lang.String ref)` Get a MOD sound (mod/xm etc)
`Audio` `getMOD(java.lang.String ref, java.io.InputStream in)` Get a MOD sound (mod/xm etc)
`float` `getMusicVolume()` Get the volume for music
`Audio` `getOgg(java.io.InputStream in)` Get the Sound based on a specified OGG file
`Audio` `getOgg(java.lang.String ref)` Get the Sound based on a specified OGG file
`Audio` `getOgg(java.lang.String ref, java.io.InputStream in)` Get the Sound based on a specified OGG file
`Audio` `getOggStream(java.lang.String ref)` Get the Sound based on a specified OGG file
`Audio` `getOggStream(java.net.URL ref)` Get the Sound based on a specified OGG file
`float` `getSoundVolume()` Get the volume for sounds
`int` `getSource(int index)` Get the ID of a given source
`int` `getSourceCount()` Retrieve the number of OpenAL sound sources that have been determined at initialisation.
`Audio` `getWAV(java.io.InputStream in)` Get the Sound based on a specified WAV file
`Audio` `getWAV(java.lang.String ref)` Get the Sound based on a specified WAV file
`Audio` `getWAV(java.lang.String ref, java.io.InputStream in)` Get the Sound based on a specified WAV file
`void` `init()` Initialise the sound effects stored.
`boolean` `isDeferredLoading()` Check if we're using deferred loading
`boolean` `isMusicOn()` Check if music should currently be playing
`boolean` `isMusicPlaying()` Check if the music is currently playing
`boolean` `musicOn()` Check if music is currently enabled
`void` `pauseLoop()` Pause the music loop that is currently playing
`void` `poll(int delta)` Poll the streaming system
`void` `restartLoop()` Restart the music loop that is currently paused
`void` `setCurrentMusicVolume(float volume)` Set the music volume of the current playing music.
`void` `setDeferredLoading(boolean deferred)` True if we should only record the request to load in the intention of loading the sound later
`void` `setMaxSources(int max)` Set the maximum number of concurrent sound effects that will be attempted
`void` `setMusicOn(boolean music)` Inidicate whether music should be playing
`void` `setMusicPitch(float pitch)` Set the pitch at which the current music is being played
`void` `setMusicVolume(float volume)` Set the music volume
`void` `setSoundsOn(boolean sounds)` Indicate whether sound effects should be played
`void` `setSoundVolume(float volume)` Set the sound volume
`boolean` `soundsOn()` Check if sound effects are currently enabled
`boolean` `soundWorks()` Check if sound works at all
`void` `stopSoundEffect(int id)` Stop a playing sound identified by the ID returned from playing.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### clear

    public void clear()

  Clear out the sound store contents

### disable

    public void disable()

  Disable use of the Sound Store

### setDeferredLoading

    public void setDeferredLoading(boolean deferred)

  True if we should only record the request to load in the intention of loading the sound later

  Parameters:
    `deferred` - True if the we should load a token

### isDeferredLoading

    public boolean isDeferredLoading()

  Check if we're using deferred loading

  Returns:
    True if we're loading deferred sounds

### setMusicOn

    public void setMusicOn(boolean music)

  Inidicate whether music should be playing

  Parameters:
    `music` - True if music should be played

### isMusicOn

    public boolean isMusicOn()

  Check if music should currently be playing

  Returns:
    True if music is currently playing

### setMusicVolume

    public void setMusicVolume(float volume)

  Set the music volume

  Parameters:
    `volume` - The volume for music

### getCurrentMusicVolume

    public float getCurrentMusicVolume()

  Get the volume scalar of the music that is currently playing.

  Returns:
    The volume of the music currently playing

### setCurrentMusicVolume

    public void setCurrentMusicVolume(float volume)

  Set the music volume of the current playing music. Does NOT affect the global volume

  Parameters:
    `volume` - The volume for the current playing music

### setSoundVolume

    public void setSoundVolume(float volume)

  Set the sound volume

  Parameters:
    `volume` - The volume for sound fx

### soundWorks

    public boolean soundWorks()

  Check if sound works at all

  Returns:
    True if sound works at all

### musicOn

    public boolean musicOn()

  Check if music is currently enabled

  Returns:
    True if music is currently enabled

### getSoundVolume

    public float getSoundVolume()

  Get the volume for sounds

  Returns:
    The volume for sounds

### getMusicVolume

    public float getMusicVolume()

  Get the volume for music

  Returns:
    The volume for music

### getSource

    public int getSource(int index)

  Get the ID of a given source

  Parameters:
    `index` - The ID of a given source
  Returns:
    The ID of the given source

### setSoundsOn

    public void setSoundsOn(boolean sounds)

  Indicate whether sound effects should be played

  Parameters:
    `sounds` - True if sound effects should be played

### soundsOn

    public boolean soundsOn()

  Check if sound effects are currently enabled

  Returns:
    True if sound effects are currently enabled

### setMaxSources

    public void setMaxSources(int max)

  Set the maximum number of concurrent sound effects that will be attempted

  Parameters:
    `max` - The maximum number of sound effects/music to mix

### init

    public void init()

  Initialise the sound effects stored. This must be called before anything else will work

### setMusicPitch

    public void setMusicPitch(float pitch)

  Set the pitch at which the current music is being played

  Parameters:
    `pitch` - The pitch at which the current music is being played

### pauseLoop

    public void pauseLoop()

  Pause the music loop that is currently playing

### restartLoop

    public void restartLoop()

  Restart the music loop that is currently paused

### getMOD

    public Audio getMOD(java.lang.String ref)
                 throws java.io.IOException

  Get a MOD sound (mod/xm etc)

  Parameters:
    `ref` - The refernece to the mod to load
  Returns:
    The sound for play back
  Throws:
    `java.io.IOException` - Indicates a failure to read the data

### getMOD

    public Audio getMOD(java.io.InputStream in)
                 throws java.io.IOException

  Get a MOD sound (mod/xm etc)

  Parameters:
    `in` - The stream to the MOD to load
  Returns:
    The sound for play back
  Throws:
    `java.io.IOException` - Indicates a failure to read the data

### getMOD

    public Audio getMOD(java.lang.String ref,
                        java.io.InputStream in)
                 throws java.io.IOException

  Get a MOD sound (mod/xm etc)

  Parameters:
    `ref` - The stream to the MOD to load
    `in` - The stream to the MOD to load
  Returns:
    The sound for play back
  Throws:
    `java.io.IOException` - Indicates a failure to read the data

### getAIF

    public Audio getAIF(java.lang.String ref)
                 throws java.io.IOException

  Get the Sound based on a specified AIF file

  Parameters:
    `ref` - The reference to the AIF file in the classpath
  Returns:
    The Sound read from the AIF file
  Throws:
    `java.io.IOException` - Indicates a failure to load the AIF

### getAIF

    public Audio getAIF(java.io.InputStream in)
                 throws java.io.IOException

  Get the Sound based on a specified AIF file

  Parameters:
    `in` - The stream to the MOD to load
  Returns:
    The Sound read from the AIF file
  Throws:
    `java.io.IOException` - Indicates a failure to load the AIF

### getAIF

    public Audio getAIF(java.lang.String ref,
                        java.io.InputStream in)
                 throws java.io.IOException

  Get the Sound based on a specified AIF file

  Parameters:
    `ref` - The reference to the AIF file in the classpath
    `in` - The stream to the AIF to load
  Returns:
    The Sound read from the AIF file
  Throws:
    `java.io.IOException` - Indicates a failure to load the AIF

### getWAV

    public Audio getWAV(java.lang.String ref)
                 throws java.io.IOException

  Get the Sound based on a specified WAV file

  Parameters:
    `ref` - The reference to the WAV file in the classpath
  Returns:
    The Sound read from the WAV file
  Throws:
    `java.io.IOException` - Indicates a failure to load the WAV

### getWAV

    public Audio getWAV(java.io.InputStream in)
                 throws java.io.IOException

  Get the Sound based on a specified WAV file

  Parameters:
    `in` - The stream to the WAV to load
  Returns:
    The Sound read from the WAV file
  Throws:
    `java.io.IOException` - Indicates a failure to load the WAV

### getWAV

    public Audio getWAV(java.lang.String ref,
                        java.io.InputStream in)
                 throws java.io.IOException

  Get the Sound based on a specified WAV file

  Parameters:
    `ref` - The reference to the WAV file in the classpath
    `in` - The stream to the WAV to load
  Returns:
    The Sound read from the WAV file
  Throws:
    `java.io.IOException` - Indicates a failure to load the WAV

### getOggStream

    public Audio getOggStream(java.lang.String ref)
                       throws java.io.IOException

  Get the Sound based on a specified OGG file

  Parameters:
    `ref` - The reference to the OGG file in the classpath
  Returns:
    The Sound read from the OGG file
  Throws:
    `java.io.IOException` - Indicates a failure to load the OGG

### getOggStream

    public Audio getOggStream(java.net.URL ref)
                       throws java.io.IOException

  Get the Sound based on a specified OGG file

  Parameters:
    `ref` - The reference to the OGG file in the classpath
  Returns:
    The Sound read from the OGG file
  Throws:
    `java.io.IOException` - Indicates a failure to load the OGG

### getOgg

    public Audio getOgg(java.lang.String ref)
                 throws java.io.IOException

  Get the Sound based on a specified OGG file

  Parameters:
    `ref` - The reference to the OGG file in the classpath
  Returns:
    The Sound read from the OGG file
  Throws:
    `java.io.IOException` - Indicates a failure to load the OGG

### getOgg

    public Audio getOgg(java.io.InputStream in)
                 throws java.io.IOException

  Get the Sound based on a specified OGG file

  Parameters:
    `in` - The stream to the OGG to load
  Returns:
    The Sound read from the OGG file
  Throws:
    `java.io.IOException` - Indicates a failure to load the OGG

### getOgg

    public Audio getOgg(java.lang.String ref,
                        java.io.InputStream in)
                 throws java.io.IOException

  Get the Sound based on a specified OGG file

  Parameters:
    `ref` - The reference to the OGG file in the classpath
    `in` - The stream to the OGG to load
  Returns:
    The Sound read from the OGG file
  Throws:
    `java.io.IOException` - Indicates a failure to load the OGG

### poll

    public void poll(int delta)

  Poll the streaming system

  Parameters:
    `delta` - The amount of time passed since last poll (in milliseconds)

### isMusicPlaying

    public boolean isMusicPlaying()

  Check if the music is currently playing

  Returns:
    True if the music is playing

### get

    public static SoundStore get()

  Get the single instance of this class

  Returns:
    The single instnace of this class

### stopSoundEffect

    public void stopSoundEffect(int id)

  Stop a playing sound identified by the ID returned from playing. This utility method should only be used when needing to stop sound effects that may have been played more than once and need to be explicitly stopped.

  Parameters:
    `id` - The ID of the underlying OpenAL source as returned from playAsSoundEffect

### getSourceCount

    public int getSourceCount()

  Retrieve the number of OpenAL sound sources that have been determined at initialisation.

  Returns:
    The number of sources available

Copyright © 2006 New Dawn Software. All Rights Reserved.