void recovery_statusbar_setcolor(word color){ _recovery.status_reqcolor = color; if (_recovery.status_reqcolor!=_recovery.status_bgcolor){ _recovery.status_prvcolor = _recovery.status_bgcolor; _recovery.status_updatestart = libaroma_tick(); } }
/* * Function : QNXGF_end_post * Return Value: byte * Descriptions: end post */ byte QNXGF_end_post(LIBAROMA_FBP me){ if (me == NULL) { return 0; } QNXGF_INTERNALP mi = (QNXGF_INTERNALP) me->internal; long nowtick = libaroma_tick(); long diftick = nowtick - mi->lastpost; if (diftick<16){ usleep((16-diftick)*1000); } mi->lastpost = nowtick; return 1; }
static void * qnxhid_monitoring(void * cookie){ qnx_hiddi_connect(); int currnum=qnx_hiddi_getdevnum(); ALOGI("INPUT DEVICE : %i Devices Detected",currnum); while(qnxhid_active){ int nownum=qnx_hiddi_getdevnum(); if (currnum!=nownum){ ALOGI("INPUT DEVICE DETECTED CHANGED : %i to %i",currnum,nownum); // printf("DEV NUM: %i - %i\n",currnum,nownum); currnum=nownum; qnx_hiddi_disconnect(); libaroma_sleep(500); qnx_hiddi_init(); qnx_hiddi_connect(); qnxhid_touchlastev=libaroma_tick(); } else if (qnxhid_touchlastev<libaroma_tick()-8000){ pthread_mutex_lock(&qnxhid_mutex); qnxhid_touchlastev=libaroma_tick(); qnxhid_touchlastid=QNXHID_EV_TOUCH_UP; if (qnxhid_touchlastid>QNXHID_EV_TOUCH_UP){ QNXHID_EVENT ev; ev.id=QNXHID_EV_TOUCH_UP; ev.x=qnxhid_touchlast_x; ev.y=qnxhid_touchlast_y; qnxhid_push_event(&ev); } pthread_mutex_unlock(&qnxhid_mutex); qnx_hiddi_disconnect(); libaroma_sleep(500); qnx_hiddi_init(); qnx_hiddi_connect(); } libaroma_sleep(1500); } return NULL; }
void qnxhid_send_event(byte id, int x, int y){ pthread_mutex_lock(&qnxhid_mutex); //printf("HID EVENT: %i - %ix%i\n",id,x,y); byte send=1; if ((id==QNXHID_EV_TOUCH_UP)&&(qnxhid_touchlastid==QNXHID_EV_TOUCH_UP)){ send=0; } qnxhid_touchlastev=libaroma_tick(); qnxhid_touchlastid=id; qnxhid_touchlast_x=x; qnxhid_touchlast_y=y; if (send){ QNXHID_EVENT ev; ev.id=id; ev.x=x; ev.y=y; qnxhid_push_event(&ev); } pthread_mutex_unlock(&qnxhid_mutex); }
/* * Function : libaroma_window_anishow * Return Value: byte * Descriptions: show window - animated */ byte libaroma_window_anishow( LIBAROMA_WINDOWP win, byte animation, int duration){ __CHECK_WM(0); if (!win){ return 0; } if (win->parent!=NULL){ ALOGW("Child window cannot shown directly..."); return 0; } /* set initial focus libaroma_window_setfocus(win, NULL); */ if ((!animation)||(duration<50)){ return libaroma_wm_set_active_window(win); } /* lock and retval */ byte retval = 0; win->lock_sync = 1; if (libaroma_wm_set_active_window(win)){ win->active=2; /* draw window into temp canvas */ LIBAROMA_CANVASP wmc = win->dc; LIBAROMA_CANVASP tdc = libaroma_canvas(wmc->w,wmc->h); libaroma_draw(tdc,wmc,0,0,0); win->dc=tdc; /* switch dc */ LIBAROMA_CANVASP back = libaroma_canvas(wmc->w, wmc->h); libaroma_draw(back,wmc,0,0,0); /* invalidate now */ libaroma_window_invalidate(win, 10); long start = libaroma_tick(); int delta = 0; while ((delta=libaroma_tick()-start)<duration){ float state = ((float) delta)/((float) duration); if (state>=1.0){ break; } switch (animation){ case LIBAROMA_WINDOW_SHOW_ANIMATION_SLIDE_LEFT: case LIBAROMA_WINDOW_SHOW_ANIMATION_PAGE_LEFT: { float swift_out_state = libaroma_cubic_bezier_swiftout(state); int x = win->w - (swift_out_state * win->w); int w = win->w - x; if (w>0){ if (animation==LIBAROMA_WINDOW_SHOW_ANIMATION_SLIDE_LEFT){ if (w<win->w){ libaroma_draw_ex( wmc, back, 0, 0, win->w - (win->w - w), 0, win->w - w, win->h, 0, 0xff ); } } libaroma_draw_ex( wmc, win->dc, x, 0, 0, 0, w, win->h, 0, 0xff ); if (animation==LIBAROMA_WINDOW_SHOW_ANIMATION_SLIDE_LEFT){ libaroma_wm_sync(win->x,win->y,win->w,win->h); } else{ libaroma_wm_sync(win->x+x,win->y,w, win->h); } } } break; case LIBAROMA_WINDOW_SHOW_ANIMATION_SLIDE_RIGHT: case LIBAROMA_WINDOW_SHOW_ANIMATION_PAGE_RIGHT: { float swift_out_state = libaroma_cubic_bezier_swiftout(state); int x = 0 - (win->w - (swift_out_state * win->w)); int w = win->w + x; if (w>0){ if (animation==LIBAROMA_WINDOW_SHOW_ANIMATION_SLIDE_RIGHT){ if (w<win->w){ libaroma_draw_ex( wmc, back, w, 0, 0, 0, win->w - w, win->h, 0, 0xff ); } } libaroma_draw_ex( wmc, win->dc, 0, 0, win->w-w, 0, w, win->h, 0, 0xff ); if (animation==LIBAROMA_WINDOW_SHOW_ANIMATION_SLIDE_RIGHT){ libaroma_wm_sync(win->x,win->y,win->w,win->h); } else{ libaroma_wm_sync(win->x,win->y,w, win->h); } } } break; default: /* invalid animation */ start=0; break; } } retval = 1; libaroma_draw(wmc,win->dc,0,0,0); win->dc=wmc; /* switch dc back */ /* cleanup */ libaroma_canvas_free(back); libaroma_canvas_free(tdc); } win->lock_sync = 0; /* sync view now */ if (retval){ win->active=1; libaroma_window_sync(win, 0, 0, win->w, win->h); } /* send activate */ LIBAROMA_MSG _msg; libaroma_window_process_event(win,libaroma_wm_compose( &_msg, LIBAROMA_MSG_WIN_ACTIVE, NULL, 10, 0) ); return retval; } /* End of libaroma_window_show */