int FindMissingNumber(char *str, int len) { // note: it's easy to get rid of the logs but the code is just // not understandable with all those counters for (int m = 1; m <= 6; ++m) { int n = GetVal(str, 0, m); if (n == -1) break; int missingNo = -1; int fail = 0; for (int i = m; i != len; i += 1 + log10l(n)) { if ((missingNo == -1) && (GetVal(str, i, 1 + log10l(n + 2)) == n + 2)) { missingNo = n + 1; n+=2; } else if (GetVal(str, i, 1 + log10l(n + 1)) == n + 1) { n++; } else { fail = 1; break; } } if (!fail) return missingNo; } return -1; // not found or no missing number }
// File Chooser bool CUIFileChooser::SendChildMessage(int message,ssize_t p1, ssize_t p2, SDL_Surface *si) { switch (message) { case UIEV_DRAW: { textzone->SendMessage(UIEV_DRAW,p1,p2,si); } case INTERNEV_REDRAW: { if (hideext) { char temp[256]; strcpy(temp,(char *)strings.GetElementN(GetVal())); for (int n=strlen(temp)-1;n>0;n--) { if (temp[n]=='.') { temp[n]=0; break; } } textzone->SendMessage(INTERNEV_SETTEXT,(ssize_t)temp,0,si); } else { textzone->SendMessage(INTERNEV_SETTEXT,(ssize_t)strings.GetElementN(GetVal()),0,si); } return true; } default : return textzone->SendMessage(message,p1,p2,si); } }
// 曲线绘制. void DataGrids::DrawWave(HDC _hdc , double duty , double freq , double step,double startPos , double dt ,double phase) { static int ixval = 0; Gdiplus::PointF ps,pe; Gdiplus::Pen pen(Gdiplus::Color(0,0,255),1); Gdiplus::Pen penr(Gdiplus::Color(0,0,0),1); Gdiplus::Graphics g(_hdc); //g.SetSmoothingMode(Gdiplus::SmoothingModeHighQuality); step = (step < 1) ? 1 : step ; startPos = (startPos > m_iWidth) ? m_iWidth:startPos; int state = GetVal(duty,freq,0); ps = Gdiplus::PointF(startPos,GetPosition(state)); for(int i = startPos/step ;i < m_iWidth / step ; i++) { state = GetVal(duty,freq,(i + phase - (startPos / step))*dt); pe = Gdiplus::PointF(i*step,GetPosition(state)); g.DrawLine(&pen,ps,pe); ps = pe; } g.DrawRectangle(&penr,0,0,m_iWidth-1,m_iHeight-1); }
void GetVal(Json::Value &config, ImColor* setting) { if (config.isNull()) return; GetVal(config["r"], &setting->Value.x); GetVal(config["g"], &setting->Value.y); GetVal(config["b"], &setting->Value.z); GetVal(config["a"], &setting->Value.w); }
int TSs::GetFldY(const TStr& FldNm, const TStr& NewFldNm, const int& X) const { for (int Y=0; Y<GetYLen(); Y++){ if (GetXLen(Y)>X){ if (GetVal(X, Y).GetTrunc()==FldNm){ if (!NewFldNm.Empty()){GetVal(X, Y)=NewFldNm;} return Y; } } } return -1; }
int TSs::GetFldX(const TStr& FldNm, const TStr& NewFldNm, const int& Y) const { if (GetYLen()>Y){ int XLen=GetXLen(Y); for (int X=0; X<XLen; X++){ if (GetVal(X, Y).GetTrunc()==FldNm){ if (!NewFldNm.Empty()){GetVal(X, Y)=NewFldNm;} return X; } } return -1; } else { return -1; } }
bool isIsomorphic(string s, string t) { int cntS = 1, cntT = 1, val1 = 0, val2 = 0, len = s.size(); vector<int> Ch2IntS(300, 0); vector<int> Ch2IntT(300, 0); for (int i = 0; i < len; ++i) { val1 = GetVal(Ch2IntS, cntS, s[i]); val2 = GetVal(Ch2IntT, cntT, t[i]); if (val1 != val2) return false; } return true; }
HRESULT CMixParam::ToggleOrSetToDefault(SONAR_MIXER_TOUCH eMixerTouch) { // Toggle if it's a bool or interleave type if (DT_BOOL == m_eDataType) { return ToggleBooleanParam(eMixerTouch); } else if (DT_INTERLEAVE == m_eDataType) { float fVal; HRESULT hr = GetVal(&fVal); if (FAILED(hr)) return hr; if (1.0f == fVal) fVal = 2.0f; else fVal = 1.0f; return SetVal(fVal, eMixerTouch); } if (NO_DEFAULT == m_fDefaultValue) return E_FAIL; return SetVal(m_fDefaultValue, eMixerTouch); }
void TGStat::DumpValStat() { for (int val = gsvNone; val < gsvMx; val++) { const TGStatVal Val = TGStatVal(val); if (! HasVal(Val)) { continue; } printf(" %s\t%g\n", GetValStr(Val).CStr(), GetVal(Val)); } }
Hardware::MinorType getHardwareType(string name, HardwareType ht, const Database *const pDB) throw (Error) { xmlKeepBlanksDefault(0); xmlDocPtr doc; try { doc = xmlParseFile(pDB->getHWPath(name, ht).c_str()); } catch (...) { throw; } if (doc == 0) throw Error("Cannot initialize XML parser"); xmlNodePtr cur = xmlDocGetRootElement(doc); if (cur == 0) { xmlFreeDoc(doc); throw Error("XML document is empty, invalid hardware file"); } string strIFace("NA"); bool bFound = false; cur = cur->xmlChildrenNode; while (cur != 0 && !bFound) { if (IsNode(cur, "hardware")) { xmlNodePtr save = cur; cur = cur->xmlChildrenNode; while (cur != 0) { if (IsNode(cur, "interface")) { strIFace = GetVal(doc, cur); bFound = true; break; } cur = cur->next; } cur = save; } cur = cur->next; } xmlFreeDoc(doc); xmlCleanupParser(); if (strIFace == "ethernet") return Hardware::BBEth; if (strIFace == "usb") return Hardware::BBUSB; if (strIFace == "usb||ethernet") return Hardware::BBDual; return Hardware::Unknown; }
// Will do is IsTypeOf T before getting and throw if types dont match T GetCheckVal() const { if(IsTypeOf<T>()) return GetVal(); else throw Except(String("GetCheckVal expected ")+typeid(T).name()); }
int FindMissingNum ( char *str, int len ) { int i = 0; int n = 0; int j = 0; int o = 0; int missingNo = -1; for ( i = 1; i <= 6; i++ ) { n = GetVal(str,0,i); printf("-%d",n); getchar(); for ( j = i; j < len; j += 1 + i ) { o = GetVal(str,j,1+log10l(n+1)); printf("+%d",o); getchar(); } } return missingNo; }
void CFFPlugsRow::GetInfo(FFPARM_INFO& Info) const { Info.Val = GetVal(); Info.ModEnab = m_ModEnabChk.GetCheck() != 0; Info.ModWave = static_cast<WORD>(m_ModWave.GetCurSel()); Info.ModFreq = float(m_ModFreq.GetVal()); Info.ModPW = float(m_ModPW.GetVal()); m_ParmSlider.GetNormSelection(Info.ModRange.Start, Info.ModRange.End); }
void MySpinBox::OnEdtDecEditingFinished() { uint8_t arr[4]; put_le_val(GetVal(), arr, sizeof(arr)); char str[0x10]; QString hex(arr2str(arr, sizeof(arr), str, sizeof(str))); if (edtHex->text() != hex) edtHex->setText(hex); }
int TSs::SearchY(const int& X, const TStr& Str) const { int YLen=GetYLen(); for (int Y=0; Y<YLen; Y++) { if (Str==GetVal(X, Y)) { return Y; } } return -1; }
void TFtrGen::AddWds(const TStr& Prefix, const PBowDocBs& BowDocBs, int& Offset) const { const int Vals = GetVals(); for (int ValN = 0; ValN < Vals; ValN++) { const int WId = BowDocBs->AddWordStr( TStr::Fmt("%s-%s", Prefix.CStr(), GetVal(ValN).CStr())); IAssert(Offset == WId); Offset++; } }
bool TFtp::PacketRRQ::Read() { std::string mode; size_t offs = 0; offs = GetVal(offs, &_filename); offs = GetVal(offs, &mode); if (mode == "netascii") { _mode = kNetASCII; return true; } if (mode == "octet") { _mode = kOctet; return true; } if (mode == "mail") { _mode = kMail; return true; } return false; }
HRESULT CMixParam::ToggleBooleanParam(SONAR_MIXER_TOUCH eMixerTouch) { float fVal; HRESULT hr = GetVal(&fVal); if (FAILED(hr)) return hr; return SetVal((fVal >= 0.5f) ? 0.0f : 1.0f, eMixerTouch); }
int main (int argc, char *argv[]) { int rc; UserDesc tr; int res; tr.entry_number = GdtFirstEntry(); res = syscall(SYS_get_thread_area, &tr); if (res != 0) { printf("SYS_get_thread_area failed with error: %s\n", strerror(errno)); return 0; } tr.entry_number = (unsigned)-1; tr.base_addr = (unsigned int)new UserInfo(); ((UserInfo*)(tr.base_addr))->d1 = value1; ((UserInfo*)(tr.base_addr))->d2 = value2; res = syscall(SYS_set_thread_area, &tr); if (res != 0) { printf("SYS_set_thread_area failed with error: %s\n", strerror(errno)); return 0; } TLS_SET_FS_REG((tr.entry_number << 3) + 3); if ((GetVal(0) == value1) && (GetVal(4) == value2)) { printf("TEST PASSED\n"); } else { printf("TEST FAILED\n"); } return 0; }
/* GetNode: read a node definition and create node */ static VQNode GetNode(Source *src, CovKind ck, short width) { char buf[MAXSTRLEN]; VQNode n; short vqidx,nid,lid,rid; Vector mean; Covariance cov; vqidx = GetVal(src,0,0,"VQ Index"); nid = GetVal(src,0,0,"Node Id"); lid = GetVal(src,0,0,"Left Id"); rid = GetVal(src,0,0,"Right Id"); mean = CreateVector(&vqHeap,width); if (!ReadVector(src, mean, FALSE)) HError(6150,"GetNode: cannot read mean vector at %s", SrcPosition(*src, buf)); switch(ck){ case NULLC: cov.var = NULL; n = CreateVQNode(vqidx,nid,lid,rid,mean,ck,cov); break; case INVDIAGC: cov.var = CreateVector(&vqHeap,width); if (!ReadVector(src, cov.var, FALSE)) HError(6150,"GetNode: cannot read variance vector at %s", SrcPosition(*src, buf)); n = CreateVQNode(vqidx,nid,lid,rid,mean,ck,cov); break; case FULLC: cov.inv = CreateTriMat(&vqHeap,width); if (!ReadTriMat(src, cov.inv, FALSE)) HError(6150,"GetNode: cannot read covariance matrix at %s", SrcPosition(*src, buf)); n = CreateVQNode(vqidx,nid,lid,rid,mean,ck,cov); break; default: n = CreateVQNode(vqidx,nid,lid,rid,mean,ck,cov); break; } return n; }
PTb TTb::GetSubTb(const TIntV& TupNV, const TIntV& VarNV, const PTb& Tb){ if ((TupNV.Len()==0)||(VarNV.Len()==0)){return NULL;} for (int VarNN=0; VarNN<VarNV.Len(); VarNN++){ Tb->AddVar(GetVar(VarNV[VarNN]));} for (int TupNN=0; TupNN<TupNV.Len(); TupNN++){ int TupN=TupNV[TupNN]; int NewTupN=Tb->AddTup(GetTupNm(TupN)); for (int VarNN=0; VarNN<VarNV.Len(); VarNN++){ Tb->PutVal(NewTupN, VarNN, GetVal(TupN, VarNV[VarNN]));} } Tb->DefVarTypes(); return Tb; }
HRESULT CMixParam::GetValueText(LPSTR pszText, DWORD *pdwLen) { pszText[0] = 0; float fVal; HRESULT hr = GetVal(&fVal); if (FAILED(hr)) return hr; return GetValueText(fVal, pszText, pdwLen); }
///////////////////////////////////////////////// // Prolog-Tuple TStr TPlTup::GetStr(TPlBs* PlBs) const { TChA ChA; TStr RelFuncStr=PlBs->GetAtomQStr(GetFuncId()); ChA+=TStr::Fmt("%s(", RelFuncStr.CStr()); int Vals=GetVals(); for (int ValN=0; ValN<Vals; ValN++){ if (ValN>0){ChA+=", ";} TStr ValStr=GetVal(ValN).GetStr(PlBs); ChA+=ValStr.CStr(); } ChA+=")"; return ChA; }
vector<Cubic> Spline::CalcNaturalCubic3D(vector<vec3> points, float(*GetVal)(vec3 p)){ vector<Cubic> cubics; int num = points.size() - 1; float* gamma = new float[num + 1]; float* delta = new float[num + 1]; float* D = new float[num + 1]; gamma[0] = 1.0f / 2.0f; for (int i = 1; i < num; ++i){ gamma[i] = 1.0f / (4.0f - gamma[i - 1]); } gamma[num] = 1.0f / (2.0f - gamma[num - 1]); float p0 = GetVal(points[0]); float p1 = GetVal(points[1]); delta[0] = 3.0f * (p1 - p0) * gamma[0]; for (int i = 1; i < num; ++i){ float p0 = GetVal(points[i - 1]); float p1 = GetVal(points[i + 1]); delta[i] = (3.0f * (p1 - p0) - delta[i - 1]) * gamma[i]; } p0 = GetVal(points[num - 1]); p1 = GetVal(points[num]); delta[num] = (3.0f * (p1 - p0) - delta[num - 1]) * gamma[num]; D[num] = delta[num]; for (int i = num - 1; i >= 0; --i){ D[i] = delta[i] - gamma[i] * D[i + 1]; } cubics.clear(); for (int i = 0; i < num; ++i){ p0 = GetVal(points[i]); p1 = GetVal(points[i + 1]); Cubic c = Cubic(p0, D[i], (3 * (p1 - p0) - 2 * D[i] - D[i + 1]), (2 * (p0 - p1) + D[i] + D[i + 1]) ); cubics.push_back(c); } delete[] gamma; delete[] delta; delete[] D; return cubics; }
void __fastcall TVclStrGrid::OnActExtEdBtClick(TObject *Sender){ TStr ExtNm=ActExtEdBt->Caption.c_str(); TExtGetStrF ExtGetStrF; if (IsExtGetStrF(ExtNm, ExtGetStrF)){ int ColN; int RowN; if (IsSelCell(ColN, RowN)){ TStr PrevValStr=GetVal(ColN, RowN); TStr NewValStr; bool OkP; (*ExtGetStrF())(false, PrevValStr, NewValStr, OkP); if (OkP){ ActExtValEd->Text=NewValStr.CStr(); } } } }
HRESULT CMixParam::GetNormalizedVal(float *fVal, bool *bDot) { float fTmp; HRESULT hr = GetVal(&fTmp); if (FAILED(hr)) return hr; // Rescale to be between 0 and 1 *fVal = (fTmp - m_fMin) / (m_fMax - m_fMin); if (bDot) { switch (m_eDataType) { case DT_NO_LEDS: case DT_BOOL: case DT_SELECTOR: case DT_LEVEL: case DT_INTERLEAVE: case DT_SPREAD: *bDot = false; break; case DT_BOOST_CUT: case DT_PAN: { float fDiff = *fVal - 0.5f; if (fDiff < 0) fDiff = -fDiff; *bDot = fDiff < 0.005f; } break; default: *bDot = false; TRACE("CMixParam::GetNormalizedVal(): Error: unknown DataType\n"); break; } } return hr; }
static BOOL HeaderSection (LPIT8 it8) { char VarName[MAXID]; char Buffer[MAXSTR]; while (it8->sy != SEOF && it8->sy != SSYNERROR && it8->sy != SBEGIN_DATA_FORMAT && it8->sy != SBEGIN_DATA) { switch (it8 -> sy) { case SKEYWORD: InSymbol(it8); if (!Check(it8, SSTRING, "Keyword expected")) return false; if (!AddAvailableProperty(it8, it8 -> str)) return false; InSymbol(it8); break; case SIDENT: strncpy(VarName, it8->id, MAXID-1); if (!IsAvailableOnList(it8-> ValidKeywords, VarName, NULL)) return SynError(it8, "Undefined keyword '%s'", VarName); InSymbol(it8); GetVal(it8, Buffer); cmsxIT8SetProperty((LCMSHANDLE) it8, VarName, Buffer); InSymbol(it8); break; case SEOLN: break; default: return SynError(it8, "expected keyword or identifier"); } Skip(it8, SEOLN); } return true; }
int UpOrDown(Node *cmdHead, int cursorPos, int nodePos, char *lastBuf, char *cmd) { int i = 0; int listLen = 0; int cmdLen = 0; char *val = NULL; assert(NULL != cmdHead); if((listLen = GetLen(cmdHead)) < 1) { return 0; } if((cmdLen = strlen(cmd)) > 0) { for(i = cursorPos; i < cmdLen; ++i) { write(STDOUT_FILENO, " ", 1); } for(i = 0; i< cmdLen; ++i) { printf("\b \b"); fflush(stdout); } } memset(cmd, 0, cmdLen); if(0 == nodePos) { write(STDOUT_FILENO, lastBuf, strlen(lastBuf)); strcpy(cmd, lastBuf); } if(NULL != (val = GetVal(cmdHead, (listLen - nodePos + 1)))) { write(STDOUT_FILENO, val, strlen(val)); strcpy(cmd, val); } return 1; }
HRESULT CMixParam::Adjust(float fDelta, SONAR_MIXER_TOUCH eMixerTouch) { float fVal; HRESULT hr = GetVal(&fVal); if (FAILED(hr)) return hr; fVal += fDelta; if (fVal < m_fMin) fVal = m_fMin; else if (fVal > m_fMax) fVal = m_fMax; return SetVal(fVal, eMixerTouch); }
/* EXPORT->LoadVQTab: create a VQTable using defs in tabFN */ VQTable LoadVQTab(char *tabFN, short magic) { VQTable vq; Source src; short fmagic, numNodes, swidth[SMAX]; TreeType type; CovKind ck; VQNode n; int s,i; /* See if this VQ table already loaded */ if ((vq=FindVQTable(tabFN,magic)) != NULL) return vq; /* Load Definition Header Info and create table */ if(InitSource(tabFN,&src,NoFilter)<SUCCESS) HError(6110,"LoadVQTab: Can't open file %s", tabFN); fmagic = GetVal(&src,0,0,"magic number"); if (magic != 0 && magic != fmagic) HError(6170,"LoadVQTab: %s has magic=%d but reqd magic=%d", tabFN,fmagic,magic); type = (TreeType) GetVal(&src,linTree,binTree,"tree type"); ck = CKCheck((CovKind) GetVal(&src,DIAGC,NULLC,"cov kind")); numNodes = GetVal(&src,1,MAXVQNODES,"number of nodes"); swidth[0] = GetVal(&src,1,SMAX,"number of streams"); for (s=1; s<=swidth[0]; s++) swidth[s] = GetVal(&src,1,10000,"stream width"); vq = CreateVQTab(tabFN, fmagic, type, ck, swidth); /* Load Entries as unordered list */ for (i=1; i<=numNodes; i++){ s = GetVal(&src,1,SMAX,"stream index"); n = GetNode(&src,ck,swidth[s]); n->right = vq->tree[s]; vq->tree[s] = n; } vq->numNodes = numNodes; /* Sort Entries according to id numbers */ for (s=1; s<=swidth[0]; s++){ n = vq->tree[s]; vq->tree[s] = SortEntries(&n,1); } /* Close definition file and leave */ FClose(src.f,src.isPipe); return vq; }