www.pudn.com > bladeenc-0.90.0-src.zip > bladedll.h


/* 
 
	bladedll.h 
 
    +++++++++++++++++++++++++++ 
	+   Blade's Encoder DLL   + 
	+++++++++++++++++++++++++++ 
 
    ------------------------------------------------------ 
	- Version 1.00 (7 November 1998) - Jukka Poikolainen - 
	------------------------------------------------------ 
 
	Initial version 
	 
	------------------------------------------------------ 
	- Version x.xx (x xxxxxxxx xxxx) - xxxxx xxxxxxxxxxx - 
	------------------------------------------------------ 
 
*/ 
 
#ifndef ___BLADEDLL_H_INCLUDED___ 
 
#define ___BLADEDLL_H_INCLUDED___ 
 
#pragma pack(push) 
#pragma pack(1) 
 
 
 
/* encoding formats */ 
 
#define		BE_CONFIG_MP3			0										 
 
/* type definitions */ 
 
typedef		unsigned long			HBE_STREAM; 
typedef		HBE_STREAM				*PHBE_STREAM; 
typedef		unsigned long			BE_ERR; 
 
/* error codes */ 
 
#define		BE_ERR_SUCCESSFUL					0x00000000 
#define		BE_ERR_INVALID_FORMAT				0x00000001 
#define		BE_ERR_INVALID_FORMAT_PARAMETERS	0x00000002 
#define		BE_ERR_NO_MORE_HANDLES				0x00000003 
#define		BE_ERR_INVALID_HANDLE				0x00000004 
 
/* other constants */ 
 
#define		BE_MAX_HOMEPAGE			256 
 
/* format specific variables */ 
 
#define		BE_MP3_MODE_STEREO		0 
#define		BE_MP3_MODE_DUALCHANNEL	2 
#define		BE_MP3_MODE_MONO		3 
 
typedef struct	{ 
	 
	DWORD	dwConfig;			// BE_CONFIG_XXXXX 
								// Currently only BE_CONFIG_MP3 is supported 
	union	{ 
 
		struct	{ 
 
			DWORD	dwSampleRate;	// 48000, 44100 and 32000 allowed 
			BYTE	byMode;			// BE_MP3_MODE_STEREO, BE_MP3_MODE_DUALCHANNEL, BE_MP3_MODE_MONO 
			WORD	wBitrate;		// 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256 and 320 allowed 
			BOOL	bPrivate;		 
			BOOL	bCRC; 
			BOOL	bCopyright; 
			BOOL	bOriginal; 
 
			} mp3;					// BE_CONFIG_MP3 
 
		struct	{ 
 
			DWORD	dwSampleRate; 
			BYTE	byMode; 
			WORD	wBitrate; 
			BYTE	byEncodingMethod; 
 
		} aac; 
 
	} format; 
		 
} BE_CONFIG, *PBE_CONFIG; 
 
typedef struct	{ 
 
	// BladeEnc DLL Version number 
 
	BYTE	byDLLMajorVersion; 
	BYTE	byDLLMinorVersion; 
 
	// BladeEnc Engine Version Number 
 
	BYTE	byMajorVersion; 
	BYTE	byMinorVersion; 
 
	// DLL Release date 
 
	BYTE	byDay; 
	BYTE	byMonth; 
	WORD	wYear; 
 
	// BladeEnc	Homepage URL 
 
	CHAR	zHomepage[BE_MAX_HOMEPAGE + 1];	 
 
} BE_VERSION, *PBE_VERSION;			 
 
#ifndef _BLADEDLL 
 
typedef BE_ERR	(*BEINITSTREAM)		(PBE_CONFIG, PDWORD, PDWORD, PHBE_STREAM); 
typedef BE_ERR	(*BEENCODECHUNK)	(HBE_STREAM, DWORD, PSHORT, PBYTE, PDWORD); 
typedef BE_ERR	(*BEDEINITSTREAM)	(HBE_STREAM, PBYTE, PDWORD); 
typedef BE_ERR	(*BECLOSESTREAM)	(HBE_STREAM); 
typedef VOID	(*BEVERSION)		(PBE_VERSION); 
 
#define	TEXT_BEINITSTREAM	"beInitStream" 
#define	TEXT_BEENCODECHUNK	"beEncodeChunk" 
#define	TEXT_BEDEINITSTREAM	"beDeinitStream" 
#define	TEXT_BECLOSESTREAM	"beCloseStream" 
#define	TEXT_BEVERSION		"beVersion" 
 
/*	 
	BE_ERR	beInitStream(PBE_CONFIG pbeConfig, PDWORD dwSamples, PDWORD dwBufferSize, PHBE_STREAM phbeStream); 
	BE_ERR	beEncodeChunk(HBE_STREAM hbeStream, DWORD nSamples, PSHORT pSamples, PBYTE pOutput, PDWORD pdwOutput); 
	BE_ERR	beDeinitStream(HBE_STREAM hbeStream, PBYTE pOutput, PDWORD pdwOutput); 
	BE_ERR	beCloseStream(HBE_STREAM hbeStream); 
	VOID	beVersion(PBE_VERSION pbeVersion);		 
*/ 
	 
#else 
 
__declspec(dllexport) BE_ERR	beInitStream(PBE_CONFIG pbeConfig, PDWORD dwSamples, PDWORD dwBufferSize, PHBE_STREAM phbeStream); 
__declspec(dllexport) BE_ERR	beEncodeChunk(HBE_STREAM hbeStream, DWORD nSamples, PSHORT pSamples, PBYTE pOutput, PDWORD pdwOutput); 
__declspec(dllexport) BE_ERR	beDeinitStream(HBE_STREAM hbeStream, PBYTE pOutput, PDWORD pdwOutput); 
__declspec(dllexport) BE_ERR	beCloseStream(HBE_STREAM hbeStream); 
__declspec(dllexport) VOID		beVersion(PBE_VERSION pbeVersion); 
 
#endif 
 
#pragma pack(pop) 
 
#endif