Пример #1
0
LIBGLADE_SIGNAL_FUNC void ChangeSaturationABGRValue(GtkWidget *menuitem, gpointer user_data)
{
  int data;
  if (strcmp(glade_get_widget_name(menuitem), "menuRPlus") == 0) {
    data = 0x0001;
  } else if (strcmp(glade_get_widget_name(menuitem), "menuRMinus") == 0) {
    data = 0x0000;
  } else if (strcmp(glade_get_widget_name(menuitem), "menuGPlus") == 0) {
    data = 0x0101;
  } else if (strcmp(glade_get_widget_name(menuitem), "menuGMinus") == 0) {
    data = 0x0100;
  } else if (strcmp(glade_get_widget_name(menuitem), "menuBPlus") == 0) {
    data = 0x0201;
  } else if (strcmp(glade_get_widget_name(menuitem), "menuBMinus") == 0) {
    data = 0x0200;
  } else if (strcmp(glade_get_widget_name(menuitem), "menuAPlus") == 0) {
    data = 0x0301;
  } else if (strcmp(glade_get_widget_name(menuitem), "menuAMinus") == 0) {
    data = 0x0300;
  }
  int type = (data >> 8) & 0xFF;
  bool plus = data & 1 ? true : false;
  gchar *buf;
  DWORD sat;
  BYTE v;
  DWORD mask, mask1, mask2;
  mask1 = 0xFFFFFF00;
  mask1 <<= type*8;
  mask2 = 0x00FFFFFF;
  mask2 >>= (3-type)*8;
  mask = mask1 | mask2;
  int max = actor->GetNumSprites(actor->curAct, actor->curPat);
  GtkTreeView *table = (GtkTreeView *)glade_xml_get_widget(windowXML, "table");
  GtkTreeModel *model = gtk_tree_view_get_model(table);
  GtkTreeSelection *selection = gtk_tree_view_get_selection(table);
  GtkTreeIter iter;

  if (gtk_tree_model_get_iter_first(model, &iter) == FALSE)  return;
  for (int i=0; i<max; i++) {
    if (gtk_tree_selection_iter_is_selected(selection, &iter)) {
      gtk_tree_model_get(model, &iter, SAT_COLUMN, &buf, -1);
      // AABBGGRR
      sat = HexToDWORD(buf);
      v = (BYTE)((sat & (~mask)) >> (type*8));
      if (plus) {
        v = SaturateByte5(v, true);
      } else {
        v = SaturateByte5(v, false);
      }
      sat &= mask;
      sat |= v << (type*8);
      sprintf(buf, "%08X", sat);
      SetTableFromEdit(buf, i, SAT_COLUMN);
      // iter is broken
      if (gtk_tree_model_get_iter_first(model, &iter) == FALSE)  return;
      for (int j=0; j<i; j++)  gtk_tree_model_iter_next(model, &iter);
    }
    if (gtk_tree_model_iter_next(model, &iter) == FALSE)  break;
  }
Пример #2
0
void SetTableFromEdit(char *str, int row, int column)
{
  actor->SetModified();

  char txt[128];
  int i;
  float f;

  if (row == actor->GetNumSprites(actor->curAct, actor->curPat)) {
    //if head
    i = atoi(str);
    switch (column) {
    case 2:  //xoffs
      actor->SetExtXValue(actor->curAct, actor->curPat, i);
      break;
    case 3:  //yoffs;
      actor->SetExtYValue(actor->curAct, actor->curPat, i);
      break;
    }
    SNPRINTF(txt, sizeof(txt), "%d", i);
    SetTableItem(txt, row, column);
    ProcPatternChange(true);
    return;
  }

  switch (column) {
  case 0:  //SprNo
    i = atoi(str);
    if (actor->GetSpTypeValue(actor->curAct, actor->curPat, row) == 0) {
      int max = actor->GetNumPalImage();
      if (i >= max)  i = max - 1;
    } else {
      int max = actor->GetNumFlatImage();
      if (i >= max)  i = max - 1;
    }
    SNPRINTF(txt, sizeof(txt), "%d", i);
    actor->SetSprNoValue(actor->curAct, actor->curPat, row, i);
    break;
  case 1:  //SpType
    i = atoi(str);
    if (i > 1)  i = 1;
    if (actor->GetNumFlatImage() == 0)  i = 0;
    SNPRINTF(txt, sizeof(txt), "%d", i);
    actor->SetSpTypeValue(actor->curAct, actor->curPat, row, i);
    break;
  case 2:  //Xoffs
    i = atoi(str);
    SNPRINTF(txt, sizeof(txt), "%d", i);
    actor->SetXOffsValue(actor->curAct, actor->curPat, row, i);
    break;
  case 3:  //Yoffs
    i = atoi(str);
    SNPRINTF(txt, sizeof(txt), "%d", i);
    actor->SetYOffsValue(actor->curAct, actor->curPat, row, i);
    break;
  case 4:  //Mirror
    i = atoi(str);
    i = (i != 0) ? 1 : 0;
    SNPRINTF(txt, sizeof(txt), "%d", i);
    actor->SetMirrorValue(actor->curAct, actor->curPat, row, i);
    break;
  case 5:  //AABBGGRR
    i = HexToDWORD(str);
    SNPRINTF(txt, sizeof(txt), "%08X", i);
    actor->SetABGRValue(actor->curAct, actor->curPat, row, i);
    break;
  case 6: //Xmag
    f = (float)atof(str);
    SNPRINTF(txt, sizeof(txt), "%f", f);
    actor->SetXMagValue(actor->curAct, actor->curPat, row, f);
    break;
  case 7: //Ymag
    f = (float)atof(str);
    SNPRINTF(txt, sizeof(txt), "%f", f);
    actor->SetYMagValue(actor->curAct, actor->curPat, row, f);
    break;
  case 8: //rot
    i = atoi(str);
    i = i%360;
    if (i < 0) i += 360;
    SNPRINTF(txt, sizeof(txt), "%d", i);
    actor->SetRotValue(actor->curAct, actor->curPat, row, i);
    break;
  }
  SetTableItem(txt, row, column);
  ProcPatternChange(true);
}
Пример #3
0
//修改密码
bool COperator::ModifyPassword(TSSmartTask *pTask, TSSmartDoc *pDoc, unsigned char *ucRawData)
{
	int cardid = ucRawData[8]*65536+ucRawData[9]*256+ucRawData[10]; //交易卡号
	unsigned char OldPassWord[17];
	unsigned char NewPassWord[17];

	memset(OldPassWord, 0, sizeof(OldPassWord));
	memset(NewPassWord, 0, sizeof(NewPassWord));

	TSGSJRecord  Data;
	char cCardSerialNo[256];//卡序列号

	memset(cCardSerialNo, 0, sizeof(cCardSerialNo));
	memset(&Data, 0, sizeof(Data));
	Data.nCardID = cardid;
	if( ReadCardGSInfo(0x83, &Data) != RET_OK )
	{
		printf("修改密码时不能读卡信息!\n");
		WriteLog("修改密码时与金仕达通讯,获取卡序列号失败"); //add by lina 20040308
		return false ;
	}
	else
	{
		sprintf(cCardSerialNo, "%10u", HexToDWORD(Data.szSerial));
	//	strcpy(cCardSerialNo, "3100000114");
	//printf(cCardSerialNo, "%10u", HexToDWORD("A2E7BE57"));
		WriteLog("卡序列号%s",cCardSerialNo);
	}
	
	//printf("修改密码时读入卡的信息, 卡号:%d, 读入的序列号:%s.............\n", cardid, cCardSerialNo);
	WriteLog("修改密码时读入卡的信息, 卡号:%d, 读入的序列号:%s.............\n", cardid, cCardSerialNo);

	DWORD nSerial = atol(cCardSerialNo);

	//旧密码  
	OldPassWord[0] = ucRawData[17]; //^ ((unsigned char)(nSerial%256));
	OldPassWord[1] = ucRawData[18];// ^ ((unsigned char)(nSerial/256%256));
	OldPassWord[2] = ucRawData[19];// ^ ((unsigned char)(nSerial/65536%256));
	
	CString strCS1;
	strCS1.Format("%.2X%.2X%.2X",OldPassWord[0],OldPassWord[1],OldPassWord[2]);

	//新密码
	NewPassWord[0] = ucRawData[20];// ^ ((unsigned char)(nSerial%256));
	NewPassWord[1] = ucRawData[21];// ^ ((unsigned char)(nSerial/256%256));
	NewPassWord[2] = ucRawData[22];// ^ ((unsigned char)(nSerial/65536%256));

	CString strCS2;
	strCS2.Format("%.2X%.2X%.2X",NewPassWord[0],NewPassWord[1],NewPassWord[2]);

	//printf("修改密码, 卡号:%d..旧密码:%s, 新密码:%s............\n", cardid, strCS1.GetBuffer(0), strCS2.GetBuffer(0));
	WriteLog("修改密码, 卡号:%d..旧密码:%s, 新密码:%s\n", cardid, strCS1.GetBuffer(0), strCS2.GetBuffer(0));
	memset(&Data, 0, sizeof(Data));

	Data.nCardID = cardid;
	strcpy(Data.szDeviceID, pDoc->m_szDeviceID);
	strcpy(Data.szPassword, strCS2.GetBuffer(0));
	sprintf(Data.szCRC, "%.2X%.2X", ucRawData[26],ucRawData[27]);

	return OutputRealData(pTask, pDoc, 0x83, (unsigned char*)&Data, sizeof(Data))==RET_OK?true:false;
}