コード例 #1
0
/*
 * Function    : LINUXFBDP_set_dpi
 * Return Value: void
 * Descriptions: set dpi
 */
void LINUXFBDP_set_dpi(LIBAROMA_FBP me) {
  if (me==NULL) {
    return;
  }
  LINUXFBDR_INTERNALP mi = (LINUXFBDR_INTERNALP) me->internal;
  me->dpi = 0;
  int dpi_fallback = floor(MIN(mi->var.xres,mi->var.yres)/160) * 80;
  if ((mi->var.width<= 0)||(mi->var.height <= 0)) {
    /* phone dpi */
    me->dpi = dpi_fallback;
  }
  else{
    /* calculate dpi */
    me->dpi = round(mi->var.xres / (mi->var.width * 0.039370) / 80) * 80;
  }
  if ((me->dpi<160)||(me->dpi>960)){
    me->dpi = dpi_fallback;
  }
#ifdef __ANDROID__
  /* android dpi from default.prop/build.prop */
  char * sf_lcd=libaroma_getprop("ro.sf.lcd_density",
    libaroma_stream_file("/default.prop"), 1);
  if (sf_lcd==NULL){
    /* try /system/build.prop */
    sf_lcd=libaroma_getprop("ro.sf.lcd_density",
      libaroma_stream_file("/system/build.prop"), 1);
  }
  if (sf_lcd!=NULL){
    int new_dpi = atoi(sf_lcd);
    free(sf_lcd);
    if ((new_dpi>=160)&&(new_dpi<=980)){
      ALOGI("android getprop ro.sf.lcd_density: %i - OK",new_dpi);
      me->dpi=new_dpi;
    }
    else{
      ALOGI("android getprop ro.sf.lcd_density: %i - INVALID",new_dpi);
    }
  }
  else{
    ALOGI("android getprop ro.sf.lcd_density not found");
  }
#endif
} /* End of LINUXFBDP_set_dpi */
コード例 #2
0
ファイル: stream.c プロジェクト: sub77-bkp/libaroma
/*
 * Function    : libaroma_stream
 * Return Value: LIBAROMA_STREAMP
 * Descriptions: new stream from uri
 */
LIBAROMA_STREAMP libaroma_stream(
    char * uri) {
  int n = strlen(uri);
  char kwd[11];
  int i;
  for (i = 0; i < n && i < 10; i++) {
    kwd[i] = uri[i];
    kwd[i + 1] = 0;
    if ((i > 1) && (uri[i] == '/') && (uri[i - 1] == '/')) {
      break;
    }
  }
  if (strcmp(kwd, "file://") == 0) {
    return libaroma_stream_file(uri + 7);
  }
  else if (strcmp(kwd, "shmem://") == 0) {
    return libaroma_stream_shmem(uri + 8);
  }
  else if (strcmp(kwd, "zip://") == 0) {
    char zip_path[256] = {0};
    char zpath[256] = {0};
    int  cpos = 0;
    byte is_zpath = 0;
    for (i = 6; i < n && i < 255; i++) {
      if (is_zpath) {
        zpath[cpos++] = uri[i];
        zpath[cpos] = 0;
      }
      else {
        if (uri[i] == '#') {
          cpos     = 0;
          is_zpath = 1;
        }
        else {
          zip_path[cpos++] = uri[i];
          zip_path[cpos] = 0;
        }
      }
    }
    return libaroma_stream_zip(zip_path, zpath);
  }
  else if (_libaroma_stream_uri_cb != NULL) {
    return _libaroma_stream_uri_cb(uri);
  }
  return NULL;
} /* End of libaroma_stream */