📄 winmm_render.h
字号:
/*////////////////////////////////////////////////////////////////////////////////// INTEL CORPORATION PROPRIETARY INFORMATION// This software is supplied under the terms of a license agreement or// nondisclosure agreement with Intel Corporation and may not be copied// or disclosed except in accordance with the terms of that agreement.// Copyright(c) 2003-2005 Intel Corporation. All Rights Reserved.//*/#ifndef __WIN_MM_AUDIO_RENDER_H__#define __WIN_MM_AUDIO_RENDER_H__#if defined (UMC_ENABLE_WINMM_AUDIO_RENDER)#include "vm_debug.h"#include <windows.h>#include <mmsystem.h>#include "basic_audio_render.h"#define BUF_NUM_MAX 10#define BUF_SIZE 1152*16namespace UMC{ class WinMMAudioRender :public BasicAudioRender { public: WinMMAudioRender(void); // Initialize the audio device. The playback is paused Status Init(MediaReceiverParams* pInit); // Write sound data to sound buffer Status SendFrame(MediaData* in); Status UnLockInputBuffer(MediaData *in, Status StreamStatus = UMC_OK); // Toggle pause mode. Return current pts Status Pause(bool pause); // Close the sound device Status Close(void); // 0-silence 1-max, return previous volume */ float SetVolume(float volume) { return volume;} float GetVolume() { return 0.;} Status Reset(void); double GetTimeTick(); ~WinMMAudioRender(void); void Release(void); protected: class BufArray { public: WAVEHDR m_pArray[BUF_NUM_MAX]; BufArray(); ~BufArray(); Status Init(vm_var32 uiBufSize); void ZeroBuffers(); inline vm_var32 GetHdrNum(); protected: vm_var32 m_uiBufSize; vm_var32 m_uiHdrNum; }; BufArray m_Hdrs; HANDLE m_sm_free_buffers; int m_iFreeBuf; int m_iDoneBuf; HWAVEOUT m_hWO; WAVEFORMATEX m_WaveFmtX; double m_dfSampleNorm; double m_dfStartPTS; int m_iOffset; DWORD m_dwVolume; }; vm_var32 WinMMAudioRender::BufArray::GetHdrNum() { return m_uiHdrNum; }} // namespace UMC#endif // UMC_ENABLE_WINMM_AUDIO_RENDER#endif // __WIN_MM_AUDIO_RENDER_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -