Main Page   Alphabetical List   Compound List   File List   Compound Members   Related Pages  

ALameDLL.cpp

00001 /*
00002 
00003   $Id: ALameDLL.cpp,v 1.4 2001/07/31 18:49:39 robux4 Exp $ 
00004 
00005 
00006   $Log: ALameDLL.cpp,v $
00007   Revision 1.4  2001/07/31 18:49:39  robux4
00008   Initial Doxygen doc support
00009   
00010   Revision 1.4  2001/07/27 16:42:39  robux4
00011   Updated CVS tags
00012 
00013   Revision 1.3  2001/07/26 19:28:49  robux4
00014   Added CVS tags
00015 
00016 */
00017 
00018 #include "ALameDLL.h"
00019 
00021 // Construction/Destruction
00023 ALameDLL::ALameDLL():
00024   LameDLL(NULL),
00025   beInitStream(NULL),
00026   beCloseStream(NULL),
00027   beEncodeChunk(NULL),
00028   beDeinitStream(NULL),
00029   beWriteVBRHeader(NULL),
00030   beVersion(NULL)
00031 {
00032 }
00033 
00034 ALameDLL::~ALameDLL()
00035 {
00036   if (LameDLL != NULL)
00037     FreeLibrary(LameDLL);
00038 }
00039 
00040 bool ALameDLL::Load(const char * DllLocation)
00041 {
00042   bool result = false;
00043 
00044   if (LameDLL == NULL)
00045   {
00046     LameDLL = LoadLibrary(DllLocation);
00047   }
00048 
00049   if (LameDLL != NULL)
00050   {
00051     beInitStream   = (BEINITSTREAM)     GetProcAddress(LameDLL, TEXT_BEINITSTREAM);
00052     beCloseStream  = (BECLOSESTREAM)    GetProcAddress(LameDLL, TEXT_BECLOSESTREAM);
00053     beEncodeChunk  = (BEENCODECHUNK)    GetProcAddress(LameDLL, TEXT_BEENCODECHUNK);
00054     beDeinitStream   = (BEDEINITSTREAM)   GetProcAddress(LameDLL, TEXT_BEDEINITSTREAM);
00055     beWriteVBRHeader = (BEWRITEVBRHEADER) GetProcAddress(LameDLL, TEXT_BEWRITEVBRHEADER);
00056     beVersion        = (BEVERSION)        GetProcAddress(LameDLL, TEXT_BEVERSION);
00057 
00058     result = IsLoaded();
00059   }
00060   else
00061   {
00062     beInitStream     = NULL;
00063     beCloseStream    = NULL;
00064     beEncodeChunk    = NULL;
00065     beDeinitStream   = NULL;
00066     beWriteVBRHeader = NULL;
00067     beVersion        = NULL;
00068   }
00069 
00070   return result;
00071 }
00072 
00073 void ALameDLL::Free()
00074 {
00075   if (LameDLL != NULL)
00076   {
00077     FreeLibrary(LameDLL);
00078   }
00079 
00080   LameDLL = NULL;
00081   
00082   // just in case (without any bug, it shouldn't be necessary)
00083   beInitStream     = NULL;
00084   beCloseStream    = NULL;
00085   beEncodeChunk    = NULL;
00086   beDeinitStream   = NULL;
00087   beWriteVBRHeader = NULL;
00088   beVersion        = NULL;
00089 }

Generated at Tue Aug 21 21:10:48 2001 for out_lame by doxygen1.2.9.1 written by Dimitri van Heesch, © 1997-2001