arch/sdl/digi.c File Reference

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <SDL/SDL.h>
#include <SDL/SDL_audio.h>
#include <SDL/SDL_mixer.h>
#include "error.h"
#include "mono.h"
#include "fix.h"
#include "vecmat.h"
#include "gr.h"
#include "piggy.h"
#include "digi.h"
#include "sounds.h"
#include "wall.h"
#include "newdemo.h"
#include "kconfig.h"
#include "altsound.h"

Classes

struct  sound_object
struct  sound_slot

Defines

#define MAX_SOUND_SLOTS   32
#define SOUND_BUFFER_SIZE   512
#define MIN_VOLUME   10
#define SOF_USED   1
#define SOF_PLAYING   2
#define SOF_LINK_TO_OBJ   4
#define SOF_LINK_TO_POS   8
#define SOF_PLAY_FOREVER   16
#define lp_segnum   link.pos.segnum
#define lp_sidenum   link.pos.sidenum
#define lp_position   link.pos.position
#define lo_objnum   link.obj.objnum
#define lo_objsignature   link.obj.objsignature
#define MAX_SOUND_OBJECTS   16
#define SOUND_MAX_VOLUME   (F1_0 / 2)

Functions

void reset_sounds_on_channel (int channel)
void digi_reset_digi_sounds (void)
static void audio_mixcallback (void *userdata, Uint8 *stream, int len)
int digi_init ()
void digi_reset ()
void digi_close ()
static int get_free_slot ()
int digi_start_sound (int soundnum, fix volume, fix pan)
int digi_start_sound_object (int obj)
void digi_play_sample (int soundno, fix max_volume)
void digi_play_sample_once (int soundno, fix max_volume)
void digi_play_sample_3d (int soundno, int angle, int volume, int no_dups)
void digi_get_sound_loc (vms_matrix *listener, vms_vector *listener_pos, int listener_seg, vms_vector *sound_pos, int sound_seg, fix max_volume, int *volume, int *pan, fix max_distance)
int digi_link_sound_to_object2 (int soundnum, short objnum, int forever, fix max_volume, fix max_distance)
int digi_link_sound_to_object (int soundnum, short objnum, int forever, fix max_volume)
int digi_link_sound_to_pos2 (int soundnum, short segnum, short sidenum, vms_vector *pos, int forever, fix max_volume, fix max_distance)
int digi_link_sound_to_pos (int soundnum, short segnum, short sidenum, vms_vector *pos, int forever, fix max_volume)
void digi_kill_sound_linked_to_segment (int segnum, int sidenum, int soundnum)
void digi_kill_sound_linked_to_object (int objnum)
void digi_sync_sounds ()
void digi_init_sounds ()
void digi_set_digi_volume (int dvolume)
void digi_set_volume (int dvolume, int mvolume)
int digi_is_sound_playing (int soundno)
void digi_pause_all ()
void digi_resume_all ()
void digi_stop_all ()
void digi_set_max_channels (int n)
int digi_get_max_channels ()

Variables

static const Uint8 mix8 []
sound_object SoundObjects [MAX_SOUND_OBJECTS]
short next_signature = 0
int digi_volume = SOUND_MAX_VOLUME
int digi_lomem = 0
static int digi_initialised = 0
sound_slot SoundSlots [MAX_SOUND_SLOTS]
static SDL_AudioSpec WaveSpec
static int digi_sounds_initialized = 0
static int digi_max_channels = 16
static int next_handle = 0
int SampleHandles [32]

Define Documentation

#define lo_objnum   link.obj.objnum
 

#define lo_objsignature   link.obj.objsignature
 

#define lp_position   link.pos.position
 

#define lp_segnum   link.pos.segnum
 

#define lp_sidenum   link.pos.sidenum
 

#define MAX_SOUND_OBJECTS   16
 

#define MAX_SOUND_SLOTS   32
 

#define MIN_VOLUME   10
 

#define SOF_LINK_TO_OBJ   4
 

#define SOF_LINK_TO_POS   8
 

#define SOF_PLAY_FOREVER   16
 

#define SOF_PLAYING   2
 

#define SOF_USED   1
 

#define SOUND_BUFFER_SIZE   512
 

#define SOUND_MAX_VOLUME   (F1_0 / 2)
 


Function Documentation

static void audio_mixcallback void *  userdata,
Uint8 *  stream,
int  len
[static]
 

void digi_close void   ) 
 

int digi_get_max_channels  ) 
 

void digi_get_sound_loc vms_matrix listener,
vms_vector listener_pos,
int  listener_seg,
vms_vector sound_pos,
int  sound_seg,
fix  max_volume,
int *  volume,
int *  pan,
fix  max_distance
 

int digi_init  ) 
 

void digi_init_sounds  ) 
 

int digi_is_sound_playing int  soundno  ) 
 

void digi_kill_sound_linked_to_object int  objnum  ) 
 

void digi_kill_sound_linked_to_segment int  segnum,
int  sidenum,
int  soundnum
 

int digi_link_sound_to_object int  soundnum,
short  objnum,
int  forever,
fix  max_volume
 

int digi_link_sound_to_object2 int  soundnum,
short  objnum,
int  forever,
fix  max_volume,
fix  max_distance
 

int digi_link_sound_to_pos int  soundnum,
short  segnum,
short  sidenum,
vms_vector pos,
int  forever,
fix  max_volume
 

int digi_link_sound_to_pos2 int  soundnum,
short  segnum,
short  sidenum,
vms_vector pos,
int  forever,
fix  max_volume,
fix  max_distance
 

void digi_pause_all  ) 
 

void digi_play_sample int  soundno,
fix  max_volume
 

void digi_play_sample_3d int  soundno,
int  angle,
int  volume,
int  no_dups
 

void digi_play_sample_once int  soundno,
fix  max_volume
 

void digi_reset  ) 
 

void digi_reset_digi_sounds void   ) 
 

void digi_resume_all  ) 
 

void digi_set_digi_volume int  dvolume  ) 
 

void digi_set_max_channels int  n  ) 
 

void digi_set_volume int  dvolume,
int  mvolume
 

int digi_start_sound int  soundnum,
fix  volume,
fix  pan
 

int digi_start_sound_object int  obj  ) 
 

void digi_stop_all  ) 
 

void digi_sync_sounds  ) 
 

static int get_free_slot  )  [static]
 

void reset_sounds_on_channel int  channel  ) 
 


Variable Documentation

int digi_initialised = 0 [static]
 

int digi_lomem = 0
 

int digi_max_channels = 16 [static]
 

int digi_sounds_initialized = 0 [static]
 

int digi_volume = SOUND_MAX_VOLUME
 

const Uint8 mix8[] [static]
 

int next_handle = 0 [static]
 

short next_signature = 0
 

int SampleHandles[32]
 

sound_object SoundObjects[MAX_SOUND_OBJECTS]
 

struct sound_slot SoundSlots[MAX_SOUND_SLOTS]
 

SDL_AudioSpec WaveSpec [static]
 


Generated on Mon Aug 28 20:55:30 2006 for D1X-Rebirth by  doxygen 1.4.6