www.pudn.com > openh323-v1_15_1-src.zip > opalwavfile.h


/* 
 * OpalWavFile.h 
 * 
 * WAV file class with auto-PCM conversion 
 * 
 * OpenH323 Library 
 * 
 * Copyright (c) 2002 Equivalence Pty. Ltd. 
 * 
 * The contents of this file are subject to the Mozilla Public License 
 * Version 1.0 (the "License"); you may not use this file except in 
 * compliance with the License. You may obtain a copy of the License at 
 * http://www.mozilla.org/MPL/ 
 * 
 * Software distributed under the License is distributed on an "AS IS" 
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 
 * the License for the specific language governing rights and limitations 
 * under the License. 
 * 
 * The Original Code is Open H323 Library. 
 * 
 * Contributor(s): ______________________________________. 
 * 
 * $Log: opalwavfile.h,v $ 
 * Revision 1.8  2004/08/26 08:05:03  csoutheren 
 * Codecs now appear in abstract factory system 
 * Fixed Windows factory bootstrap system (again) 
 * 
 * Revision 1.7  2004/08/09 11:11:33  csoutheren 
 * Added stupid windows hack to force opalwavfile factories to register 
 * 
 * Revision 1.6  2004/07/15 11:13:49  rjongbloed 
 * Migrated changes from crs_vxnml_devel branch into main trunk 
 * 
 * Revision 1.5.6.1  2004/07/07 07:10:11  csoutheren 
 * Changed to use new factory based PWAVFile 
 * Removed redundant blocking/unblocking when using G.723.1 
 * 
 * Revision 1.5  2002/09/16 01:14:15  robertj 
 * Added #define so can select if #pragma interface/implementation is used on 
 *   platform basis (eg MacOS) rather than compiler, thanks Robert Monaghan. 
 * 
 * Revision 1.4  2002/09/06 06:20:37  robertj 
 * More cosmetic changes 
 * 
 * Revision 1.3  2002/08/08 13:00:02  craigs 
 * Remove unused definition of LastReadCount thanks to Peter 'Luna' Runestig 
 * 
 * Revision 1.2  2002/08/05 10:03:47  robertj 
 * Cosmetic changes to normalise the usage of pragma interface/implementation. 
 * 
 * Revision 1.1  2002/06/20 01:21:03  craigs 
 * Initial version 
 * 
 */ 
 
#ifndef __OPALWAVFILE_H 
#define __OPALWAVFILE_H 
 
#ifdef P_USE_PRAGMA 
#pragma interface 
#endif 
 
 
#include  
 
/**This class is similar to the PWavFile class found in the PWlib 
   components library. However, it will tranparently convert all data 
   to/from PCM format, allowing applications to be unconcerned with  
   the underlying data format. Note that this will only work with 
   sample-based formats that can be converted to/from PCM data, such as 
   uLaw and aLaw 
  */ 
 
class OpalWAVFile : public PWAVFile 
{ 
  PCLASSINFO(OpalWAVFile, PWAVFile); 
  public: 
    OpalWAVFile( 
      unsigned format = fmt_PCM /// Type of WAV File to create 
    ); 
 
    /**Create a unique temporary file name, and open the file in the specified 
       mode and using the specified options. Note that opening a new, unique, 
       temporary file name in ReadOnly mode will always fail. This would only 
       be usefull in a mode and options that will create the file. 
 
       If a WAV file is being created, the type parameter can be used 
       to create a PCM Wave file or a G.723.1 Wave file by using 
       #WaveType enum# 
 
       The #PChannel::IsOpen()# function may be used after object 
       construction to determine if the file was successfully opened. 
     */ 
    OpalWAVFile( 
      OpenMode mode,            /// Mode in which to open the file. 
      int opts = ModeDefault,   /// #OpenOptions enum# for open operation. 
      unsigned format = fmt_PCM /// Type of WAV File to create 
    ); 
 
    /**Create a WAV file object with the specified name and open it in 
       the specified mode and with the specified options. 
       If a WAV file is being created, the type parameter can be used 
       to create a PCM Wave file or a G.723.1 Wave file by using 
       #WaveType enum# 
 
       The #PChannel::IsOpen()# function may be used after object 
       construction to determine if the file was successfully opened. 
     */ 
    OpalWAVFile( 
      const PFilePath & name,     /// Name of file to open. 
      OpenMode mode = ReadWrite,  /// Mode in which to open the file. 
      int opts = ModeDefault,     /// #OpenOptions enum# for open operation. 
      unsigned format = fmt_PCM /// Type of WAV File to create 
    ); 
}; 
 
#endif // __OPALWAVFILE_H 
 
 
// End of File ///////////////////////////////////////////////////////////////