Example #1
0
/*
 * Function    : libaroma_stream_zip
 * Return Value: LIBAROMA_STREAMP
 * Descriptions: new stream from zip file
 */
LIBAROMA_STREAMP libaroma_stream_zip(
    char * zip_path, char * zpath) {
  if ((!zip_path) || (!zpath)) {
    ALOGW("libaroma_stream_zip zip_path/zpath is invalid");
    return 0;
  }
  /* Init Zip */
  LIBAROMA_ZIP zip = libaroma_zip(zip_path);
  if (!zip) {
    return 0;
  }
  /* Allocating Adapter */
  bytep mem;
  int mem_sz = libaroma_zip_read(zip, &mem, zpath, 1);
  /* Release ZIP */
  libaroma_zip_release(zip);
  /* not valid */
  if (mem_sz == 0) {
    return 0;
  }
  LIBAROMA_STREAMP ret  = (LIBAROMA_STREAMP) malloc(sizeof(LIBAROMA_STREAM));
  ret->data     = mem;
  ret->size     = mem_sz;
  ret->ismmap   = 0;
  snprintf(ret->uri, LIBAROMA_STREAM_URI_LENGTH,
      "zip://%s#%s", zip_path, zpath);
  return ret;
} /* End of libaroma_stream_zip */
Example #2
0
/* init recovery */
byte recovery_init(){
  /* 
    snprintf(libaroma_config()->fb_shm_name,64,"recovery-mainfb");
    libaroma_config()->runtime_monitor = LIBAROMA_START_UNSAFE;
  */
  
  /* disable shared fb */
  libaroma_config()->runtime_monitor = LIBAROMA_START_UNSAFE;
  libaroma_config()->fb_shm_name[0]=0;
  
  /* start libaroma */
  if (!libaroma_start()){
    RLOG("recovery_init: libaroma_start failed");
    return 0;
  }
  
  /*
  LIBAROMA_CANVASP svg1=libaroma_image(
    libaroma_stream(
      "file:///sdcard/23.svg"
    ),
    1
  );
  if (svg1){
    libaroma_draw(libaroma_fb()->canvas,svg1,0,0,1);
    libaroma_sync();
    sleep(4);
  }
  else{
    printf("\n\nSVG RENDER ERROR\n\n\n");
  }
  */
  
  /* set workspace size */
  libaroma_wm_set_workspace(
    0,
    libaroma_dp(24),
    libaroma_fb()->w,
    libaroma_fb()->h-libaroma_dp(24)
  );
  
  /* clean display */
  libaroma_canvas_blank(libaroma_fb()->canvas);
  
  /* create statusbar canvas area */
  _recovery.status_canvas=libaroma_canvas_area(
    libaroma_fb()->canvas,
    0, 0, libaroma_fb()->w, libaroma_dp(24)
  );
  if (!_recovery.status_canvas){
    RLOG("recovery_init: _recovery.status_canvas failed");
    libaroma_end();
    return 0;
  }
  
  /* set wm ui thread */
  libaroma_wm_set_ui_thread(recovery_statusbar_ui_thread);
  recovery_statusbar_setcolor(0);
  
  /* load zip resource */
  _recovery.zip = libaroma_zip("/sdcard/recovery.zip");
  if (!_recovery.zip){
    RLOG("recovery_init: libaroma_zip resource failed");
    libaroma_canvas_free(_recovery.status_canvas);
    libaroma_end();
    return 0;
  }
  
  /* init stream callback */
  libaroma_stream_set_uri_callback(recovery_stream_uri_cb);
  
  /* load font id=0 */
  libaroma_font(0,
    libaroma_stream(
      "res:///fonts/Roboto-Regular.ttf"
    )
  );
  
  if (!recovery_init_ui()){
    recovery_release();
    return 0;
  }
  
  /* cleanup display */
  libaroma_sync();
  
  return 1;
}