libOGC  1.0
Defines | Typedefs | Enumerations | Functions
asndlib.h File Reference

ASND library. More...

#include <gctypes.h>

Defines

#define __SNDLIB_H__
#define ASND_LIB   0x100
#define F44100HZ_PITCH   44100
#define INIT_RATE_48000
#define MAX_PITCH   144000
#define MAX_VOLUME   255
#define MID_VOLUME   127
#define MIN_PITCH   1
#define MIN_VOLUME   0
#define NOTE(note, octave)   (note+(octave<<3)+(octave<<2))
#define Note2Freq   ANote2Freq
#define SND_AddVoice   ASND_AddVoice
#define SND_BUSY   1
#define SND_ChangePitchVoice   ASND_ChangePitchVoice
#define SND_ChangeVolumeVoice   ASND_ChangeVolumeVoice
#define SND_ChangeVolumeVoice   ASND_ChangeVolumeVoice
#define SND_End   ASND_End
#define SND_GetAudioRate   ASND_GetAudioRate
#define SND_GetFirstUnusedVoice   ASND_GetFirstUnusedVoice
#define SND_GetSampleCounter   ASND_GetSampleCounter
#define SND_GetSamplesPerTick   ASND_GetSamplesPerTick
#define SND_GetTickCounterVoice   ASND_GetTickCounterVoice
#define SND_GetTime   ASND_GetTime
#define SND_GetTimerVoice   ASND_GetTimerVoice
#define SND_Init   ASND_Init
#define SND_INVALID   -1
#define SND_Is_Paused   ASND_Is_Paused
#define SND_ISNOTASONGVOICE   -2
#define SND_LIB   (ASND_LIB+2)
#define SND_OK   0
#define SND_Pause   ASND_Pause
#define SND_PauseVoice   ASND_PauseVoice
#define SND_SetCallback   ASND_SetCallback
#define SND_SetTime   ASND_SetTime
#define SND_SetVoice   ASND_SetVoice
#define SND_StatusVoice   ASND_StatusVoice
#define SND_StopVoice   ASND_StopVoice
#define SND_TestPointer   ASND_TestPointer
#define SND_UNUSED   0
#define SND_WAITING   2
#define SND_WORKING   1
#define VOICE_MONO_16BIT   1
#define VOICE_MONO_16BIT_BE   1
#define VOICE_MONO_16BIT_LE   5
#define VOICE_MONO_8BIT   0
#define VOICE_MONO_8BIT_U   4
#define VOICE_STEREO_16BIT   3
#define VOICE_STEREO_16BIT_BE   3
#define VOICE_STEREO_16BIT_LE   7
#define VOICE_STEREO_8BIT   2
#define VOICE_STEREO_8BIT_U   6

Typedefs

typedef void(* ASNDVoiceCallback )(s32 voice)
 Callback type for ASND_SetVoice().

Enumerations

enum  {
  NOTE_DO = 0,
  NOTE_DOs,
  NOTE_REb = NOTE_DOs,
  NOTE_RE,
  NOTE_REs,
  NOTE_MIb = NOTE_REs,
  NOTE_MI,
  NOTE_FA,
  NOTE_FAs,
  NOTE_SOLb = NOTE_FAs,
  NOTE_SOL,
  NOTE_SOLs,
  NOTE_LAb = NOTE_SOLs,
  NOTE_LA,
  NOTE_LAs,
  NOTE_SIb = NOTE_LAs,
  NOTE_SI
}
enum  {
  NOTE_C = 0,
  NOTE_Cs,
  NOTE_Db = NOTE_Cs,
  NOTE_D,
  NOTE_Ds,
  NOTE_Eb = NOTE_Ds,
  NOTE_E,
  NOTE_F,
  NOTE_Fs,
  NOTE_Gb = NOTE_Fs,
  NOTE_G,
  NOTE_Gs,
  NOTE_Ab = NOTE_Gs,
  NOTE_A,
  NOTE_As,
  NOTE_Bb = NOTE_As,
  NOTE_B
}

Functions

int ANote2Freq (int note, int freq_base, int note_base)
 Initializes the SND lib and fixes the hardware sample rate.
s32 ASND_AddVoice (s32 voice, void *snd, s32 size_snd)
 Adds a PCM voice to play from the second buffer.
s32 ASND_ChangePitchVoice (s32 voice, s32 pitch)
 Changes the voice pitch in real-time.
s32 ASND_ChangeVolumeVoice (s32 voice, s32 volume_l, s32 volume_r)
 Changes the voice volume in real-time.
void ASND_End ()
 De-initializes the ASND lib.
s32 ASND_GetAudioRate ()
 Returns the current audio rate.
u32 ASND_GetDSP_PercentUse ()
 Returns the DSP usage.
u32 ASND_GetDSP_ProcessTime ()
s32 ASND_GetFirstUnusedVoice ()
 Returns the first unused voice.
u32 ASND_GetSampleCounter ()
 Retrieves the global sample counter.
u32 ASND_GetSamplesPerTick ()
 Retrieves the samples sent from the IRQ in one tick.
u32 ASND_GetTickCounterVoice (s32 voice)
 Returns the voice tick counter.
u32 ASND_GetTime ()
 Returns the global time.
u32 ASND_GetTimerVoice (s32 voice)
 Returns the voice playback time.
void ASND_Init ()
 Initializes the ASND lib and fixes the hardware sample rate to 48000.
s32 ASND_Is_Paused ()
 Returns sound paused status.
void ASND_Pause (s32 paused)
 Used to pause (or unpause) the sound.
s32 ASND_PauseVoice (s32 voice, s32 pause)
 Pauses the selected voice.
void ASND_SetCallback (void(*callback)())
 Sets a global callback for general purposes.
s32 ASND_SetInfiniteVoice (s32 voice, s32 format, s32 pitch, s32 delay, void *snd, s32 size_snd, s32 volume_l, s32 volume_r)
 Sets a PCM voice to play infinitely.
void ASND_SetTime (u32 time)
 Set the global time.
s32 ASND_SetVoice (s32 voice, s32 format, s32 pitch, s32 delay, void *snd, s32 size_snd, s32 volume_l, s32 volume_r, ASNDVoiceCallback callback)
 Sets a PCM voice to play.
s32 ASND_StatusVoice (s32 voice)
 Returns the status of the selected voice.
s32 ASND_StopVoice (s32 voice)
 Stops the selected voice.
s32 ASND_TestPointer (s32 voice, void *pointer)
 Tests if pointer is in use by voice as a buffer.
s32 ASND_TestVoiceBufferReady (s32 voice)
 Tests to determine if the voice is ready to receive a new buffer sample with ASND_AddVoice().

Detailed Description

ASND library.


Function Documentation

int ANote2Freq ( int  note,
int  freq_base,
int  note_base 
)

Initializes the SND lib and fixes the hardware sample rate.

Parameters:
[in]noteNote codification to play. for example: NOTE(C,4) for note C and octave 4.
[in]freq_baseFrequency base of the sample. For example 8000Hz.
[in]note_baseNote codification of the sample. For example: NOTE(L, 3) for note L and octave 3 (LA 3).
Returns:
Frequency, in Hz.
 All Data Structures Files Functions Variables Typedefs Defines