wxString wxMacHFSUniStrToString( ConstHFSUniStr255Param uniname ) { wxCFStringRef cfname( CFStringCreateWithCharacters( kCFAllocatorDefault, uniname->unicode, uniname->length ) ); return wxCFStringRef::AsStringWithNormalizationFormC(cfname); }
void fimg2d_debug_command(struct fimg2d_bltcmd *cmd) { int i; struct fimg2d_param *p = &cmd->blt.param; struct fimg2d_image *img; struct fimg2d_rect *r; struct fimg2d_dma *c; if (WARN_ON(!cmd->ctx)) return; pr_info("\n[%s] ctx: %p seq_no(%u)\n", __func__, cmd->ctx, cmd->blt.seq_no); pr_info(" op: %s(%d)\n", opname(cmd->blt.op), cmd->blt.op); pr_info(" solid color: 0x%lx\n", p->solid_color); pr_info(" g_alpha: 0x%x\n", p->g_alpha); pr_info(" premultiplied: %d\n", p->premult); if (p->dither) pr_info(" dither: %d\n", p->dither); if (p->rotate) pr_info(" rotate: %d\n", p->rotate); if (p->repeat.mode) { pr_info(" repeat: %d, pad color: 0x%lx\n", p->repeat.mode, p->repeat.pad_color); } if (p->bluscr.mode) { pr_info(" bluescreen mode: %d, bs_color: 0x%lx " \ "bg_color: 0x%lx\n", p->bluscr.mode, p->bluscr.bs_color, p->bluscr.bg_color); } if (p->scaling.mode) { pr_info(" scaling %d, s:%d,%d d:%d,%d\n", p->scaling.mode, p->scaling.src_w, p->scaling.src_h, p->scaling.dst_w, p->scaling.dst_h); } if (p->clipping.enable) { pr_info(" clipping LT(%d,%d) RB(%d,%d) WH(%d,%d)\n", p->clipping.x1, p->clipping.y1, p->clipping.x2, p->clipping.y2, rect_w(&p->clipping), rect_h(&p->clipping)); } for (i = 0; i < MAX_IMAGES; i++) { img = &cmd->image[i]; r = &img->rect; if (!img->addr.type) continue; pr_info(" %s type: %d addr: 0x%lx\n", imagename(i), img->addr.type, img->addr.start); pr_info(" %s width: %d height: %d " \ "stride: %d order: %d format: %s(%d)\n", imagename(i), img->width, img->height, img->stride, img->order, cfname(img->fmt), img->fmt); pr_info(" %s rect LT(%d,%d) RB(%d,%d) WH(%d,%d)\n", imagename(i), r->x1, r->y1, r->x2, r->y2, rect_w(r), rect_h(r)); c = &cmd->dma[i].base; if (c->size) { pr_info(" %s dma base addr: 0x%lx " \ "size: 0x%x cached: 0x%x\n", imagename(i), c->addr, c->size, c->cached); } if (img->plane2.type) { pr_info(" %s plane2 type: %d addr: 0x%lx\n", imagename(i), img->plane2.type, img->plane2.start); } c = &cmd->dma[i].plane2; if (c->size) { pr_info(" %s dma plane2 addr: 0x%lx " \ "size: 0x%x cached: 0x%x\n", imagename(i), c->addr, c->size, c->cached); } } if (cmd->dma_all) pr_info(" dma size all: 0x%x bytes\n", cmd->dma_all); pr_info(" L1: 0x%x L2: 0x%x bytes\n", L1_CACHE_SIZE, L2_CACHE_SIZE); }
int main(int argc, char ** argv) { if(argc != 6 ) { cout <<"Usage: lobmaskCF_Levine <BasalGangliaThalamus_File(BGT)> <Singulate_Mask_File> <OutputFile> -g GridFile"<<endl; cout<<"To generate mask for Collenergic Fibres. By: Dr. Azhar Quddus"<<endl; exit(1); } info hdr_info; string fname(argv[1]); string cfname(argv[2]); //Read Header & Make Grid info read_analyze_header(fname + ".hdr", hdr_info); if(hdr_info.datatype == 2) make_grid<uchar>(argc, argv); else { if(hdr_info.datatype == 4) make_grid<short>(argc, argv); else { cout << "Input file has wrong datatype:" <<" only uchar and short are allowed. Exiting... " << endl; exit(1); } } int xgrid=grid.sagital[2]-grid.sagital[1]; //Read Image files uchar *img=read_analyze<uchar>(fname, hdr_info); uchar *cing=read_analyze<uchar>(cfname, hdr_info); //Make Blank Volume uchar *mask = new uchar[volume]; if(!mask) { cout << "Memory allocation failed. Exiting..." << endl; exit(1); } fill(mask, mask + volume, (uchar)BACKGROUND); //Copy Singulate into output mask memcpy(mask,cing,volume); //Make Axial slice int axial_area=sz[0] * sz[1]; uchar *axial_in=new uchar[axial_area]; uchar *axial_out=new uchar[axial_area]; if(!axial_in || !axial_out) { cout << "Failed to allocate memory for trace masks. Exiting..." << endl; exit(1); } fill(axial_in, axial_in + axial_area, BACKGROUND); //Find Strip end (from top) int oldWidth=0; int Width=0; int slice_break=0; int breakSlicesfromTop=0; for(int i=sz[2]-1;i>=0;i--) { get_Axial_Slice(axial_in,img,i); if(!Blank_Slice(axial_in,axial_area)) { Width=MaxWidth(axial_in,sz[1], sz[0]); breakSlicesfromTop++; } if(oldWidth==0) oldWidth=Width; if(oldWidth!=0 && Width!=0 && oldWidth!=Width) { slice_break=i+1; break; } } cout<<"Slice Break 1:"<<slice_break<<endl; int stSlices=3 * breakSlicesfromTop; //Find full curve end (from top) int slice_break2=0; for(int i=slice_break;i>=0;i--) { get_Axial_Slice(axial_in,img,i); bool line=true; int r=grid.coronal[9]; if(!FindLine(axial_in,sz[1],sz[0],r)) { slice_break2=i+1; break; } } cout<<"Slice Break 2:"<<slice_break2<<endl; cout<<"Valid Slices:"; //Processing Half-Curved regions... for(int i=0;i<slice_break2;i++) { int LastRow=0; get_Axial_Slice(axial_in,img,i); get_Axial_Slice(axial_out,mask,i); if(!Blank_Slice(axial_in,axial_area)) {cout<<i<<" " ; for(int r=0;r<sz[1];r++) for(int c=0;c<sz[0];c++) { int pos=r*sz[0]+c; if(axial_in[pos]==0 && axial_in[pos+1]>0) { int C=c+(int)((double)xgrid/4.0); for(int lc=C;lc > (C-xgrid/2);lc--) axial_out[r*sz[0]+lc]=12; } if(axial_in[pos]==0 && axial_in[pos-1]>0) { int C=c-(int)((double)xgrid/4.0); for(int lc=C;lc < (C+xgrid/2);lc++) axial_out[r*sz[0]+lc]=14; } } } set_Axial_Slice(axial_out, mask,i); } //Processing Full-Curved regions... for(int i=slice_break2;i<slice_break;i++) { get_Axial_Slice(axial_in,img,i); get_Axial_Slice(axial_out,mask,i); if(!Blank_Slice(axial_in,axial_area)) {cout<<i<<" " ; for(int r=0;r<sz[1];r++) for(int c=0;c<sz[0];c++) { int pos=r*sz[0]+c; if(axial_in[pos]==0 && axial_in[pos+1]>0) { int C=c+3; for(int lc=C;lc > (C-xgrid/2);lc--) axial_out[r*sz[0]+lc]=12; } if(axial_in[pos]==0 && axial_in[pos-1]>0) { int C=c-3; for(int lc=C;lc < (C+xgrid/2);lc++) axial_out[r*sz[0]+lc]=14; } } } set_Axial_Slice(axial_out, mask,i); } //Generating straight regions... int LTR=grid.coronal[6]; int LBR=grid.coronal[13]; int LRC=(int)((double)grid.sagital[3]-(double)xgrid/2.0); int LLC=LRC-(int)((double)xgrid/2.0); LRC=LRC+3; LLC=LLC+3; int RTR=LTR; int RBR=LBR; int RLC=(int)((double)grid.sagital[5]+(double)xgrid/2.0); int RRC=RLC+(int)((double)xgrid/2.0); RLC=RLC-3; RRC=RRC-3; for(int i=slice_break;i < (slice_break + stSlices); i++) { get_Axial_Slice(axial_in,img,i); cout<<i<<" "; get_Axial_Slice(axial_out,mask,i); for(int r=LTR;r<=LBR;r++) for(int c=LLC;c<=LRC;c++) axial_out[r*sz[1]+c]=12; for(int r=RTR;r<=RBR;r++) for(int c=RLC;c<=RRC;c++) axial_out[r*sz[1]+c]=14; set_Axial_Slice(axial_out, mask,i); } // output hdr_info.max = 15; hdr_info.min = 0; hdr_info.datatype = 2; cout<<endl; cout << "Writing: "<< argv[3]<<"..."; write_analyze(string(argv[3]), mask, hdr_info); cout <<"Done!"<<endl; delete [] mask; delete [] img; delete [] cing; delete [] axial_in; delete [] axial_out; return 0; } // end of main
void fimg2d_debug_command(struct fimg2d_bltcmd *cmd) { int i; struct fimg2d_blit *blt; struct fimg2d_image *img; struct fimg2d_param *p; struct fimg2d_rect *r; struct fimg2d_dma *c; if (WARN_ON(!cmd->ctx)) return; blt = &cmd->blt; /* Common information */ pr_info("\n[%s] ctx: %p seq_no(%u)\n", __func__, cmd->ctx, cmd->blt.seq_no); pr_info(" use fence: %d\n", blt->use_fence); pr_info(" Update layer : 0x%lx\n", cmd->src_flag); if (blt->dither) pr_info(" dither: %d\n", blt->dither); /* End of common information */ /* Source information */ for (i = 0; i < MAX_SRC; i++) { img = &cmd->image_src[i]; if (!img->addr.type) continue; p = &img->param; r = &img->rect; c = &cmd->dma_src[i].base; pr_info(" SRC[%d] op: %s(%d)\n", i, opname(img->op), img->op); pr_info(" SRC[%d] type: %d addr: 0x%lx\n", i, img->addr.type, img->addr.start); pr_info(" SRC[%d] width: %d height: %d ", i, img->width, img->height); pr_info(" SRC[%d] stride: %d order: %d format: %s(%d)\n", i, img->stride, img->order, cfname(img->fmt), img->fmt); pr_info(" SRC[%d] rect LT(%d,%d) RB(%d,%d) WH(%d,%d)\n", i, r->x1, r->y1, r->x2, r->y2, rect_w(r), rect_h(r)); pr_info(" solid color: 0x%lx\n", p->solid_color); pr_info(" g_alpha: 0x%x\n", p->g_alpha); pr_info(" premultiplied: %d\n", p->premult); if (p->rotate) pr_info(" rotate: %d\n", p->rotate); if (p->repeat.mode) { pr_info(" repeat: %d, pad color: 0x%lx\n", p->repeat.mode, p->repeat.pad_color); } if (p->scaling.mode) { pr_info(" scaling %d, s:%d,%d d:%d,%d\n", p->scaling.mode, p->scaling.src_w, p->scaling.src_h, p->scaling.dst_w, p->scaling.dst_h); } if (p->clipping.enable) { pr_info(" clipping LT(%d,%d) RB(%d,%d) WH(%d,%d)\n", p->clipping.x1, p->clipping.y1, p->clipping.x2, p->clipping.y2, rect_w(&p->clipping), rect_h(&p->clipping)); } if (c->size) { pr_info(" SRC[%d] dma base addr: %#lx size: %zd cached: %zd\n", i, c->addr, c->size, c->cached); pr_info(" SRC[%d] dma iova: %#lx, offset: %zd\n", i, (unsigned long)c->iova, c->offset); } } /* End of source information */ /* Destination information */ img = &cmd->image_dst; p = &img->param; r = &img->rect; c = &cmd->dma_dst.base; pr_info(" DST type: %d addr: 0x%lx\n", img->addr.type, img->addr.start); pr_info(" DST width: %d height: %d stride: %d order: %d format: %s(%d)\n", img->width, img->height, img->stride, img->order, cfname(img->fmt), img->fmt); pr_info(" DST rect LT(%d,%d) RB(%d,%d) WH(%d,%d)\n", r->x1, r->y1, r->x2, r->y2, rect_w(r), rect_h(r)); pr_info(" solid color: 0x%lx\n", p->solid_color); pr_info(" g_alpha: 0x%x\n", p->g_alpha); pr_info(" premultiplied: %d\n", p->premult); if (c->size) { pr_info(" DST dma base addr: %#lx size: %zd cached: %zd\n", c->addr, c->size, c->cached); pr_info(" DST dma iova: %#lx offset: %zd\n", (unsigned long)c->iova, c->offset); } /* End of destination */ if (cmd->dma_all) pr_info(" dma size all: %zd bytes\n", cmd->dma_all); }