- get sndblst and sound compiling on msvc.

svn path=/trunk/; revision=20649
This commit is contained in:
Alex Ionescu 2006-01-07 05:47:21 +00:00
parent 6b36b1e871
commit f3b9f7739f
7 changed files with 46 additions and 48 deletions

View file

@ -7,7 +7,7 @@
#include <ntddk.h>
#include "sndblst.h"
VOID SetOutputSampleRate(UINT BasePort, UINT SampleRate)
VOID SetOutputSampleRate(ULONG BasePort, ULONG SampleRate)
{
// This only works for DSP v4.xx ONLY - need a workaround!
DPRINT("Setting output sample rate\n");
@ -22,7 +22,7 @@ VOID SetOutputSampleRate(UINT BasePort, UINT SampleRate)
}
VOID EnableSpeaker(UINT BasePort, BOOLEAN SpeakerOn)
VOID EnableSpeaker(ULONG BasePort, BOOLEAN SpeakerOn)
{
DPRINT("Setting speaker status %d\n", SpeakerOn);
@ -33,7 +33,7 @@ VOID EnableSpeaker(UINT BasePort, BOOLEAN SpeakerOn)
}
BOOLEAN IsSpeakerEnabled(UINT BasePort)
BOOLEAN IsSpeakerEnabled(ULONG BasePort)
{
DPRINT("Obtaining speaker status\n");
@ -48,7 +48,7 @@ BOOLEAN IsSpeakerEnabled(UINT BasePort)
}
VOID BeginPlayback(UINT BasePort, UINT BitDepth, UINT Channels, UINT BlockSize)
VOID BeginPlayback(ULONG BasePort, ULONG BitDepth, ULONG Channels, ULONG BlockSize)
{
DPRINT("BeginPlayback(%d, %d, %d, %d)\n", BasePort, BitDepth, Channels, BlockSize);

View file

@ -41,7 +41,7 @@ static IO_ALLOCATION_ACTION STDCALL SoundProgramDMA(
IN PVOID Context)
{
PDEVICE_EXTENSION Device = DeviceObject->DeviceExtension;
UINT zzz;
ULONG zzz;
PUCHAR VirtualAddress = (PUCHAR) MmGetMdlVirtualAddress(Device->Mdl);
DPRINT("IoMapTransfer\n");

View file

@ -12,7 +12,7 @@
#include <ntddk.h>
#include "sndblst.h"
BOOLEAN WaitToSend(UINT BasePort)
BOOLEAN WaitToSend(ULONG BasePort)
{
int TimeOut;
@ -35,7 +35,7 @@ BOOLEAN WaitToSend(UINT BasePort)
return TRUE;
}
BOOLEAN WaitToReceive(UINT BasePort)
BOOLEAN WaitToReceive(ULONG BasePort)
{
int TimeOut;
@ -59,9 +59,9 @@ BOOLEAN WaitToReceive(UINT BasePort)
}
WORD InitSoundCard(UINT BasePort)
USHORT InitSoundCard(ULONG BasePort)
{
UINT TimeOut;
ULONG TimeOut;
BOOLEAN Status;
UCHAR DSP_Major, DSP_Minor;

View file

@ -20,7 +20,7 @@ DriverEntry(PDRIVER_OBJECT DriverObject,
/* INTERNAL VARIABLES ******************************************************/
UINT DeviceCount = 0;
ULONG DeviceCount = 0;
/* FUNCTIONS ***************************************************************/
@ -38,7 +38,7 @@ static NTSTATUS InitDevice(
// CONFIG Config;
RTL_QUERY_REGISTRY_TABLE Table[2];
NTSTATUS s;
WORD DSP_Version = 0;
USHORT DSP_Version = 0;
UCHAR DSP_Major = 0, DSP_Minor = 0;
// This is TEMPORARY, to ensure that we don't process more than 1 device.
@ -228,7 +228,7 @@ BlasterCleanup(PDEVICE_OBJECT DeviceObject,
* RETURNS: Success or failure
*/
{
UINT Channel;
ULONG Channel;
DPRINT("BlasterCleanup() called!\n");
// Reset the device (should we do this?)
@ -255,8 +255,8 @@ BlasterWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp)
{
PIO_STACK_LOCATION Stack;
PDEVICE_EXTENSION DeviceExtension;
UINT ByteCount;
PBYTE Data;
ULONG ByteCount;
PUCHAR Data;
DPRINT("BlasterWrite() called!\n");
@ -265,7 +265,7 @@ BlasterWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp)
DPRINT("%d bytes\n", Stack->Parameters.Write.Length);
Data = (PBYTE) Irp->AssociatedIrp.SystemBuffer;
Data = (PUCHAR) Irp->AssociatedIrp.SystemBuffer;
for (ByteCount = 0; ByteCount < Stack->Parameters.Write.Length; ByteCount ++)
{
@ -307,7 +307,7 @@ BlasterDeviceControl(PDEVICE_OBJECT DeviceObject,
/* case IOCTL_MIDI_PLAY :
{
DPRINT("Received IOCTL_MIDI_PLAY\n");
Data = (PBYTE) Irp->AssociatedIrp.SystemBuffer;
Data = (PUCHAR) Irp->AssociatedIrp.SystemBuffer;
DPRINT("Sending %d bytes of MIDI data to 0x%d:\n", Stack->Parameters.DeviceIoControl.InputBufferLength, DeviceExtension->Port);

View file

@ -96,9 +96,9 @@ typedef struct _DEVICE_EXTENSION
{
PWSTR RegistryPath;
PDRIVER_OBJECT DriverObject;
UINT Port;
UINT IRQ;
UINT DMA;
ULONG Port;
ULONG IRQ;
ULONG DMA;
ULONG BufferSize;
PADAPTER_OBJECT Adapter;
PMDL Mdl;
@ -123,8 +123,8 @@ typedef struct _DEVICE_INSTANCE
//typedef struct _CONFIG
//{
// UINT Port;
// UINT IRQ;
// ULONG Port;
// ULONG IRQ;
//} CONFIG, *PCONFIG;
/*
@ -139,9 +139,9 @@ typedef REGISTRY_CALLBACK_ROUTINE *PREGISTRY_CALLBACK_ROUTINE;
Prototypes for functions in portio.c :
*/
BOOLEAN WaitToSend(UINT BasePort);
BOOLEAN WaitToReceive(UINT BasePort);
WORD InitSoundCard(UINT BasePort);
BOOLEAN WaitToSend(ULONG BasePort);
BOOLEAN WaitToReceive(ULONG BasePort);
USHORT InitSoundCard(ULONG BasePort);
/*
Prototypes for functions in settings.c :
@ -168,9 +168,9 @@ BOOLEAN CreateDMA(PDEVICE_OBJECT DeviceObject);
VOID SetOutputSampleRate(UINT BasePort, UINT SampleRate);
VOID EnableSpeaker(UINT BasePort, BOOLEAN SpeakerOn);
BOOLEAN IsSpeakerEnabled(UINT BasePort);
VOID BeginPlayback(UINT BasePort, UINT BitDepth, UINT Channels, UINT BlockSize);
VOID SetOutputSampleRate(ULONG BasePort, ULONG SampleRate);
VOID EnableSpeaker(ULONG BasePort, BOOLEAN SpeakerOn);
BOOLEAN IsSpeakerEnabled(ULONG BasePort);
VOID BeginPlayback(ULONG BasePort, ULONG BitDepth, ULONG Channels, ULONG BlockSize);
#endif

View file

@ -13,6 +13,7 @@
/* FUNCTIONS **************************************************************/
#include <ntddk.h>
#include <halfuncs.h>
#include <string.h>
#include <devices.h>
@ -38,7 +39,6 @@ static BOOLEAN STDCALL DMAOutputISR(PKINTERRUPT Interrupt, PVOID ServiceContext)
void sb16_play(WAVE_HDR* wave)
{
unsigned int eflags;
ULONG MappedIrq;
KIRQL Dirql;
KAFFINITY Affinity;
@ -64,9 +64,7 @@ void sb16_play(WAVE_HDR* wave)
* saving the previous state of the interrupt flag
*/
__asm__("pushf\n\tpop %0\n\tcli\n\t"
: "=m" (eflags)
: );
_disable();
memcpy(sb16.buffer,(&wave->data),wave->dLen);
@ -82,9 +80,7 @@ void sb16_play(WAVE_HDR* wave)
// outb(0x21,(mask&~newmask));
// Restore the interrupt flag
__asm__("push %0\n\tpopf\n\t"
:
: "m" (eflags));
_enable();

View file

@ -1,23 +1,25 @@
KIRQL irql;
KAFFINITY affinity;
#include <pshpack1.h>
typedef struct
{
unsigned char rID[4] __attribute__((packed)); //4 0
unsigned int rLen __attribute__((packed)); //4 4
unsigned char wID[4] __attribute__((packed)); //4 8
unsigned char fID[4] __attribute__((packed)); //4 12
unsigned int fLen __attribute__((packed)); //4 16
unsigned short wFormatTag __attribute__((packed)); //2 18
unsigned short nChannels __attribute__((packed)); //2 20
unsigned int nSamplesPerSec __attribute__((packed)); //2 22
unsigned int nAvgBytesPerSec __attribute__((packed)); //2 24
unsigned short nBlockAlign __attribute__((packed)); //2 26
unsigned short FormatSpecific __attribute__((packed)); //2 28
unsigned char dID[4] __attribute__((packed)); //4 30
unsigned int dLen __attribute__((packed));
unsigned char rID[4] ; //4 0
unsigned int rLen ; //4 4
unsigned char wID[4] ; //4 8
unsigned char fID[4] ; //4 12
unsigned int fLen ; //4 16
unsigned short wFormatTag ; //2 18
unsigned short nChannels ; //2 20
unsigned int nSamplesPerSec ; //2 22
unsigned int nAvgBytesPerSec ; //2 24
unsigned short nBlockAlign ; //2 26
unsigned short FormatSpecific ; //2 28
unsigned char dID[4] ; //4 30
unsigned int dLen ;
unsigned char* data;
}WAVE_HDR;
#include <poppack.h>
void sb16_play(WAVE_HDR* wave);
void dump_wav(WAVE_HDR* wave);