00001 /* 00002 * OpalWavFile.h 00003 * 00004 * WAV file class with auto-PCM conversion 00005 * 00006 * OpenH323 Library 00007 * 00008 * Copyright (c) 2002 Equivalence Pty. Ltd. 00009 * 00010 * The contents of this file are subject to the Mozilla Public License 00011 * Version 1.0 (the "License"); you may not use this file except in 00012 * compliance with the License. You may obtain a copy of the License at 00013 * http://www.mozilla.org/MPL/ 00014 * 00015 * Software distributed under the License is distributed on an "AS IS" 00016 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 00017 * the License for the specific language governing rights and limitations 00018 * under the License. 00019 * 00020 * The Original Code is Open H323 Library. 00021 * 00022 * Contributor(s): ______________________________________. 00023 * 00024 * $Log: opalwavfile.h,v $ 00025 * Revision 2.5.2.1 2006/02/13 11:49:28 csoutheren 00026 * Backported H.235 and initialisation fixes from CVS head 00027 * 00028 * Revision 2.6 2006/02/13 03:46:16 csoutheren 00029 * Added initialisation stuff to make sure that everything works OK 00030 * 00031 * Revision 2.5 2005/11/30 13:35:26 csoutheren 00032 * Changed tags for Doxygen 00033 * 00034 * Revision 2.4 2004/07/15 12:19:22 rjongbloed 00035 * Various enhancements to the VXML code 00036 * 00037 * Revision 2.3 2002/11/10 11:33:16 robertj 00038 * Updated to OpenH323 v1.10.3 00039 * 00040 * Revision 2.2 2002/09/16 02:52:33 robertj 00041 * Added #define so can select if #pragma interface/implementation is used on 00042 * platform basis (eg MacOS) rather than compiler, thanks Robert Monaghan. 00043 * 00044 * Revision 2.1 2002/09/06 07:18:44 robertj 00045 * OPAL port. 00046 * 00047 * Revision 1.6 2004/07/15 11:13:49 rjongbloed 00048 * Migrated changes from crs_vxnml_devel branch into main trunk 00049 * 00050 * Revision 1.5.6.1 2004/07/07 07:10:11 csoutheren 00051 * Changed to use new factory based PWAVFile 00052 * Removed redundant blocking/unblocking when using G.723.1 00053 * 00054 * Revision 1.5 2002/09/16 01:14:15 robertj 00055 * Added #define so can select if #pragma interface/implementation is used on 00056 * platform basis (eg MacOS) rather than compiler, thanks Robert Monaghan. 00057 * 00058 * Revision 1.4 2002/09/06 06:20:37 robertj 00059 * More cosmetic changes 00060 * 00061 * Revision 1.3 2002/08/08 13:00:02 craigs 00062 * Remove unused definition of LastReadCount thanks to Peter 'Luna' Runestig 00063 * 00064 * Revision 1.2 2002/08/05 10:03:47 robertj 00065 * Cosmetic changes to normalise the usage of pragma interface/implementation. 00066 * 00067 * Revision 1.1 2002/06/20 01:21:03 craigs 00068 * Initial version 00069 * 00070 */ 00071 00072 #ifndef __OPALWAVFILE_H 00073 #define __OPALWAVFILE_H 00074 00075 #ifdef P_USE_PRAGMA 00076 #pragma interface 00077 #endif 00078 00079 00080 #include <ptclib/pwavfile.h> 00081 00082 namespace PWLibStupidLinkerHacks { 00083 extern int opalwavfileLoader; 00084 }; 00085 00094 class OpalWAVFile : public PWAVFile 00095 { 00096 PCLASSINFO(OpalWAVFile, PWAVFile); 00097 public: 00098 OpalWAVFile( 00099 unsigned format = fmt_PCM 00100 ); 00101 00114 OpalWAVFile( 00115 OpenMode mode, 00116 int opts = ModeDefault, 00117 unsigned format = fmt_PCM 00118 ); 00119 00129 OpalWAVFile( 00130 const PFilePath & name, 00131 OpenMode mode = ReadWrite, 00132 int opts = ModeDefault, 00133 unsigned format = fmt_PCM 00134 ); 00135 }; 00136 00137 #endif // __OPALWAVFILE_H 00138 00139 00140 // End of File ///////////////////////////////////////////////////////////////