BOOL CHistogram::Init32f(int numChannels, Ipp32f* ppLevels[4], Ipp32f* ppHist[4], int pnLevels[4]) { m_numChannels = numChannels; if (!SetMinMaxLevel(ppLevels, pnLevels)) return FALSE; AllocateVectors(ppLevels, pnLevels); ExpandVectors(ppLevels, ppHist, pnLevels); UpdateHist(); ScaleLevels(); ScaleHist(); m_bInit = TRUE; return TRUE; }
void MainWindow::UpdateUI() { //QMessageBox::information(this,tr("ui"),tr("ui")); if(!filearu) { //actions //file ui->save->setEnabled(false); ui->save_as->setEnabled(false); ui->close->setEnabled(false); //edit ui->undo->setEnabled(false); ui->redo->setEnabled(false); ui->origin->setEnabled(false); //filter ui->ancient->setEnabled(false); ui->crystal->setEnabled(false); ui->pencil->setEnabled(false); ui->gauss->setEnabled(false); ui->gray->setEnabled(false); ui->actionComics->setEnabled(false); ui->edge->setEnabled(false); //meirong ui->facelift->setEnabled(false); ui->whiten->setEnabled(false); //image ui->fanzhuan->setEnabled(false); ui->xuanzhuan->setEnabled(false); ui->counterclockwise->setEnabled(false); ui->horizontalflip->setEnabled(false); //buttons //hist ui->showred->setEnabled(false); ui->showblue->setEnabled(false); ui->showgreen->setEnabled(false); //editimg ui->pushButton->setEnabled(false); ui->pushButton_2->setEnabled(false); ui->hsBright->setEnabled(false); ui->hsContrast->setEnabled(false); ui->hsGamma->setEnabled(false); ui->hsHue->setEnabled(false); ui->hsSat->setEnabled(false); ui->dsbBright->setEnabled(false); ui->dsbContrast->setEnabled(false); ui->dsbGamma->setEnabled(false); ui->dsbHue->setEnabled(false); ui->dsbSat->setEnabled(false); this->setWindowTitle("丑图秀秀 - Xiuxiu"); } else { this->setWindowTitle("丑图秀秀 - Xiuxiu( "+presentfile+" )"); //actions //file ui->save->setEnabled(true); ui->save_as->setEnabled(true); ui->close->setEnabled(true); //edit ui->undo->setEnabled(true); ui->redo->setEnabled(true); ui->origin->setEnabled(true); //filter ui->ancient->setEnabled(true); ui->crystal->setEnabled(true); ui->pencil->setEnabled(true); ui->gauss->setEnabled(true); ui->gray->setEnabled(true); ui->actionComics->setEnabled(true); ui->edge->setEnabled(true); //meirong ui->facelift->setEnabled(true); ui->whiten->setEnabled(true); //image ui->fanzhuan->setEnabled(true); ui->xuanzhuan->setEnabled(true); ui->counterclockwise->setEnabled(true); ui->horizontalflip->setEnabled(true); //buttons //hist ui->showred->setEnabled(true); ui->showblue->setEnabled(true); ui->showgreen->setEnabled(true); //editimg ui->pushButton->setEnabled(true); ui->pushButton_2->setEnabled(true); ui->hsBright->setEnabled(true); ui->hsContrast->setEnabled(true); ui->hsGamma->setEnabled(true); ui->hsHue->setEnabled(true); ui->hsSat->setEnabled(true); ui->dsbBright->setEnabled(true); ui->dsbContrast->setEnabled(true); ui->dsbGamma->setEnabled(true); ui->dsbHue->setEnabled(true); ui->dsbSat->setEnabled(true); QPixmap pixscene; pixscene=QPixmap(QPixmap::fromImage(img.Deref())); //pixscene=QPixmap(":/resource/png/back.png"); xDrawPixtoGView(pixscene,ui->graphicsView,xPERSPECTIVE); pmPresent=pixscene; UpdateHist(); } }
main() { char *ptr; /* Build commands table */ /* sv_cmd_max = 0; *** Already initialized to 0 */ #ifdef SX_ALIAS sv_cmd_name[sv_cmd_max]="alias"; sv_cmd_fun[sv_cmd_max++]=AliasMain; #endif #ifdef SX_ASCII sv_cmd_name[sv_cmd_max]="ascii"; sv_cmd_fun[sv_cmd_max++]=AsciiMain; #endif #ifdef SX_BATCH sv_cmd_name[sv_cmd_max]="batch"; sv_cmd_fun[sv_cmd_max++]=BatchMain; #endif #ifdef SX_BUILTIN sv_cmd_name[sv_cmd_max]="builtin"; sv_cmd_fun[sv_cmd_max++]=BuiltinMain; #endif #ifdef SX_CAT sv_cmd_name[sv_cmd_max]="cat"; sv_cmd_fun[sv_cmd_max++]=CatMain; #endif #ifdef SX_CD sv_cmd_name[sv_cmd_max]="cd"; sv_cmd_fun[sv_cmd_max++]=CdMain; #endif #ifdef SX_CHMOD sv_cmd_name[sv_cmd_max]="chmod"; sv_cmd_fun[sv_cmd_max++]=ChmodMain; #endif #ifdef SX_CLEAR sv_cmd_name[sv_cmd_max]="clear"; sv_cmd_fun[sv_cmd_max++]=ClearMain; #endif #ifdef SX_CP sv_cmd_name[sv_cmd_max]="cp"; sv_cmd_fun[sv_cmd_max++]=CpMain; #endif #ifdef SX_CPM sv_cmd_name[sv_cmd_max]="cpm"; sv_cmd_fun[sv_cmd_max++]=CpmMain; #endif #ifdef SX_DF sv_cmd_name[sv_cmd_max]="df"; sv_cmd_fun[sv_cmd_max++]=DfMain; #endif #ifdef SX_DIRALIAS sv_cmd_name[sv_cmd_max]="diralias"; sv_cmd_fun[sv_cmd_max++]=DiralMain; #endif #ifdef SX_DATE sv_cmd_name[sv_cmd_max]="date"; sv_cmd_fun[sv_cmd_max++]=DateMain; #endif #ifdef SX_DUMP sv_cmd_name[sv_cmd_max]="dump"; sv_cmd_fun[sv_cmd_max++]=DumpMain; #endif #ifdef SX_ECHO sv_cmd_name[sv_cmd_max]="echo"; sv_cmd_fun[sv_cmd_max++]=EchoMain; #endif #ifdef SX_ED sv_cmd_name[sv_cmd_max]="ed"; sv_cmd_fun[sv_cmd_max++]=EdMain; #endif #ifdef SX_ENV sv_cmd_name[sv_cmd_max]="env"; sv_cmd_fun[sv_cmd_max++]=EnvMain; #endif #ifdef SX_EXIT sv_cmd_name[sv_cmd_max]="exit"; sv_cmd_fun[sv_cmd_max++]=ExitMain; #endif #ifdef SX_FALSE sv_cmd_name[sv_cmd_max]="false"; sv_cmd_fun[sv_cmd_max++]=FalseMain; #endif #ifdef SX_FORTUNE sv_cmd_name[sv_cmd_max]="fortune"; sv_cmd_fun[sv_cmd_max++]=FortuneMain; #endif #ifdef SX_GOTO sv_cmd_name[sv_cmd_max]="goto"; sv_cmd_fun[sv_cmd_max++]=GotoMain; #endif #ifdef SX_GREP sv_cmd_name[sv_cmd_max]="grep"; sv_cmd_fun[sv_cmd_max++]=GrepMain; #endif #ifdef SX_HEAD sv_cmd_name[sv_cmd_max]="head"; sv_cmd_fun[sv_cmd_max++]=HeadMain; #endif #ifdef SX_HISTORY sv_cmd_name[sv_cmd_max]="history"; sv_cmd_fun[sv_cmd_max++]=HistMain; #endif #ifdef SX_IF sv_cmd_name[sv_cmd_max]="if"; sv_cmd_fun[sv_cmd_max++]=IfMain; #endif #ifdef SX_LS sv_cmd_name[sv_cmd_max]="ls"; sv_cmd_fun[sv_cmd_max++]=LsMain; #endif #ifdef SX_MAN sv_cmd_name[sv_cmd_max]="man"; sv_cmd_fun[sv_cmd_max++]=ManMain; #endif #ifdef SX_MEM sv_cmd_name[sv_cmd_max]="mem"; sv_cmd_fun[sv_cmd_max++]=MemMain; #endif #ifdef SX_MORE sv_cmd_name[sv_cmd_max]="more"; sv_cmd_fun[sv_cmd_max++]=MoreMain; #endif #ifdef SX_MV sv_cmd_name[sv_cmd_max]="mv"; sv_cmd_fun[sv_cmd_max++]=MvMain; #endif #ifdef SX_PWD sv_cmd_name[sv_cmd_max]="pwd"; sv_cmd_fun[sv_cmd_max++]=PwdMain; #endif #ifdef SX_READ sv_cmd_name[sv_cmd_max]="read"; sv_cmd_fun[sv_cmd_max++]=ReadMain; #endif #ifdef SX_RM sv_cmd_name[sv_cmd_max]="rm"; sv_cmd_fun[sv_cmd_max++]=RmMain; #endif #ifdef SX_SHIFT sv_cmd_name[sv_cmd_max]="shift"; sv_cmd_fun[sv_cmd_max++]=ShiftMain; #endif #ifdef SX_SLEEP sv_cmd_name[sv_cmd_max]="sleep"; sv_cmd_fun[sv_cmd_max++]=SleepMain; #endif #ifdef SX_SORT sv_cmd_name[sv_cmd_max]="sort"; sv_cmd_fun[sv_cmd_max++]=SortMain; #endif #ifdef SX_TAIL sv_cmd_name[sv_cmd_max]="tail"; sv_cmd_fun[sv_cmd_max++]=TailMain; #endif #ifdef SX_TEE sv_cmd_name[sv_cmd_max]="tee"; sv_cmd_fun[sv_cmd_max++]=TeeMain; #endif #ifdef SX_TRUE sv_cmd_name[sv_cmd_max]="true"; sv_cmd_fun[sv_cmd_max++]=TrueMain; #endif #ifdef SX_TTY sv_cmd_name[sv_cmd_max]="tty"; sv_cmd_fun[sv_cmd_max++]=TtyMain; #endif #ifdef SX_VER sv_cmd_name[sv_cmd_max]="ver"; sv_cmd_fun[sv_cmd_max++]=VerMain; #endif #ifdef SX_WC sv_cmd_name[sv_cmd_max]="wc"; sv_cmd_fun[sv_cmd_max++]=WcMain; #endif #ifdef SX_WHOAMI sv_cmd_name[sv_cmd_max]="whoami"; sv_cmd_fun[sv_cmd_max++]=WhoamiMain; #endif /* Create some buffers and tables */ /* FCXs */ if(!(sv_fcxbuf = malloc(SX_MAX_FCX * 13))) return ErrorMem(); /* Environment names */ if(!(sv_env_name = KeyAlloc(SX_MAX_ENV))) return ErrorMem(); /* Environment values */ if(!(sv_env_value = KeyAlloc(SX_MAX_ENV))) return ErrorMem(); /* Alias names */ if(!(sv_alias_name = KeyAlloc(SX_MAX_ALIAS))) return ErrorMem(); /* Alias values */ if(!(sv_alias_value = KeyAlloc(SX_MAX_ALIAS))) return ErrorMem(); /* Directory names */ if(!(sv_dir_path = KeyAlloc(SX_MAX_DIR))) return ErrorMem(); /* Directory values */ if(!(sv_dir_alias = KeyAlloc(SX_MAX_DIR))) return ErrorMem(); /* History */ if(!(sv_hist = KeyAlloc(SX_MAX_HIST))) return ErrorMem(); /* Set-up CP/M */ SetUpCPM(); /* Set-up some variables */ sv_cmd_err = "SamaruX"; /* sv_flg_hist = sv_flg_buf = sv_flg_quit = sv_flg_cpm = sv_cmd_exit = sv_batch = 0; *** Already initialized to 0 */ /* Check if there is a CP/M command line */ if(*(ptr = 0x0080)) { #ifdef SX_CMDCPM /* Check mode */ if(*ptr > 4 && ptr[1] == ' ' && ptr[2] == '-' && ptr[3] == 'R' && ptr[4] == ' ') { /* Restore mode: comeback from a CP/M command */ /* Set EOS */ ptr[1 + (*ptr)] = 0; /* Load SamaruX status */ LoadStatus(ptr + 5); } else { #endif /* CP/M mode: execute command and return to CP/M */ ++sv_flg_cpm; /* Profile */ Profile(SX_PROFCPM); /* Cook the command line a bit */ ptr[*ptr + 1] = 0; while(*++ptr) *ptr = tolower(*ptr); /* Execute the command line */ Execute(0x0081); /* Return to CP/M */ return 0; #ifdef SX_CMDCPM } #endif } else { /* Interactive mode: execute commands until user quits the shell */ printf("SamaruX v%d.%02d / %s\n\n%s\n\n", SX_VERSION, SX_RELEASE, SX_APPDATE, SX_COPYRGT); printf("CP/M v%d.%d\n\n", (sv_cpmver >> 4) & 0x0F, sv_cpmver & 0x0F); printf("%d built-in commands\n\n", sv_cmd_max); /* Profile */ Profile(SX_PROFILE); } /* Interactive shell */ while(1) { /* Re-use the buffer? */ if(sv_flg_buf) sv_flg_buf = 0; else sv_ed_buf[0] = 0; /* Show prompt */ Prompt(); /* Read the command line */ ReadLine(sv_ed_buf, SX_LINESIZE-1); putchar('\n'); ptr = SkipSpaces(sv_ed_buf); if(*ptr) { /* Execute the command line */ Execute(ptr); /* Quit the shell? */ if(sv_flg_quit) break; /* Update history */ UpdateHist(); putchar('\n'); } } /* Return to CP/M */ return 0; }
void CHistogram::UpdateHist() { for (int i=0; i<m_numChannels; i++) UpdateHist(m_pLevels[i], m_pHist[i], m_nLevels[i] - 1); }
int CMain::ReceiveIpcHandler() { int cmdCode = 0; string strCmdCode; CGlobal *cGlob = NULL; CModuleIPC *cIpc = NULL; CProtocol cProto; char chFlag = 0; int nRet = 0; cGlob = CGlobal::GetInstance(); cIpc = cGlob->GetModuleIPC(); nRet = cIpc->RecvMesg(cGlob->GetLocalProcNo(), cProto, -1); if(nRet < 0){ CLA_LOG(CLA_ERR,false,"Message receive failed(ERR:%s)\n", cIpc->m_strErrorMsg.c_str()); return CLA_NOK; } else if(nRet == 0){ return CLA_OK; } chFlag = cProto.GetFlag(); if((chFlag != CProtocol::FLAG_RESPONSE)){ CLA_LOG(CLA_ERR,false,"Invalid Flag(flag=%d)\n",chFlag); return CLA_NOK; } strCmdCode = cProto.GetCommand(); cmdCode = CGlobal::GetCmdCode(strCmdCode); switch(cmdCode){ case CMD_CLI_COMMAND: { unsigned int fd = 0; unsigned int nSessionId = 0; CCliPeer *cPeer = NULL; CSession *cSession = NULL; CCliRsp decRsp; string strPayload; nSessionId = cProto.GetSequence(); cSession = FindSession(nSessionId); if(cSession == NULL){ CLA_LOG(CLA_ERR,false,"Can not find session(id=%d)\n",nSessionId); return CLA_NOK; } strPayload = cProto.GetPayload(); decRsp.DecodeMessage(strPayload); decRsp.SetSessionId(cSession->GetClcSessionId()); decRsp.EncodeMessage(strPayload); cProto.SetPayload(strPayload); cProto.SetSequence(cSession->GetClcSessionId()); fd = cSession->GetPeerFd(); cPeer = FindPeerByFd(fd); if(cPeer == NULL){ CLA_LOG(CLA_ERR,false,"Can not find peer(fd=%d)\n",fd); delete cSession; return CLA_NOK; } if(cPeer->GetTimestamp() != cSession->GetPeerTimestamp()){ CLA_LOG(CLA_ERR,false,"Can not find peer(timestamp=%lu, %lu)\n", cPeer->GetTimestamp() ,cSession->GetPeerTimestamp()); delete cSession; return CLA_NOK; } /* update hist */ UpdateHist(cPeer, cSession, &decRsp); cPeer->Send(cProto); delete cSession; } break; default : CLA_LOG(CLA_ERR,false,"Invalid cmdCode(%s)\n",cProto.GetCommand().c_str()); return CLA_NOK; }; return CLA_OK; }