void CXBMCApp::SetRefreshRateCallback(CVariant* rateVariant) { float rate = rateVariant->asFloat(); delete rateVariant; CJNIWindow window = getWindow(); if (window) { CJNIWindowManagerLayoutParams params = window.getAttributes(); if (fabs(params.getpreferredRefreshRate() - rate) > 0.001) { if (g_application.GetAppPlayer().IsPlaying()) { dynamic_cast<CWinSystemAndroid*>(CServiceBroker::GetWinSystem())->SetHDMIState(false, 1000); m_hdmiReportedState = false; } params.setpreferredRefreshRate(rate); if (params.getpreferredRefreshRate() > 0.0) { window.setAttributes(params); return; } } } m_displayChangeEvent.Set(); }
void CXBMCApp::SetRefreshRateCallback(CVariant* rateVariant) { float rate = rateVariant->asFloat(); delete rateVariant; CJNIWindow window = getWindow(); if (window) { CJNIWindowManagerLayoutParams params = window.getAttributes(); if (params.getpreferredRefreshRate() != rate) { params.setpreferredRefreshRate(rate); if (params.getpreferredRefreshRate() > 0.0) window.setAttributes(params); } } }
void CXBMCApp::SetRefreshRate(float rate) { if (rate < 1.0) return; CJNIWindow window = getWindow(); if (window) { CJNIWindowManagerLayoutParams params = window.getAttributes(); if (fabs(params.getpreferredRefreshRate() - rate) <= 0.001) return; } m_refreshRate = rate; m_displayChangeEvent.Reset(); CVariant *variant = new CVariant(rate); runNativeOnUiThread(SetRefreshRateCallback, variant); if (g_application.IsInitialized()) m_displayChangeEvent.WaitMSec(5000); }