/* * Function : _libaroma_ctl_list_destroy * Return Value: void * Descriptions: destroy scroll list client */ void _libaroma_ctl_list_destroy( LIBAROMA_CONTROLP ctl, LIBAROMA_CTL_SCROLL_CLIENTP client){ if (client->handler!=&_libaroma_ctl_list_handler){ return; } LIBAROMA_CTL_SCROLLP mi = (LIBAROMA_CTL_SCROLLP) client->internal; /* cleanup items */ LIBAROMA_CTL_LIST_ITEMP f = mi->first; while(f){ LIBAROMA_CTL_LIST_ITEMP p = f; f = p->next; /* destroy */ if (p->handler->destroy!=NULL){ p->handler->destroy(ctl,p); } _libaroma_ctl_list_free_state(p); free(p); } if (mi->threadn>0){ free(mi->threads); } /* free internal data */ libaroma_mutex_free(mi->imutex); libaroma_mutex_free(mi->mutex); free(mi); client->internal=NULL; client->handler=NULL; } /* End of _libaroma_ctl_list_destroy */
/* * Function : LINUXFBDR_release * Return Value: void * Descriptions: release framebuffer driver */ void LINUXFBDR_release(LIBAROMA_FBP me) { if (me==NULL) { return; } LINUXFBDR_INTERNALP mi = (LINUXFBDR_INTERNALP) me->internal; if (mi==NULL){ return; } if (mi->qcom!=NULL){ /* release qcom overlay driver */ QCOMFB_release(me); } /* unmap */ if (mi->buffer!=NULL){ ALOGV("LINUXFBDR munmap buffer"); munmap(mi->buffer, mi->fix.smem_len); } /* close fb */ ALOGV("LINUXFBDR close fb-fd"); close(mi->fb); /* destroy mutex & cond */ libaroma_mutex_free(mi->mutex); /* free internal data */ ALOGV("LINUXFBDR free internal data"); free(me->internal); } /* End of LINUXFBDR_release */
/* * Function : SDLFBDR_release * Return Value: void * Descriptions: release framebuffer driver */ void SDLFBDR_release(LIBAROMA_FBP me) { if (me==NULL) { return; } SDLFBDR_INTERNALP mi = (SDLFBDR_INTERNALP) me->internal; if (mi==NULL){ return; } SDL_Quit(); /* destroy mutex & cond */ libaroma_mutex_free(mi->mutex); /* free internal data */ ALOGV("SDLFBDR free internal data"); free(me->internal); } /* End of SDLFBDR_release */
/* * Function : Release Framebuffer Instance (Same For All Colorspace) * */ void QNXGF_release(LIBAROMA_FBP me) { /* Is Framebuffer Initialized ? */ if (me == NULL) { return; } /* Get Internal Data */ QNXGF_INTERNALP mi = (QNXGF_INTERNALP) me->internal; /* Release GF */ ALOGV("QNXGF Release Graphic Frameworks"); gf_context_free(mi->context); gf_surface_free(mi->surface); gf_layer_detach(mi->layer); gf_display_detach(mi->display); gf_dev_detach(mi->gdev); /* Free Internal Data */ ALOGV("QNXGF free internal data"); free(me->internal); libaroma_mutex_free(___qnxfbmutex); }