home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 26 / CD_ASCQ_26_1295.iso / vrac / mfcwave.zip / WAVE.CXX < prev    next >
C/C++ Source or Header  |  1995-07-21  |  2KB  |  95 lines

  1. /////////////////////////////////////////////////////////////////////////////
  2. //
  3. //  $Id: wave.cxx 1.1 1995/07/21 20:10:06 neuer Exp $
  4. //
  5. //
  6. //      Implementation of the CWave class.
  7. //
  8. //
  9. //  $Revision: 1.1 $
  10. //  $Date: 1995/07/21 20:10:06 $
  11. //  $Author: neuer $
  12. //
  13. //  $Log: wave.cxx $
  14. //    Revision 1.1  1995/07/21  20:10:06  neuer
  15. //    Initial revision
  16. //
  17. /////////////////////////////////////////////////////////////////////////////
  18.  
  19. #include "stdafx.h"
  20. #include "wave.hxx"
  21.  
  22. static const char BASED_CODE RCSID[] = "$Id: wave.cxx 1.1 1995/07/21 20:10:06 neuer Exp $";
  23. #ifdef _DEBUG
  24. #undef THIS_FILE
  25. static char BASED_CODE THIS_FILE[] = __FILE__;
  26. #endif
  27.  
  28. IMPLEMENT_DYNAMIC( CWave, CObject );
  29.  
  30.  
  31. BOOL CWave::LoadWave( LPCSTR lpszWave )
  32. {
  33.     if( IsLoaded() )
  34.         DiscardWave();
  35.     if( lpszWave != NULL )
  36.         m_Name = _fstrcpy( (LPSTR)new char [strlen(lpszWave)+1], lpszWave );
  37.     return IsLoaded();
  38. } // LoadWave()
  39.  
  40.  
  41. BOOL CWave::LoadWave( UINT nWave )
  42. {
  43.     HRSRC       hResInfo;
  44.     HINSTANCE   hInstance;
  45.  
  46.     if( IsLoaded() )
  47.         DiscardWave();
  48.     if( (hResInfo = FindResource( hInstance = AfxGetResourceHandle(),
  49.                                   MAKEINTRESOURCE( nWave ),
  50.                                   (LPCSTR)"WAVE" )) != NULL )
  51.     {
  52.         m_Name = (LPSTR)( ((m_Resource = LoadResource( hInstance, hResInfo )) != NULL ) ?
  53.                           (LPSTR)LockResource( m_Resource ) : NULL );
  54.         m_Flags = SND_MEMORY;
  55.     } //if
  56.     else
  57.         InitWave();
  58.     return IsLoaded();
  59. } // LoadWave()
  60.  
  61.  
  62. void CWave::DiscardWave()
  63. {
  64.     if( IsExternal() )
  65.         delete m_Name;
  66.     else if( (m_Name != NULL) && (m_Resource != NULL) )
  67.     {
  68.         UnlockResource( m_Resource );
  69.         FreeResource( m_Resource );
  70.     } //if
  71.     InitWave();
  72. } // DiscardWave()
  73.  
  74.  
  75. #ifdef  _DEBUG
  76.  
  77. void CWave::AssertValid() const
  78. {
  79.     CObject::AssertValid();
  80.     ASSERT( IsLoaded() );
  81. } // AssertValid()
  82.  
  83.  
  84. void CWave::Dump( CDumpContext &dc ) const
  85. {
  86.     CObject::Dump( dc );
  87.     dc << "Wave is " << (char *)(IsLoaded()?"":"not ") << "loaded from "
  88.        << (char *)(IsResident()?"program resources":"external wave file")
  89.        << ".\n";
  90. } // Dump()
  91.  
  92. #endif
  93.  
  94. /////////////////////////////////////////////////////////////////////////////
  95.