⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bladedll.h

📁 读取音乐光盘磁道为磁盘文件的DLL源码
💻 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 -
  ------------------------------------------------------
  
*/
/*
 * JAK - Feb 1999: Original file slightly modified for use with
 *                 Mingw32/CygWin compilers
 * JAK - Jan 2000: Modified for lame_enc.dll
 */

#ifndef ___BLADEDLL_H_INCLUDED___

#define ___BLADEDLL_H_INCLUDED___

#pragma pack(push)
#pragma pack(1)

#ifndef __GNUC__
#define PACKED
#pragma pack(1)
#endif

/* encoding formats */

#define         BE_CONFIG_MP3          0
#define         BE_CONFIG_LAME         256

/* 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_JSTEREO         1
#define  BE_MP3_MODE_DUALCHANNEL     2
#define  BE_MP3_MODE_MONO            3

#define  MPEG1    1
#define  MPEG2    0


typedef enum {
  NORMAL_QUALITY=0,
  LOW_QUALITY,
  HIGH_QUALITY,
  VOICE_QUALITY,
} MPEG_QUALITY;


typedef struct	{
  DWORD	dwConfig;              // BE_CONFIG_XXXXX
  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;
    } PACKED mp3;  // BE_CONFIG_MP3

    struct {
      // STRUCTURE INFORMATION
      DWORD  dwStructVersion;
      DWORD  dwStructSize;

      // BASIC ENCODER SETTINGS
      DWORD  dwSampleRate;      // depends on dwMPEGVersion
      DWORD  dwReSampleRate;    // downsample rate, 0=encoder decides
      INT    nMode;             // BE_MP3_MODE_STEREO, BE_MP3_MODE_DUALCHANNEL,
                                // BE_MP3_MODE_MONO
      DWORD  dwBitrate;         // CBR bitrate, VBR min bitrate
      DWORD  dwMaxBitrate;      // CBR ignored, VBR max bitrate
      MPEG_QUALITY nQuality;    // NORMAL, HIGH, LOW, VOICE
      DWORD  dwMpegVersion;     // MPEG1 or MPEG2
      DWORD  dwPsyModel;        // currently not used
      DWORD  dwEmphasis;        // currently not used

      // BIT STREAM SETTINGS
      BOOL   bPrivate;          // Set Private Bit
      BOOL   bCRC;              // Insert CRC
      BOOL   bCopyright;        // Set copyright bit
      BOOL   bOriginal;         // Set original bit

      // VBR STUFF
      BOOL   bWriteVBRHeader;   // Write XING VBR header
      BOOL   bEnableVBR;        // Use VBR encoding
      INT    nVBRQuality;       // VBR quality 0..9

      BYTE   btReserved[255];   // Reserved for future use
    } LHV1;

    struct {
      DWORD  dwSampleRate;
      BYTE   byMode;
      WORD   wBitrate;
      BYTE   byEncodingMethod;
    } PACKED aac;
    
  } PACKED format;
  
} PACKED 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];	
  
} PACKED 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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -