public SamsungGameSDKAdaptivePerformanceSubsystem() { m_Api = new NativeApi(OnSustainedPerformanceWarning, OnSustainedPerformanceTimeout); m_Scheduler = new JNITaskScheduler(); m_SkinTemp = new AsyncValue <int>(m_Scheduler, -1, 2.7f, () => m_Api.GetSkinTempLevel()); m_PSTLevel = new AsyncValue <int>(m_Scheduler, -1, 3.3f, () => m_Api.GetPSTLevel()); m_GPUTime = new AsyncValue <double>(m_Scheduler, -1.0, 0.0f, () => m_Api.GetGpuFrameTime()); maxGpuPerformanceLevel = 3; maxCpuPerformanceLevel = 3; m_MainTemperature = m_SkinTemp; }
override public void Start() { if (m_Api.Initialize()) { if (Version.TryParse(m_Api.GetVersion(), out m_Version)) { if (m_Version >= new Version(1, 6)) { m_MaxTempLevel = 7; m_MinTempLevel = 0; initialized = true; m_MainTemperature = m_SkinTemp; } else if (m_Version >= new Version(1, 5)) { m_MaxTempLevel = 6; m_MinTempLevel = 0; initialized = true; m_MainTemperature = m_PSTLevel; m_SkinTemp = null; } else { m_Api.Terminate(); initialized = false; } } } if (initialized) { ImmediateUpdateTemperature(); var args = new TemperatureChangeEventArgs(); args.temperatureLevel = GetTemperatureLevel(); args.temperatureTrend = 0.0f; TemperatureChange?.Invoke(this, args); } }