📄 au1kac97.h
字号:
/*******************************************************************
Copyright (c) 2004 BSQUARE Corporation. All rights reserved.
******************************************************************/
#ifndef _AU1K_AC97_H_
#define _AU1K_AC97_H_
#include <platform.h>
#include <waveddsi.h>
#include <mmreg.h>
#define AUDIO_REGKEY (TEXT("Drivers\\BuiltIn\\WaveDev"))
#define AC97_DEFAULT_MICVOLUME (0x8008)
#define DEFAULT_PCM_VOLUME 0
typedef struct _WAVE_DEVICE {
PDMA_CHANNEL_OBJECT DMAChannelInput;
PDMA_CHANNEL_OBJECT DMAChannelOutput;
ULONG DmaBufferSize; // Size in bytes of a
// single DMA buffer
// (2/channel).
PSC_AC97* AC97Ctrl;
DWORD MicVolume;
CRITICAL_SECTION CriticalSection;
CEDEVICE_POWER_STATE CurrentPowerState;
} WAVE_DEVICE_INSTANCE, *PWAVE_DEVICE_INSTANCE;
typedef struct WAVE_RESOURCE {
PDMA_CHANNEL_OBJECT DMAChannel;
ULONG SysIntr;
ULONG DmaBufferSize;
LONG InUse; // TRUE if actively recording/playing;
// FALSE otherwise.
PWAVEHDR WaveHeader; // Header of current wave buffer.
WAVEFORMATEX WaveFormat; // Stream format information.
WAPI_INOUT WaveDirection; // Input (record) or output (play).
BOOLEAN MoreData; // TRUE if there is more data to play/
// record; FALSE otherwise.
PSC_AC97* AC97Ctrl;
CRITICAL_SECTION CriticalSection;
BOOL DmaRunning;
} WAVE_RESOURCE, *PWAVE_RESOURCE;
extern DWORD
FindMicVolume(
PWAVE_DEVICE_INSTANCE WaveDevice
);
#define DMA_BUFFER_SIZE 32768
#define BYTES_PER_SAMPLE 4
#define BITS_8_TO_16(x) \
(((SHORT)((UCHAR)(x) - 128)) << 8)
#endif _AU1K_AC97_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -