00001 /*MT* 00002 00003 MediaTomb - http://www.mediatomb.cc/ 00004 00005 string_converter.h - this file is part of MediaTomb. 00006 00007 Copyright (C) 2005 Gena Batyan <bgeradz@mediatomb.cc>, 00008 Sergey 'Jin' Bostandzhyan <jin@mediatomb.cc> 00009 00010 Copyright (C) 2006-2010 Gena Batyan <bgeradz@mediatomb.cc>, 00011 Sergey 'Jin' Bostandzhyan <jin@mediatomb.cc>, 00012 Leonhard Wimmer <leo@mediatomb.cc> 00013 00014 MediaTomb is free software; you can redistribute it and/or modify 00015 it under the terms of the GNU General Public License version 2 00016 as published by the Free Software Foundation. 00017 00018 MediaTomb is distributed in the hope that it will be useful, 00019 but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00021 GNU General Public License for more details. 00022 00023 You should have received a copy of the GNU General Public License 00024 version 2 along with MediaTomb; if not, write to the Free Software 00025 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 00026 00027 $Id: string_converter.h 2081 2010-03-23 20:18:00Z lww $ 00028 */ 00029 00031 00032 #ifndef __STRING_CONVERTER_H__ 00033 #define __STRING_CONVERTER_H__ 00034 00035 #include "common.h" 00036 #include <iconv.h> 00037 00038 class StringConverter : public zmm::Object 00039 { 00040 public: 00041 StringConverter(zmm::String from, zmm::String to); 00042 virtual ~StringConverter(); 00050 zmm::String convert(zmm::String str, bool validate=false); 00051 bool validate(zmm::String str); 00052 00054 static zmm::Ref<StringConverter> i2f(); 00055 00057 static zmm::Ref<StringConverter> f2i(); 00058 00060 static zmm::Ref<StringConverter> m2i(); 00061 #ifdef HAVE_JS 00063 static zmm::Ref<StringConverter> j2i(); 00064 00066 static zmm::Ref<StringConverter> p2i(); 00067 00068 #endif 00069 #if defined(HAVE_JS) || defined(HAVE_TAGLIB) || defined(YOUTUBE) || defined(HAVE_LIBEXTRACTOR) || defined(HAVE_LIBMP4V2) 00073 static zmm::Ref<StringConverter> i2i(); 00074 #endif 00075 00076 protected: 00077 iconv_t cd; 00078 bool dirty; 00079 00080 zmm::String _convert(zmm::String str, bool validate, 00081 size_t *stoppedAt = NULL); 00082 }; 00083 00084 #endif // __STRING_CONVERTER_H__
1.6.1