bool CEGLNativeTypeAmlogic::CheckCompatibility() { char name[256] = {0}; std::string modalias = "/sys/class/graphics/" + m_framebuffer_name + "/device/modalias"; aml_get_sysfs_str(modalias.c_str(), name, 255); CStdString strName = name; strName.Trim(); if (strName == "platform:mesonfb") return true; return false; }
bool aml_wired_present() { static int has_wired = -1; if (has_wired == -1) { char test[64] = {0}; if (aml_get_sysfs_str("/sys/class/net/eth0/operstate", test, 63) != -1) has_wired = 1; else has_wired = 0; } return has_wired == 1; }
bool CEGLNativeTypeAmlogic::ProbeResolutions(std::vector<RESOLUTION_INFO> &resolutions) { char valstr[256] = {0}; aml_get_sysfs_str("/sys/class/amhdmitx/amhdmitx0/disp_cap", valstr, 255); std::vector<std::string> probe_str = StringUtils::Split(valstr, "\n"); resolutions.clear(); RESOLUTION_INFO res; for (std::vector<std::string>::const_iterator i = probe_str.begin(); i != probe_str.end(); ++i) { if(aml_mode_to_resolution(i->c_str(), &res)) resolutions.push_back(res); } return resolutions.size() > 0; }
bool CEGLNativeTypeAmlogic::ProbeResolutions(std::vector<RESOLUTION_INFO> &resolutions) { char valstr[256] = {0}; aml_get_sysfs_str("/sys/class/amhdmitx/amhdmitx0/disp_cap", valstr, 255); std::vector<CStdString> probe_str; StringUtils::SplitString(valstr, "\n", probe_str); resolutions.clear(); RESOLUTION_INFO res; for (size_t i = 0; i < probe_str.size(); i++) { if(ModeToResolution(probe_str[i].c_str(), &res)) resolutions.push_back(res); } return resolutions.size() > 0; }
bool CEGLNativeTypeAmlogic::GetNativeResolution(RESOLUTION_INFO *res) const { char mode[256] = {0}; aml_get_sysfs_str("/sys/class/display/mode", mode, 255); return ModeToResolution(mode, res); }