00001 /* 00002 * Copyright: (C) 1999-2001 Bruce W. Forsberg 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00017 * 00018 * Bruce Forsberg forsberg@tns.net 00019 * 00020 */ 00021 00033 #ifndef _AFLIBLAMEFILE_H 00034 #define _AFLIBLAMEFILE_H 00035 00036 #ifdef HAVE_CONFIG_H 00037 #include <config.h> 00038 #endif 00039 00040 #include "aflibFile.h" 00041 #include "stdio.h" 00042 #include "stdlib.h" 00043 00044 00045 class aflibLameFile : public aflibFile { 00046 00047 public: 00048 00049 aflibLameFile(); 00050 00051 ~aflibLameFile(); 00052 00053 aflibStatus 00054 afopen( 00055 const char * file, 00056 aflibConfig* cfg); 00057 00058 aflibStatus 00059 afcreate( 00060 const char * file, 00061 const aflibConfig& cfg); 00062 00063 aflibStatus 00064 afread( 00065 aflibData& data, 00066 long long position = -1); 00067 00068 aflibStatus 00069 afwrite( 00070 aflibData& data, 00071 long long position = -1); 00072 00073 bool 00074 isDataSizeSupported(aflib_data_size size); 00075 00076 bool 00077 isEndianSupported(aflib_data_endian end); 00078 00079 bool 00080 isSampleRateSupported(int& rate); 00081 00082 private: 00083 00084 00085 FILE* _fd; 00086 long _length_value; 00087 int _sample_rate; 00088 00089 }; 00090 00091 00092 #endif