home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Edition 19 / FreelogHS19.iso / MP3 / Audiograbber / BEnc-0942-Win-i586-dll / bladedll.h next >
C/C++ Source or Header  |  1999-12-31  |  4KB  |  146 lines

  1. /*
  2.  
  3.     bladedll.h
  4.  
  5.     +++++++++++++++++++++++++++
  6.     +   Blade's Encoder DLL   +
  7.     +++++++++++++++++++++++++++
  8.  
  9.     ------------------------------------------------------
  10.     - Version 1.00 (7 November 1998) - Jukka Poikolainen -
  11.     ------------------------------------------------------
  12.  
  13.     Initial version
  14.     
  15.     ------------------------------------------------------
  16.     - Version x.xx (x xxxxxxxx xxxx) - xxxxx xxxxxxxxxxx -
  17.     ------------------------------------------------------
  18.  
  19. */
  20.  
  21. #ifndef ___BLADEDLL_H_INCLUDED___
  22.  
  23. #define ___BLADEDLL_H_INCLUDED___
  24.  
  25. #pragma pack(push)
  26. #pragma pack(1)
  27.  
  28. /* encoding formats */
  29.  
  30. #define        BE_CONFIG_MP3            0                                        
  31.  
  32. /* type definitions */
  33.  
  34. typedef        unsigned long            HBE_STREAM;
  35. typedef        HBE_STREAM                *PHBE_STREAM;
  36. typedef        unsigned long            BE_ERR;
  37.  
  38. /* error codes */
  39.  
  40. #define        BE_ERR_SUCCESSFUL                    0x00000000
  41. #define        BE_ERR_INVALID_FORMAT                0x00000001
  42. #define        BE_ERR_INVALID_FORMAT_PARAMETERS    0x00000002
  43. #define        BE_ERR_NO_MORE_HANDLES                0x00000003
  44. #define        BE_ERR_INVALID_HANDLE                0x00000004
  45.  
  46. /* other constants */
  47.  
  48. #define        BE_MAX_HOMEPAGE            256
  49.  
  50. /* format specific variables */
  51.  
  52. #define        BE_MP3_MODE_STEREO        0
  53. #define        BE_MP3_MODE_DUALCHANNEL    2
  54. #define        BE_MP3_MODE_MONO        3
  55.  
  56. typedef struct    {
  57.     
  58.     DWORD    dwConfig;            // BE_CONFIG_XXXXX
  59.                                 // Currently only BE_CONFIG_MP3 is supported
  60.     union    {
  61.  
  62.         struct    {
  63.  
  64.             DWORD    dwSampleRate;    // 48000, 44100 and 32000 allowed
  65.             BYTE    byMode;            // BE_MP3_MODE_STEREO, BE_MP3_MODE_DUALCHANNEL, BE_MP3_MODE_MONO
  66.             WORD    wBitrate;        // 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256 and 320 allowed
  67.             BOOL    bPrivate;        
  68.             BOOL    bCRC;
  69.             BOOL    bCopyright;
  70.             BOOL    bOriginal;
  71.  
  72.             } mp3;                    // BE_CONFIG_MP3
  73.  
  74.         struct    {
  75.  
  76.             DWORD    dwSampleRate;
  77.             BYTE    byMode;
  78.             WORD    wBitrate;
  79.             BYTE    byEncodingMethod;
  80.  
  81.         } aac;
  82.  
  83.     } format;
  84.         
  85. } BE_CONFIG, *PBE_CONFIG;
  86.  
  87. typedef struct    {
  88.  
  89.     // BladeEnc DLL Version number
  90.  
  91.     BYTE    byDLLMajorVersion;
  92.     BYTE    byDLLMinorVersion;
  93.  
  94.     // BladeEnc Engine Version Number
  95.  
  96.     BYTE    byMajorVersion;
  97.     BYTE    byMinorVersion;
  98.  
  99.     // DLL Release date
  100.  
  101.     BYTE    byDay;
  102.     BYTE    byMonth;
  103.     WORD    wYear;
  104.  
  105.     // BladeEnc    Homepage URL
  106.  
  107.     CHAR    zHomepage[BE_MAX_HOMEPAGE + 1];    
  108.  
  109. } BE_VERSION, *PBE_VERSION;            
  110.  
  111. #ifndef _BLADEDLL
  112.  
  113. typedef BE_ERR    (*BEINITSTREAM)        (PBE_CONFIG, PDWORD, PDWORD, PHBE_STREAM);
  114. typedef BE_ERR    (*BEENCODECHUNK)    (HBE_STREAM, DWORD, PSHORT, PBYTE, PDWORD);
  115. typedef BE_ERR    (*BEDEINITSTREAM)    (HBE_STREAM, PBYTE, PDWORD);
  116. typedef BE_ERR    (*BECLOSESTREAM)    (HBE_STREAM);
  117. typedef VOID    (*BEVERSION)        (PBE_VERSION);
  118.  
  119. #define    TEXT_BEINITSTREAM    "beInitStream"
  120. #define    TEXT_BEENCODECHUNK    "beEncodeChunk"
  121. #define    TEXT_BEDEINITSTREAM    "beDeinitStream"
  122. #define    TEXT_BECLOSESTREAM    "beCloseStream"
  123. #define    TEXT_BEVERSION        "beVersion"
  124.  
  125. /*    
  126.     BE_ERR    beInitStream(PBE_CONFIG pbeConfig, PDWORD dwSamples, PDWORD dwBufferSize, PHBE_STREAM phbeStream);
  127.     BE_ERR    beEncodeChunk(HBE_STREAM hbeStream, DWORD nSamples, PSHORT pSamples, PBYTE pOutput, PDWORD pdwOutput);
  128.     BE_ERR    beDeinitStream(HBE_STREAM hbeStream, PBYTE pOutput, PDWORD pdwOutput);
  129.     BE_ERR    beCloseStream(HBE_STREAM hbeStream);
  130.     VOID    beVersion(PBE_VERSION pbeVersion);        
  131. */
  132.     
  133. #else
  134.  
  135. __declspec(dllexport) BE_ERR    beInitStream(PBE_CONFIG pbeConfig, PDWORD dwSamples, PDWORD dwBufferSize, PHBE_STREAM phbeStream);
  136. __declspec(dllexport) BE_ERR    beEncodeChunk(HBE_STREAM hbeStream, DWORD nSamples, PSHORT pSamples, PBYTE pOutput, PDWORD pdwOutput);
  137. __declspec(dllexport) BE_ERR    beDeinitStream(HBE_STREAM hbeStream, PBYTE pOutput, PDWORD pdwOutput);
  138. __declspec(dllexport) BE_ERR    beCloseStream(HBE_STREAM hbeStream);
  139. __declspec(dllexport) VOID        beVersion(PBE_VERSION pbeVersion);
  140.  
  141. #endif
  142.  
  143. #pragma pack(pop)
  144.  
  145. #endif
  146.