[Deinterlace-checkins] SF.net SVN: deinterlace:[4590] trunk/DScaler/DScaler
Brought to you by:
adcockj,
dschmelzer
From: <ad...@us...> - 2009-05-08 15:20:45
|
Revision: 4590 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4590&view=rev Author: adcockj Date: 2009-05-08 15:20:43 +0000 (Fri, 08 May 2009) Log Message: ----------- Added missing files from last commit Added Paths: ----------- trunk/DScaler/DScaler/StringHelpers.cpp trunk/DScaler/DScaler/StringHelpers.h Added: trunk/DScaler/DScaler/StringHelpers.cpp =================================================================== --- trunk/DScaler/DScaler/StringHelpers.cpp (rev 0) +++ trunk/DScaler/DScaler/StringHelpers.cpp 2009-05-08 15:20:43 UTC (rev 4590) @@ -0,0 +1,74 @@ +//////////////////////////////////////////////////////////////////////////// +// $Id$ +///////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2009 John Adcock. All rights reserved. +///////////////////////////////////////////////////////////////////////////// +// +// This file is subject to the terms of the GNU General Public License as +// published by the Free Software Foundation. A copy of this license is +// included with this software distribution in the file COPYING. If you +// do not have a copy, you may obtain a copy by writing to the Free +// Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +// +// This software is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details +///////////////////////////////////////////////////////////////////////////// + +/** + * @file DScalerUtils.cpp + */ + +#include "stdafx.h" +#include "DScalerUtils.h" + +using namespace std; + +BOOL AreEqualInsensitive(const tstring& String1, const tstring& String2) +{ + return _tcsicmp(String1.c_str(), String2.c_str()) == 0; +} + +void Trim(tstring& StringToTrim) +{ +} + + +std::string UnicodeToMBCS(const std::wstring& InString) +{ + //covert to char + int n=WideCharToMultiByte(CP_ACP, 0, InString.c_str(), -1, NULL, 0, NULL, NULL); + vector<char> name(n); + WideCharToMultiByte(CP_ACP, 0, InString.c_str(), -1, &name[0], n, NULL, NULL); + return &name[0]; +} + +std::wstring MBCSToUnicode(const std::string& InString) +{ + //covert to wide char + int n=MultiByteToWideChar(CP_ACP, 0, InString.c_str(), -1, NULL, 0); + vector<wchar_t> name(n); + MultiByteToWideChar(CP_ACP, 0, InString.c_str(), -1, &name[0], n); + return &name[0]; +} + + +tstring ReplaceCharWithString(const tstring& InString, char CharToReplace, const tstring& StringToReplace) +{ + tstring Result; + const TCHAR* CurChar = InString.c_str(); + while (*CurChar != '\0' ) + { + if (*CurChar == CharToReplace ) + { + Result += StringToReplace; + } + else + { + Result += *CurChar; + } + ++CurChar; + } + return Result; +} Property changes on: trunk/DScaler/DScaler/StringHelpers.cpp ___________________________________________________________________ Added: svn:keywords + Id Revision Added: svn:eol-style + native Added: trunk/DScaler/DScaler/StringHelpers.h =================================================================== --- trunk/DScaler/DScaler/StringHelpers.h (rev 0) +++ trunk/DScaler/DScaler/StringHelpers.h 2009-05-08 15:20:43 UTC (rev 4590) @@ -0,0 +1,106 @@ +///////////////////////////////////////////////////////////////////////////// +// $Id$ +///////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2009 John Adcock. All rights reserved. +///////////////////////////////////////////////////////////////////////////// +// +// This file is subject to the terms of the GNU General Public License as +// published by the Free Software Foundation. A copy of this license is +// included with this software distribution in the file COPYING. If you +// do not have a copy, you may obtain a copy by writing to the Free +// Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +// +// This software is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details +///////////////////////////////////////////////////////////////////////////// + +/** + * @file StringHelpers.h + */ + +#ifndef __STRING_HELPERS_H___ +#define __STRING_HELPERS_H___ + +#include <string> +#include <sstream> + +#define DS_MAKE_CHAR_PTR(__TEXT__) #__TEXT__ + +std::string UnicodeToMBCS(const std::wstring& InString); +std::wstring MBCSToUnicode(const std::string& InString); +__inline std::string MBCSToMBCS(const std::string& InString) {return InString;}; +__inline std::wstring UnicodeToUnicode(const std::wstring& InString) {return InString;}; + + +#ifdef _UNICODE + typedef std::wstring tstring; + typedef std::wstringstream tstringstream; + typedef std::wostringstream tostringstream; + typedef std::wistringstream tistringstream; + #define ADD_API_LETTER(_NAME_) DS_MAKE_CHAR_PTR(_NAME_##W) + #define TStringToMBCS UnicodeToMBCS + #define TStringToUnicode UnicodeToUnicode + #define MBCSToTString MBCSToUnicode + #define UnicodeToTString UnicodeToUnicode +#else + typedef std::string tstring; + typedef std::stringstream tstringstream; + typedef std::ostringstream tostringstream; + typedef std::istringstream tistringstream; + #define ADD_API_LETTER(_NAME_) DS_MAKE_CHAR_PTR(_NAME_##A) + #define TStringToMBCS MBCSToMBCS + #define TStringToUnicode MBCSToUnicode + #define MBCSToTString MBCSToMBCS + #define UnicodeToTString UnicodeToMBCS +#endif + +class MakeString +{ +public: + template <typename T> + MakeString& operator<<(T const & Input) + { + m_Buffer << Input; + return *this; + } + operator tstring () const + { + return m_Buffer.str(); + } +private: + tostringstream m_Buffer; +}; + +template<typename T> +inline tstring ToString(const T& Input) +{ + tostringstream oss; + oss << Input; + return oss.str(); +} + +template<typename T> +inline std::string ToMBCSString(const T& Input) +{ + std::ostringstream oss; + oss << Input; + return oss.str(); +} + +template<typename T> +inline T FromString(const tstring& Input) +{ + T RetVal; + tistringstream iss(Input); + iss >> RetVal; + return RetVal; +} + +BOOL AreEqualInsensitive(const tstring& String1, const tstring& String2); +void Trim(tstring& StringToTrim); + +tstring ReplaceCharWithString(const tstring& InString, char CharToReplace, const tstring& StringToReplace); + +#endif Property changes on: trunk/DScaler/DScaler/StringHelpers.h ___________________________________________________________________ Added: svn:keywords + Id Revision Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |