// Connection and Mode setting bool IntelHWComposerDrm::detectDisplayConnection(int disp) { ALOGD_IF(ALLOW_MONITOR_PRINT, "%s: detecting display %d drm mode info...\n", __func__, disp); //get mipi0 info drmModeConnectorPtr connector = NULL; drmModeModeInfoPtr mode = NULL; uint32_t connector_type; connector = getConnector(disp); if (!connector) { ALOGW("%s: fail to get drm connector\n", __func__); return false; } //update connection status setOutputConnection(disp, connector->connection); if (connector->connection != DRM_MODE_CONNECTED) { freeConnector(connector); return false; } //update mode info mode = getSelectMode(NULL, connector); if (mode) setOutputMode(disp, mode, 1); freeConnector(connector); return true; }
FXString FileDlg::getFilename() { if (getSelectMode()==SELECTFILE_ANY) { FXString fn=FXFileDialog::getFilename(); if (ReadShortcut(getShell(), fn)) { FXFileDialog::setFilename(fn); } return FXFileDialog::getFilename(); } else { return filenames ? (*filenames) : FXFileDialog::getFilename(); } }
void FileDlg::create() { FXFileDialog::create(); switch (getSelectMode()) { case SELECTFILE_ANY: { fsel()->txtfld()->setFocus(); break; } case SELECTFILE_MULTIPLE: { fsel()->fbox()->setFocus(); fsel()->fbox()->setCurrentItem(0); break; } } }
drmModeModeInfoPtr IntelHWComposerDrm::selectDisplayDrmMode(int disp, intel_display_mode_t *displayMode) { if (disp != OUTPUT_HDMI) return NULL; drmModeModeInfoPtr mode = getOutputMode(OUTPUT_HDMI); // If mode no change, return current mode if (displayMode && !isModeChanged(mode, displayMode)) return mode; if (mHdmiConnector != NULL) { freeConnector(mHdmiConnector); mHdmiConnector = NULL; } drmModeConnectorPtr connector; connector = getHdmiConnector(); if (!connector) { ALOGW("%s: fail to get drm connector\n", __func__); return NULL; } mode = getSelectMode(displayMode, connector); if (!mode) { ALOGW("%s: fail to get selected mode or any other mode! \n", __func__); return NULL; } // update current mode to be selected setOutputMode(OUTPUT_HDMI, mode, 1); //freeConnector(connector); mode = getOutputMode(OUTPUT_HDMI); ALOGD("%s: mode is %dx%d@%dHz, 0x%x\n", __func__, mode->hdisplay, mode->vdisplay, mode->vrefresh, mode->flags); return mode; }
FXuint FileDlg::execute(FXuint placement) { DeleteFilenames(); FXuint rv=FXFileDialog::execute(placement); if (rv) { filenames = FXFileDialog::getFilenames(); own_filenames=true; if (filenames) { if (getSelectMode()!=SELECTFILE_MULTIPLE) { filenames[0]=FXFileDialog::getFilename(); } FixupShortcuts(getShell(), filenames); if (FXStat::isDirectory(filenames->text())) { setFilename("*"); filenames->append("\\."); setDirectory(filenames->text()); DeleteFilenames(); return execute(placement); } } } return rv; }