Exemple #1
0
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);
	}
}
Exemple #3
0
// 曲线绘制.
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);
}
Exemple #4
0
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);
}
Exemple #5
0
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;
}
Exemple #6
0
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);
}
Exemple #9
0
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;
}
Exemple #11
0
			// 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());
			}
Exemple #12
0
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;

}
Exemple #13
0
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);
}
Exemple #14
0
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);
}
Exemple #15
0
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;
}
Exemple #16
0
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++;
    }
}
Exemple #17
0
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;
}
Exemple #20
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);
}
Exemple #23
0
/////////////////////////////////////////////////
// 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;
}
Exemple #24
0
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;
}
Exemple #25
0
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;
}
Exemple #27
0
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;

}
Exemple #28
0
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);
}
Exemple #30
0
/* 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;
}