#ifndef TITLE_SUBSTITUTION_H
#define TITLE_SUBSTITUTION_H

/** @brief The different fields to potentially translate. */
struct TitleFields
{
	void SaveToStrings( 
		RString &sTitle, RString &sSubtitle, RString &sArtist,
		RString &sTitleTranslit, RString &sSubtitleTranslit, RString &sArtistTranslit ) const
	{
		sTitle = Title;
		sSubtitle = Subtitle;
		sArtist = Artist;
		sTitleTranslit = TitleTranslit;
		sSubtitleTranslit = SubtitleTranslit;
		sArtistTranslit = ArtistTranslit;
	}

	void LoadFromStrings( 
		RString sTitle, RString sSubtitle, RString sArtist,
		RString sTitleTranslit, RString sSubtitleTranslit, RString sArtistTranslit )
	{
		Title = sTitle;
		Subtitle = sSubtitle;
		Artist = sArtist;
		TitleTranslit = sTitleTranslit;
		SubtitleTranslit = sSubtitleTranslit;
		ArtistTranslit = sArtistTranslit;
	}
	RString Title, Subtitle, Artist;
	RString TitleTranslit, SubtitleTranslit, ArtistTranslit;
};
struct TitleTrans;
/** @brief Automatic translation for Song titles. */
class TitleSubst
{
	vector<TitleTrans *> ttab;

	void AddTrans(const TitleTrans &tr);
public:
	TitleSubst(const RString &section);
	~TitleSubst();

	void Load(const RString &filename, const RString &section);

	void Subst( TitleFields &tf );
};

#endif

/**
 * @file
 * @author Glenn Maynard (c) 2003-2004
 * @section LICENSE
 * All rights reserved.
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, and/or sell copies of the Software, and to permit persons to
 * whom the Software is furnished to do so, provided that the above
 * copyright notice(s) and this permission notice appear in all copies of
 * the Software and that both the above copyright notice(s) and this
 * permission notice appear in supporting documentation.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
 * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
 * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
 * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
 * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
 * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 * PERFORMANCE OF THIS SOFTWARE.
 */
