--- /dev/null
+/*
+ ReactOS Sound System
+ Sound Blaster DSP support
+ Speaker commands
+
+ Author:
+ Andrew Greenwood (silverblade@reactos.org)
+
+ History:
+ 2 July 2008 - Created (split from sbdsp.c)
+
+ Notes:
+ Functions documented in sbdsp.h
+*/
+
+#include "precomp.h"
+
+NTSTATUS
+SbDspEnableSpeaker(
+ IN PUCHAR BasePort,
+ IN ULONG Timeout)
+{
+ return SbDspWrite(BasePort, SB_DSP_SPEAKER_ON, Timeout);
+}
+
+NTSTATUS
+SbDspDisableSpeaker(
+ IN PUCHAR BasePort,
+ IN ULONG Timeout)
+{
+ return SbDspWrite(BasePort, SB_DSP_SPEAKER_OFF, Timeout);
+}
+
+/*
+ VirtualBox doesn't seem to support this.
+*/
+NTSTATUS
+SbDspIsSpeakerEnabled(
+ IN PUCHAR BasePort,
+ OUT PBOOLEAN IsEnabled,
+ IN ULONG Timeout)
+{
+ NTSTATUS Status;
+ UCHAR SpeakerStatus = 0;
+
+ if ( ! IsEnabled )
+ return STATUS_INVALID_PARAMETER_2;
+
+ /* Request the speaker status */
+ Status = SbDspWrite(BasePort, SB_DSP_SPEAKER_STATUS, Timeout);
+ if ( Status != STATUS_SUCCESS )
+ return Status;
+
+ /* Obtain the status */
+ Status = SbDspRead(BasePort, &SpeakerStatus, Timeout);
+ if ( Status != STATUS_SUCCESS )
+ return Status;
+
+ DbgPrint("SBDSP - SpeakerStatus is %02x\n", SpeakerStatus);
+ *IsEnabled = (SpeakerStatus == 0xFF);
+
+ return STATUS_SUCCESS;
+}