Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 375 → Rev 376

/programs/games/doom/trunk/i_sound.c
456,8 → 456,6
// Mixing channel index.
int chan;
int i;
int flags;
int size = 0;
// Left and right channel
// are in global mixbuffer, alternating.
481,7 → 479,6
// Love thy L2 chache - made this a loop.
// Now more channels could be set at compile time
// as well. Thus loop those channels.
// flags=0;
for ( chan = 0; chan < NUM_CHANNELS; chan++ )
{
488,8 → 485,6
// Check channel, if active.
if (channels[ chan ])
{
// flags=1;
// Get the raw data from the channel.
sample = *channels[ chan ];
// Add left and right part
535,22 → 530,9
// Increment current pointers in mixbuffer.
leftout += step;
rightout += step;
// if (flags)
// size+=4;
}
 
SetBuffer(hMixBuff,mixbuffer,mix_offset,mix_size);
 
 
// WaveOut(hMixBuff,(char*)&mixbuffer[0],4096);
// if(size)
// {
// WaveOut(hMixBuff,(char*)&mixbuffer[0],size);
// SetBufferPos(hMixBuff, 0);
// SetBuffer(hMixBuff,(char*)&mixbuffer[0],mix_offset,4096);
// PlayBuffer(hMixBuff, PCM_SYNC);
// };
}
 
 
/programs/games/doom/trunk/kolibc/include/sound.h
76,18 → 76,18
 
typedef unsigned int SNDBUF;
 
int _stdcall InitSound();
int _stdcall InitSound(int *version);
 
SNDBUF _stdcall CreateBuffer(unsigned int format,int size);
int _stdcall CreateBuffer(unsigned int format,int size,SNDBUF *buf);
int _stdcall DestroyBuffer(SNDBUF hBuff);
 
int _stdcall SetFormat(SNDBUF hBuff, unsigned int format);
int _stdcall GetFormat(SNDBUF hBuff);
int _stdcall GetFormat(SNDBUF hBuff, unsigned int *format);
 
int _stdcall ResetBuffer(SNDBUF hBuff, unsigned int flags);
int _stdcall SetBufferPos(SNDBUF hBuff, int offset);
int _stdcall GetBufferPos(SNDBUF hBuff);
int _stdcall GetBufferSize(SNDBUF hBuff);
int _stdcall GetBufferPos(SNDBUF hBuff, int *offset);
int _stdcall GetBufferSize(SNDBUF hBuff, int *size);
 
int _stdcall SetBuffer(SNDBUF hBuff,void* buff,
int offs, int size);
98,7 → 98,7
int _stdcall SetVolume(SNDBUF hBuff, int left, int right);
int _stdcall GetVolume(SNDBUF hBuff, int *left, int *right);
int _stdcall SetPan(SNDBUF hBuff, int pan);
int _stdcall GetPan(SNDBUF hBuff, int pan);
int _stdcall GetPan(SNDBUF hBuff, int *pan);
int _stdcall GetMasterVol(int* vol);
int _stdcall SetMasterVol(int vol);
/programs/games/doom/trunk/s_sound.c
178,7 → 178,6
{
int i;
char *thread_stack;
int ver;
 
numChannels = NUM_CHANNELS;
 
243,21 → 242,48
void sound_proc(void)
{
int ver;
int err;
SND_EVENT evnt;
int i;
if((ver = InitSound())< SOUND_VERSION )
if(err = InitSound(&ver))
{
printf("Error %x Sound service not installed\n\r", err);
_asm
{
mov eax, -1
int 0x40
};
}
 
if(ver< SOUND_VERSION)
{
printf("Sound service version mismatch\n\r");
printf("Installed version: %d, required version %d\n\r",
ver, SOUND_VERSION);
_asm
{
mov eax, -1
int 0x40
};
};
 
hMixBuff=CreateBuffer(PCM_2_16_11|PCM_RING,0);
if (err = CreateBuffer(PCM_2_16_11|PCM_RING,0, &hMixBuff))
{
printf("Error %x sound not available\n\r", err);
printf("handle = %x\n\r", hMixBuff);
_asm
{
mov eax, -1
int 0x40
};
}
if(!hMixBuff)
if(err = GetBufferSize(hMixBuff, &mix_size))
{
printf("sound not available\n\r");
printf("Error %x get buffer size\n\r", err);
printf("size = %x\n\r", mix_size);
_asm
{
mov eax, -1
264,13 → 290,22
int 0x40
};
};
mix_size= mix_size/2;
 
mix_size=GetBufferSize(hMixBuff)/2;
printf("mixer size %d\n\r", mix_size);
 
if(err=PlayBuffer(hMixBuff, 0))
{
printf("Error %x play buffer\n\r", err);
_asm
{
mov eax, -1
int 0x40
};
}
mixbuffer = malloc(mix_size);
PlayBuffer(hMixBuff, 0);
while(sound_state)
{
GetNotify(&evnt);