aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorace20022 <ace20022@ymail.com>2015-09-11 08:48:46 +0200
committerace20022 <ace20022@ymail.com>2015-09-11 08:48:46 +0200
commit1ddecf5b51fd40c19f815640417b5e02973e579c (patch)
tree3c8807c400979cdf1cb1cdf6be137dffac9ce7e3
parent285ecc33f5ee972f0bbc936caed919a40ce2a5dc (diff)
[lang/settings] Separate StreamLanguagesFiller into AudioStreamLanguagesFiller, SubtitleStreamLanguagesFiller and SubtitleDownloadlanguagesFiller because of special entries.
-rw-r--r--system/settings/settings.xml6
-rw-r--r--xbmc/LangInfo.cpp41
-rw-r--r--xbmc/LangInfo.h5
-rw-r--r--xbmc/settings/Settings.cpp8
4 files changed, 44 insertions, 16 deletions
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
index 2323db4e82..a22a44fc15 100644
--- a/system/settings/settings.xml
+++ b/system/settings/settings.xml
@@ -510,7 +510,7 @@
<level>1</level>
<default>original</default>
<constraints>
- <options>streamlanguages</options>
+ <options>audiostreamlanguages</options>
</constraints>
<control type="list" format="string" />
</setting>
@@ -876,7 +876,7 @@
<level>1</level>
<default>original</default>
<constraints>
- <options>streamlanguages</options>
+ <options>subtitlestreamlanguages</options>
</constraints>
<control type="list" format="string" />
</setting>
@@ -992,7 +992,7 @@
<level>1</level>
<default>English</default>
<constraints>
- <options>streamlanguages</options>
+ <options>subtitledownloadlanguages</options>
<delimiter>,</delimiter>
<minimumitems>1</minimumitems>
</constraints>
diff --git a/xbmc/LangInfo.cpp b/xbmc/LangInfo.cpp
index 1e2fbcc070..b8f94e0d46 100644
--- a/xbmc/LangInfo.cpp
+++ b/xbmc/LangInfo.cpp
@@ -1141,24 +1141,30 @@ void CLangInfo::SettingOptionsISO6391LanguagesFiller(const CSetting *setting, st
list.push_back(std::make_pair(*language, *language));
}
-void CLangInfo::SettingOptionsStreamLanguagesFiller(const CSetting *setting, std::vector< std::pair<std::string, std::string> > &list, std::string &current, void *data)
+void CLangInfo::SettingOptionsAudioStreamLanguagesFiller(const CSetting *setting, std::vector< std::pair<std::string, std::string> > &list, std::string &current, void *data)
+{
+ list.push_back(make_pair(g_localizeStrings.Get(308), "original"));
+ list.push_back(make_pair(g_localizeStrings.Get(309), "default"));
+
+ AddLanguages(list);
+}
+
+void CLangInfo::SettingOptionsSubtitleStreamLanguagesFiller(const CSetting *setting, std::vector< std::pair<std::string, std::string> > &list, std::string &current, void *data)
{
list.push_back(make_pair(g_localizeStrings.Get(231), "none"));
list.push_back(make_pair(g_localizeStrings.Get(13207), "forced_only"));
list.push_back(make_pair(g_localizeStrings.Get(308), "original"));
list.push_back(make_pair(g_localizeStrings.Get(309), "default"));
- std::string dummy;
- std::vector<std::pair<std::string, std::string>> languages;
- SettingOptionsISO6391LanguagesFiller(NULL, languages, dummy, NULL);
- SettingOptionsLanguageNamesFiller(NULL, languages, dummy, NULL);
+ AddLanguages(list);
+}
- // convert the vector to a set to remove duplicates
- std::set<std::pair<std::string, std::string>, SortLanguage> tmp(
- languages.begin(), languages.end(), SortLanguage());
+void CLangInfo::SettingOptionsSubtitleDownloadlanguagesFiller(const CSetting *setting, std::vector< std::pair<std::string, std::string> > &list, std::string &current, void *data)
+{
+ list.push_back(make_pair(g_localizeStrings.Get(308), "original"));
+ list.push_back(make_pair(g_localizeStrings.Get(309), "default"));
- list.reserve(list.size() + tmp.size());
- list.insert(list.end(), tmp.begin(), tmp.end());
+ AddLanguages(list);
}
void CLangInfo::SettingOptionsRegionsFiller(const CSetting *setting, std::vector< std::pair<std::string, std::string> > &list, std::string &current, void *data)
@@ -1399,3 +1405,18 @@ void CLangInfo::SettingOptionsSpeedUnitsFiller(const CSetting *setting, std::vec
if (!match && !list.empty())
current = list[0].second;
}
+
+void CLangInfo::AddLanguages(std::vector< std::pair<std::string, std::string> > &list)
+{
+ std::string dummy;
+ std::vector<std::pair<std::string, std::string>> languages;
+ SettingOptionsISO6391LanguagesFiller(NULL, languages, dummy, NULL);
+ SettingOptionsLanguageNamesFiller(NULL, languages, dummy, NULL);
+
+ // convert the vector to a set to remove duplicates
+ std::set<std::pair<std::string, std::string>, SortLanguage> tmp(
+ languages.begin(), languages.end(), SortLanguage());
+
+ list.reserve(list.size() + tmp.size());
+ list.insert(list.end(), tmp.begin(), tmp.end());
+}
diff --git a/xbmc/LangInfo.h b/xbmc/LangInfo.h
index 7a14f444e3..585df24b6d 100644
--- a/xbmc/LangInfo.h
+++ b/xbmc/LangInfo.h
@@ -183,7 +183,9 @@ public:
static void LoadTokens(const TiXmlNode* pTokens, std::set<std::string>& vecTokens);
static void SettingOptionsLanguageNamesFiller(const CSetting *setting, std::vector< std::pair<std::string, std::string> > &list, std::string &current, void *data);
- static void SettingOptionsStreamLanguagesFiller(const CSetting *setting, std::vector< std::pair<std::string, std::string> > &list, std::string &current, void *data);
+ static void SettingOptionsAudioStreamLanguagesFiller(const CSetting *setting, std::vector< std::pair<std::string, std::string> > &list, std::string &current, void *data);
+ static void SettingOptionsSubtitleStreamLanguagesFiller(const CSetting *setting, std::vector< std::pair<std::string, std::string> > &list, std::string &current, void *data);
+ static void SettingOptionsSubtitleDownloadlanguagesFiller(const CSetting *setting, std::vector< std::pair<std::string, std::string> > &list, std::string &current, void *data);
static void SettingOptionsISO6391LanguagesFiller(const CSetting *setting, std::vector< std::pair<std::string, std::string> > &list, std::string &current, void *data);
static void SettingOptionsRegionsFiller(const CSetting *setting, std::vector< std::pair<std::string, std::string> > &list, std::string &current, void *data);
static void SettingOptionsShortDateFormatsFiller(const CSetting *setting, std::vector< std::pair<std::string, std::string> > &list, std::string &current, void *data);
@@ -199,6 +201,7 @@ protected:
static bool DetermineUse24HourClockFromTimeFormat(const std::string& timeFormat);
static bool DetermineUseMeridiemFromTimeFormat(const std::string& timeFormat);
static std::string PrepareTimeFormat(const std::string& timeFormat, bool use24HourClock);
+ static void AddLanguages(std::vector< std::pair<std::string, std::string> > &list);
class CRegion
{
diff --git a/xbmc/settings/Settings.cpp b/xbmc/settings/Settings.cpp
index 8b5def86eb..bdeebe0490 100644
--- a/xbmc/settings/Settings.cpp
+++ b/xbmc/settings/Settings.cpp
@@ -583,7 +583,9 @@ void CSettings::Uninitialize()
m_settingsManager->UnregisterSettingOptionsFiller("videoseeksteps");
m_settingsManager->UnregisterSettingOptionsFiller("shutdownstates");
m_settingsManager->UnregisterSettingOptionsFiller("startupwindows");
- m_settingsManager->UnregisterSettingOptionsFiller("streamlanguages");
+ m_settingsManager->UnregisterSettingOptionsFiller("audiostreamlanguages");
+ m_settingsManager->UnregisterSettingOptionsFiller("subtitlestreamlanguages");
+ m_settingsManager->UnregisterSettingOptionsFiller("subtitledownloadlanguages");
m_settingsManager->UnregisterSettingOptionsFiller("iso6391languages");
m_settingsManager->UnregisterSettingOptionsFiller("skincolors");
m_settingsManager->UnregisterSettingOptionsFiller("skinfonts");
@@ -951,7 +953,9 @@ void CSettings::InitializeOptionFillers()
m_settingsManager->RegisterSettingOptionsFiller("videoseeksteps", CSeekHandler::SettingOptionsSeekStepsFiller);
m_settingsManager->RegisterSettingOptionsFiller("shutdownstates", CPowerManager::SettingOptionsShutdownStatesFiller);
m_settingsManager->RegisterSettingOptionsFiller("startupwindows", ADDON::CSkinInfo::SettingOptionsStartupWindowsFiller);
- m_settingsManager->RegisterSettingOptionsFiller("streamlanguages", CLangInfo::SettingOptionsStreamLanguagesFiller);
+ m_settingsManager->RegisterSettingOptionsFiller("audiostreamlanguages", CLangInfo::SettingOptionsAudioStreamLanguagesFiller);
+ m_settingsManager->RegisterSettingOptionsFiller("subtitlestreamlanguages", CLangInfo::SettingOptionsSubtitleStreamLanguagesFiller);
+ m_settingsManager->RegisterSettingOptionsFiller("subtitledownloadlanguages", CLangInfo::SettingOptionsSubtitleDownloadlanguagesFiller);
m_settingsManager->RegisterSettingOptionsFiller("iso6391languages", CLangInfo::SettingOptionsISO6391LanguagesFiller);
m_settingsManager->RegisterSettingOptionsFiller("skincolors", ADDON::CSkinInfo::SettingOptionsSkinColorsFiller);
m_settingsManager->RegisterSettingOptionsFiller("skinfonts", ADDON::CSkinInfo::SettingOptionsSkinFontsFiller);