// 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;
}
Exemplo n.º 2
0
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();
  }
}
Exemplo n.º 3
0
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;
}
Exemplo n.º 5
0
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;
}