bool XBMCHelper::OnSettingChanging(const CSetting *setting) { if (setting == NULL) return false; const std::string &settingId = setting->GetId(); if (settingId == CSettings::SETTING_INPUT_APPLEREMOTEMODE) { int remoteMode = ((CSettingInt*)setting)->GetValue(); // if it's not disabled, start the event server or else apple remote won't work if (remoteMode != APPLE_REMOTE_DISABLED) { // if starting the event server fails, we have to revert the change if (!CSettings::Get().SetBool("services.esenabled", true)) return false; } // if XBMC helper is running, prompt user before effecting change if (IsRunning() && GetMode() != remoteMode) { bool cancelled; if (!CGUIDialogYesNo::ShowAndGetInput(CVariant{13144}, CVariant{13145}, cancelled, CVariant{""}, CVariant{""}, 10000)) return false; // reload configuration else Configure(); } // set new configuration. else Configure(); if (ErrorStarting() == true) { // inform user about error CGUIDialogOK::ShowAndGetInput(CVariant{13620}, CVariant{13621}); return false; } } if (settingId == CSettings::SETTING_INPUT_APPLEREMOTEALWAYSON) { HandleLaunchAgent(); } return true; }
bool XBMCHelper::OnSettingChanging(const CSetting *setting) { if (setting == NULL) return false; const std::string &settingId = setting->GetId(); if (settingId == "input.appleremotemode") { int remoteMode = ((CSettingInt*)setting)->GetValue(); // if it's not disabled, start the event server or else apple remote won't work if (remoteMode != APPLE_REMOTE_DISABLED) { // if starting the event server fails, we have to revert the change if (!CSettings::Get().SetBool("services.esenabled", true)) return false; } // if XBMC helper is running, prompt user before effecting change if (IsRunning() && GetMode() != remoteMode) { bool cancelled; if (!CGUIDialogYesNo::ShowAndGetInput(13144, 13145, 13146, 13147, -1, -1, cancelled, 10000)) return false; // reload configuration else Configure(); } // set new configuration. else Configure(); if (ErrorStarting() == true) { // inform user about error CGUIDialogOK::ShowAndGetInput(13620, 13621, 20022, 20022); return false; } } return true; }