bool CAddon::LoadSettings(bool bForce /* = false*/) { if (m_settingsLoaded && !bForce) return true; if (!m_hasSettings) return false; std::string addonFileName = URIUtils::AddFileToFolder(m_props.path, "resources/settings.xml"); if (!m_addonXmlDoc.LoadFile(addonFileName)) { if (CFile::Exists(addonFileName)) CLog::Log(LOGERROR, "Unable to load: %s, Line %d\n%s", addonFileName.c_str(), m_addonXmlDoc.ErrorRow(), m_addonXmlDoc.ErrorDesc()); m_hasSettings = false; return false; } // Make sure that the addon XML has the settings element TiXmlElement *setting = m_addonXmlDoc.RootElement(); if (!setting || strcmpi(setting->Value(), "settings") != 0) { CLog::Log(LOGERROR, "Error loading Settings %s: cannot find root element 'settings'", addonFileName.c_str()); return false; } SettingsFromXML(m_addonXmlDoc, true); LoadUserSettings(); m_settingsLoaded = true; return true; }
bool CAddon::LoadUserSettings() { m_userSettingsLoaded = false; CXBMCTinyXML doc; if (doc.LoadFile(m_userSettingsPath)) m_userSettingsLoaded = SettingsFromXML(doc); return m_userSettingsLoaded; }
bool CAddon::LoadUserSettings() { if (!SettingsInitialized()) return false; m_hasUserSettings = false; // there are no user settings if (!CFile::Exists(m_userSettingsPath)) { // mark the settings as loaded GetSettings()->SetLoaded(); return true; } CXBMCTinyXML doc; if (!doc.LoadFile(m_userSettingsPath)) { CLog::Log(LOGERROR, "CAddon[%s]: failed to load addon settings from %s", ID().c_str(), m_userSettingsPath.c_str()); return false; } return SettingsFromXML(doc); }