📄 audiocap.h
字号:
#ifndef __AUDIOCAP_H__
#define __AUDIOCAP_H__
#include "GUM.H"
#include "GCommDef.H"
#define MIN_BUFFER_SIZE 4096 // 4K
#define PWM_AUDIO_INIT (WM_USER + 1)
#define PWM_AUDIO_START_WAIT_EVENT (WM_USER + 2)
#define PWM_AUDIO_STOP_CAPTURE (WM_USER + 3)
#define PWM_AUDIO_CLOSE_THREAD (WM_USER + 4)
#define PWM_AUDIO_PROCESS_DATA_EVENT (WM_USER + 5)
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
typedef struct _AUDIOCAP_BufferConfig
{
ULONG ulSize;
HGLOBAL hBufferHandle;
LPBYTE lpBuffer;
OVERLAPPED OverlappedEvent;
} AUDIOCAP_BufferConfig, *AUDIOCAP_PBufferConfig;
#ifndef MxHandle
typedef unsigned char MxHandle;
#endif // MxHandle
typedef struct _AUDIOCAP_UpdataConfig
{
DWORD dwSlotNum;
#ifdef GENERAL_SYSTEM_MUXER
MxHandle SysMuxHandle;
#endif // GENERAL_SYSTEM_MUXER
} AUDIOCAP_UpdataConfig, *AUDIOCAP_PUpdataConfig;
typedef struct _AUDIOCAP_INIT_CONFIG
{
DWORD dwSlotNumber;
COMMON_PHandleBufferFunction pBufferFunction;
DWORD *pdwError;
DWORD *pdwAudioThreadID;
MPJ_SessionID *pSessionID;
LPBYTE lpRegistryPath;
#ifdef GENERAL_SYSTEM_MUXER
MxHandle SysMuxHandle;
#endif // GENERAL_SYSTEM_MUXER
} AUDIOCAP_INIT_CONFIG, *PAUDIOCAP_INIT_CONFIG;
typedef struct _AUDIOCAP_CAPTURE_CONFIG
{
COMMON_OperationMode dwOperationMode;
DWORD dwAudioBitRate;
DWORD dwAudioSampleRate;
int iDelayTicks;
int iAdjustAudioSample;
BOOL fNeedMux;
LPBYTE lpOutputFilename;
} AUDIOCAP_CAPTURE_CONFIG, *PAUDIOCAP_CAPTURE_CONFIG;
int WINAPI AUDIOCAP_Open( PAUDIOCAP_INIT_CONFIG pAudioInitConfig );
void WINAPI AUDIOCAP_DyUpdataConfig(AUDIOCAP_PUpdataConfig);
int WINAPI AUDIOCAP_Close();
int WINAPI AUDIOCAP_AllocateBuffers();
int WINAPI AUDIOCAP_FreeBuffers();
int WINAPI AUDIOCAP_AddBuffers();
int WINAPI AUDIOCAP_HandleBufferEvents( HANDLE hEvent );
int WINAPI AUDIOCAP_StartWaitEvent(HANDLE hVideoCaptureFinishEvent);
int WINAPI AUDIOCAP_WaitEvent();
int WINAPI AUDIOCAP_SetVideoDecoder(BYTE bAddress, LPBYTE lpBuffer, DWORD dwSize);
int WINAPI AUDIOCAP_GetVideoDecoder(BYTE bAddress, LPBYTE lpBuffer, DWORD dwSize);
int WINAPI AUDIOCAP_StartCapture( PAUDIOCAP_CAPTURE_CONFIG pAudioCaptureConfig );
int WINAPI AUDIOCAP_ErrorStopWaitEvent();
int WINAPI AUDIOCAP_UserStopWaitEvent();
char* WINAPI AV_GetRegisterName( MPJ_VideoRegisterName reg );
int WINAPI AUDIOCAP_CreateBuffer(AUDIOCAP_PBufferConfig pBufferConfig );
int WINAPI AUDIOCAP_FreeBuffer(AUDIOCAP_PBufferConfig pBufferConfig );
int WINAPI AUDIOCAP_IncreaseSampleCount(DWORD number);
int WINAPI AUDIOCAP_DecreaseSampleCount(DWORD number);
int WINAPI AUDIOCAP_DecreaseSpeed(int iSpeed);
int WINAPI AUDIOCAP_IncreaseSpeed(int iSpeed);
int WINAPI AUDIOCAP_AudioLostData(DWORD *dwCount);
void WINAPI AUDIOCAP_InitPlayPCM(void); // 12/24 for play audio
void WINAPI AUDIOCAP_ClosePlayPCM(void);
void WINAPI AUDIOCAP_StartPlayPCM(void);
void WINAPI AUDIOCAP_PausePlayPCM(void);
void WINAPI AUDIOCAP_RestartPlayPCM(void);
void WINAPI AUDIOCAP_StartPlayBack(void);
void WINAPI AUDIOCAP_StopPlayBack(void);
BOOL AllocateMemory(HGLOBAL *hData, LPBYTE *lpData, DWORD size);
BOOL FreeMemory (HGLOBAL *hData);
void CreateAudioThread();
void GetAppPath( char pathName1[]);
void ReadFromRegistry( LPBYTE lpRegistryPath );
void MessageLog_AudioCap( char *str255, BOOL showTime=TRUE );
#ifdef __cplusplus
}
#endif // __cplusplus
#endif // __AUDIOCAP_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -