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.6 2006/02/13 03:46:16 csoutheren 00026 * Added initialisation stuff to make sure that everything works OK 00027 * 00028 * Revision 2.5 2005/11/30 13:35:26 csoutheren 00029 * Changed tags for Doxygen 00030 * 00031 * Revision 2.4 2004/07/15 12:19:22 rjongbloed 00032 * Various enhancements to the VXML code 00033 * 00034 * Revision 2.3 2002/11/10 11:33:16 robertj 00035 * Updated to OpenH323 v1.10.3 00036 * 00037 * Revision 2.2 2002/09/16 02:52:33 robertj 00038 * Added #define so can select if #pragma interface/implementation is used on 00039 * platform basis (eg MacOS) rather than compiler, thanks Robert Monaghan. 00040 * 00041 * Revision 2.1 2002/09/06 07:18:44 robertj 00042 * OPAL port. 00043 * 00044 * Revision 1.6 2004/07/15 11:13:49 rjongbloed 00045 * Migrated changes from crs_vxnml_devel branch into main trunk 00046 * 00047 * Revision 1.5.6.1 2004/07/07 07:10:11 csoutheren 00048 * Changed to use new factory based PWAVFile 00049 * Removed redundant blocking/unblocking when using G.723.1 00050 * 00051 * Revision 1.5 2002/09/16 01:14:15 robertj 00052 * Added #define so can select if #pragma interface/implementation is used on 00053 * platform basis (eg MacOS) rather than compiler, thanks Robert Monaghan. 00054 * 00055 * Revision 1.4 2002/09/06 06:20:37 robertj 00056 * More cosmetic changes 00057 * 00058 * Revision 1.3 2002/08/08 13:00:02 craigs 00059 * Remove unused definition of LastReadCount thanks to Peter 'Luna' Runestig 00060 * 00061 * Revision 1.2 2002/08/05 10:03:47 robertj 00062 * Cosmetic changes to normalise the usage of pragma interface/implementation. 00063 * 00064 * Revision 1.1 2002/06/20 01:21:03 craigs 00065 * Initial version 00066 * 00067 */ 00068 00069 #ifndef __OPALWAVFILE_H 00070 #define __OPALWAVFILE_H 00071 00072 #ifdef P_USE_PRAGMA 00073 #pragma interface 00074 #endif 00075 00076 00077 #include <ptclib/pwavfile.h> 00078 00079 namespace PWLibStupidLinkerHacks { 00080 extern int opalwavfileLoader; 00081 }; 00082 00091 class OpalWAVFile : public PWAVFile 00092 { 00093 PCLASSINFO(OpalWAVFile, PWAVFile); 00094 public: 00095 OpalWAVFile( 00096 unsigned format = fmt_PCM 00097 ); 00098 00111 OpalWAVFile( 00112 OpenMode mode, 00113 int opts = ModeDefault, 00114 unsigned format = fmt_PCM 00115 ); 00116 00126 OpalWAVFile( 00127 const PFilePath & name, 00128 OpenMode mode = ReadWrite, 00129 int opts = ModeDefault, 00130 unsigned format = fmt_PCM 00131 ); 00132 }; 00133 00134 #endif // __OPALWAVFILE_H 00135 00136 00137 // End of File ///////////////////////////////////////////////////////////////