Ejemplo n.º 1
0
void CIATestMainWindow::ProcessInput(double dTimeFraction,double dRealTimeFraction)
{
	if(m_piGUIManager->IsKeyDown(GK_PAUSE)){ProcessKey(KEY_PAUSE,dTimeFraction,dRealTimeFraction);}
	if(m_piGUIManager->IsKeyDown('P')){ProcessKey(KEY_PROCESS_ONE_FRAME,dTimeFraction,dRealTimeFraction);}
	if(m_piGUIManager->IsKeyDown(GK_UP) || m_piGUIManager->IsKeyDown(GK_NUMPAD8) || m_piGUIManager->IsKeyDown('W')){ProcessKey(KEY_FORWARD,dTimeFraction,dRealTimeFraction);}
	if(m_piGUIManager->IsKeyDown(GK_DOWN) || m_piGUIManager->IsKeyDown(GK_NUMPAD2) || m_piGUIManager->IsKeyDown('S')){ProcessKey(KEY_BACK,dTimeFraction,dRealTimeFraction);}
	if(m_piGUIManager->IsKeyDown(GK_LEFT) || m_piGUIManager->IsKeyDown(GK_NUMPAD4) || m_piGUIManager->IsKeyDown('A')){ProcessKey(KEY_LEFT,dTimeFraction,dRealTimeFraction);}
	if(m_piGUIManager->IsKeyDown(GK_RIGHT) || m_piGUIManager->IsKeyDown(GK_NUMPAD6) || m_piGUIManager->IsKeyDown('D')){ProcessKey(KEY_RIGHT,dTimeFraction,dRealTimeFraction);}
	if(m_piGUIManager->IsKeyDown(GK_NUMPAD9) || m_piGUIManager->IsKeyDown('R')){ProcessKey(KEY_UP,dTimeFraction,dRealTimeFraction);}
	if(m_piGUIManager->IsKeyDown(GK_NUMPAD3) || m_piGUIManager->IsKeyDown('F')){ProcessKey(KEY_DOWN,dTimeFraction,dRealTimeFraction);}
}
Ejemplo n.º 2
0
void SimpleModal::ProcessInput()
{
	if (m_ReadRec.EventType==MOUSE_EVENT && !(m_ReadKey==KEY_MSWHEEL_UP || m_ReadKey==KEY_MSWHEEL_DOWN || m_ReadKey==KEY_MSWHEEL_RIGHT || m_ReadKey==KEY_MSWHEEL_LEFT))
		ProcessMouse(&m_ReadRec.Event.MouseEvent);
	else
		ProcessKey(Manager::Key(m_ReadKey));
}
Ejemplo n.º 3
0
__int64 FilePanels::VMProcess(int OpCode,void *vParam,__int64 iParam)
{
	if (OpCode == MCODE_F_KEYBAR_SHOW)
	{
		int PrevMode=Opt.ShowKeyBar?2:1;
		switch (iParam)
		{
			case 0:
				break;
			case 1:
				Opt.ShowKeyBar=1;
				MainKeyBar.Show();
				KeyBarVisible = Opt.ShowKeyBar;
				SetScreenPosition();
				FrameManager->RefreshFrame();
				break;
			case 2:
				Opt.ShowKeyBar=0;
				MainKeyBar.Hide();
				KeyBarVisible = Opt.ShowKeyBar;
				SetScreenPosition();
				FrameManager->RefreshFrame();
				break;
			case 3:
				ProcessKey(KEY_CTRLB);
				break;
			default:
				PrevMode=0;
				break;
		}
		return PrevMode;
	}
	return ActivePanel->VMProcess(OpCode,vParam,iParam);
}
Ejemplo n.º 4
0
int Grabber::ProcessMouse(MOUSE_EVENT_RECORD *MouseEvent)
{
	if (MouseEvent->dwEventFlags==DOUBLE_CLICK ||
	        (!MouseEvent->dwEventFlags && (MouseEvent->dwButtonState & RIGHTMOST_BUTTON_PRESSED)))
	{
		ProcessKey(KEY_ENTER);
		return TRUE;
	}

	if (IntKeyState.MouseButtonState!=FROM_LEFT_1ST_BUTTON_PRESSED)
		return FALSE;

	GArea.CurX=Min(Max(static_cast<SHORT>(0),IntKeyState.MouseX),ScrX);
	GArea.CurY=Min(Max(static_cast<SHORT>(0),IntKeyState.MouseY),ScrY);

	if (!MouseEvent->dwEventFlags)
		ResetArea=TRUE;
	else if (MouseEvent->dwEventFlags==MOUSE_MOVED)
	{
		if (ResetArea)
		{
			GArea.X2=GArea.CurX;
			GArea.Y2=GArea.CurY;
			ResetArea=FALSE;
		}

		GArea.X1=GArea.CurX;
		GArea.Y1=GArea.CurY;
	}

	//VerticalBlock=MouseEvent->dwControlKeyState&(LEFT_ALT_PRESSED|RIGHT_ALT_PRESSED);
	DisplayObject();
	return TRUE;
}
Ejemplo n.º 5
0
__int64 FileViewer::VMProcess(int OpCode,void *vParam,__int64 iParam)
{
	if (OpCode == MCODE_F_KEYBAR_SHOW)
	{
		int PrevMode=Opt.ViOpt.ShowKeyBar?2:1;
		switch (iParam)
		{
			case 0:
				break;
			case 1:
				Opt.ViOpt.ShowKeyBar=1;
				ViewKeyBar.Show();
				Show();
				KeyBarVisible = Opt.ViOpt.ShowKeyBar;
				break;
			case 2:
				Opt.ViOpt.ShowKeyBar=0;
				ViewKeyBar.Hide();
				Show();
				KeyBarVisible = Opt.ViOpt.ShowKeyBar;
				break;
			case 3:
				ProcessKey(KEY_CTRLB);
				break;
			default:
				PrevMode=0;
				break;
		}
		return PrevMode;
	}
	return View.VMProcess(OpCode,vParam,iParam);
}
Ejemplo n.º 6
0
//************************************************************************************************
// 	cMenu::Show()
//************************************************************************************************
EMenuValue cMenu::Show(int rc_fd)
{
    IMPORT_FRAMEBUFFER_VARS;
    
    STORE_PALETTE(&colormap);
    
    gl_fillbox(0, 0, p_xsize, p_ysize, TRANSP);
    Draw();
    //ShowOsd(True);
    int rccode;
    while( 1 )
    {
	cMenu::GetRCCode(rc_fd, rccode);
	if(!ProcessKey(rccode))
	    break;
	    
	if (m_RetValue != eMVNone)
	    break;
    }
    
    gl_fillbox(0, 0, p_xsize, p_ysize, TRANSP);
    STORE_PALETTE(NULL);
    SendFramebufferUpdateRequest(0, 0, p_xsize, p_ysize, False);
    
    return m_RetValue;
}
Ejemplo n.º 7
0
bool
CScsiDeviceList::Populate()
{
   this->clear();

   HKEY  hScsiKey;

   _tcscpy(m_szLastKey, _T("\\Scsi"));
   m_dwLastKeyLength = 5;

   m_lLastError = RegOpenKeyEx(  HKEY_LOCAL_MACHINE, 
                                 c_ScsiPath, 
                                 0, 
                                 KEY_READ, 
                                 &hScsiKey);

   if (m_lLastError != ERROR_SUCCESS) {
      _tcscpy(m_szLastOperation, _T("Opening key "));
      _tcscpy(m_szLastKey, c_ScsiPath);
      return false;
   }

   if (!ProcessKey(hScsiKey, c_MaxKeyDepth - 1, 0)) {
      return false;
   }

#if defined(_DEBUG)
   _fputtc(_T('\n'), stderr);
#endif

   return true;
}
Ejemplo n.º 8
0
void Modal::ProcessInput()
{
	if (ReadRec.EventType==MOUSE_EVENT)
		ProcessMouse(&ReadRec.Event.MouseEvent);
	else
		ProcessKey(ReadKey);
}
Ejemplo n.º 9
0
/* $ 29.12.2000 IS
  Аналог CloseAll, но разрешает продолжение полноценной работы в фаре,
  если пользователь продолжил редактировать файл.
  Возвращает TRUE, если все закрыли и можно выходить из фара.
*/
BOOL Manager::ExitAll()
{
	_MANAGER(CleverSysLog clv(L"Manager::ExitAll()"));

	// BUGBUG don't use iterators here, may be invalidated by DeleteCommit()
	for(size_t i = m_modalWindows.size(); i; --i)
	{
		if (i - 1 >= m_modalWindows.size())
			continue;
		auto CurrentWindow = m_modalWindows[i - 1];
		if (!CurrentWindow->GetCanLoseFocus(TRUE))
		{
			auto PrevWindowCount = m_modalWindows.size();
			CurrentWindow->ProcessKey(Manager::Key(KEY_ESC));
			Commit();

			if (PrevWindowCount == m_modalWindows.size())
			{
				return FALSE;
			}
		}
	}

	// BUGBUG don't use iterators here, may be invalidated by DeleteCommit()
	for(size_t i = m_windows.size(); i; --i)
	{
		if (i - 1 >= m_windows.size())
			continue;
		auto CurrentWindow = m_windows[i - 1];
		if (!CurrentWindow->GetCanLoseFocus(TRUE))
		{
			ActivateWindow(CurrentWindow);
			Commit();
			auto PrevWindoowCount = m_windows.size();
			CurrentWindow->ProcessKey(Manager::Key(KEY_ESC));
			Commit();

			if (PrevWindoowCount == m_windows.size())
			{
				return FALSE;
			}
		}
	}

	return TRUE;
}
Ejemplo n.º 10
0
bool CommandLine::ProcessMouse(const MOUSE_EVENT_RECORD *MouseEvent)
{
	if(MouseEvent->dwButtonState&FROM_LEFT_1ST_BUTTON_PRESSED && MouseEvent->dwMousePosition.X==m_X2+1)
	{
		return ProcessKey(Manager::Key(KEY_ALTF8));
	}
	return CmdStr.ProcessMouse(MouseEvent);
}
Ejemplo n.º 11
0
void main(void)
{
	int nFrame, nStay;
	int x, y;

	SetCursorType(NOCURSOR), init_rand();

	for (; 1;) // 게임이 끝났을 경우 다시 시작하거나 끝내는 루프
	{
		Score = 0, bricknum = 0;
		CLS; // 무한루프에 들어가기전 초기화

		for (x = 0; x < BW + 2; x++) // 외부벽 초기화
		{
			for (y = 0; y < BH + 2; y++)
			{
				board[x][y] = (y == 0 || y == BH + 1 || x == 0 || x == BW + 1) ? WALL : EMPTY;
			}
		}
		DrawScreen();
		nFrame = 10;
		nbrick = make_rand(sizeof(Shape) / sizeof(Shape[0]));

		for (; 2;) // 전체 게임 루프
		{
			bricknum++;
			brick = nbrick;
			nbrick = make_rand(sizeof(Shape) / sizeof(Shape[0])); // 새 벽돌 생성
			DrawNext();
			//DrawPresent()
			nx = BW / 2, ny = 2;
			rot = 0;
			PrintBrick(TRUE);

			if (GetAround(nx, ny, brick, rot) != EMPTY) break; // 게임 끝 점검
			nStay = nFrame;
			for (; 3;) // 벽돌 하나 처리 루프
			{
				if (--nStay == 0)
				{
					nStay = nFrame;
					if (MoveDown()) break; // 벽돌 내림
				}
				if (ProcessKey()) break; // 키처리
				delay(1000 / 20); // 시간 지연
			}
			if (bricknum % 5 == 0 && nFrame > 3)
				nFrame--;
		}
		CLS;
		gotoxy(30, 12), puts("G A M E  O V E R"); // 게임 끝 처리
		gotoxy(23, 14), puts("If you want restart game press [ Y ]"); // 재시작
		gotoxy(27, 16), puts("another any key [ Exit ]");
		if (tolower(getch()) != 'y') break;
	}
	SetCursorType(NORMALCURSOR);
}
Ejemplo n.º 12
0
			void GuiDocumentCommonInterface::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments)
			{
				if(documentControl->GetVisuallyEnabled())
				{
					if(editMode!=ViewOnly)
					{
						if(ProcessKey(arguments.code, arguments.shift, arguments.ctrl))
						{
							arguments.handled=true;
						}
					}
				}
			}
Ejemplo n.º 13
0
void Manager::ProcessMainLoop()
{
	if ( CurrentFrame )
		CtrlObject->Macro.SetMode(CurrentFrame->GetMacroMode());

	if ( CurrentFrame && !CurrentFrame->ProcessEvents() )
	{
		ProcessKey(KEY_IDLE);
	}
	else
	{
		// Mantis#0000073: Не работает автоскролинг в QView
		Global->WaitInMainLoop=IsPanelsActive(true);
		//WaitInFastFind++;
		int Key=GetInputRecord(&LastInputRecord);
		//WaitInFastFind--;
		Global->WaitInMainLoop=FALSE;

		if (EndLoop)
			return;

		if (LastInputRecord.EventType==MOUSE_EVENT && !(Key==KEY_MSWHEEL_UP || Key==KEY_MSWHEEL_DOWN || Key==KEY_MSWHEEL_RIGHT || Key==KEY_MSWHEEL_LEFT))
		{
				// используем копию структуры, т.к. LastInputRecord может внезапно измениться во время выполнения ProcessMouse
				MOUSE_EVENT_RECORD mer=LastInputRecord.Event.MouseEvent;
				ProcessMouse(&mer);
		}
		else
			ProcessKey(Key);
	}

	if(IsPanelsActive())
	{
		if(!Global->PluginPanelsCount)
		{
			CtrlObject->Plugins->RefreshPluginsList();
		}
	}
}
Ejemplo n.º 14
0
int HMenu::ProcessMouse(MOUSE_EVENT_RECORD *MouseEvent)
{
	int MsX,MsY;

	SelectPos=0;
	for (int i=0; i<ItemCount; i++)
	{
		if (Item[i].Selected)
		{
			SelectPos=i;
			break;
		}
	}

	MsX=MouseEvent->dwMousePosition.X;
	MsY=MouseEvent->dwMousePosition.Y;

	if (MsY==Y1 && MsX>=X1 && MsX<=X2)
	{
		for (int i=0; i<ItemCount; i++)
			if (MsX>=ItemX[i] && MsX<ItemX[i+1])
			{
				if (SubMenu && SelectPos==i)
					return FALSE;

				Item[SelectPos].Selected=0;
				Item[i].Selected=1;
				SelectPos=i;
				ShowMenu();
				ProcessKey(KEY_ENTER);
			}
	}
	else if (!(MouseEvent->dwButtonState & 3) && !MouseEvent->dwEventFlags)
		ProcessKey(KEY_ESC);

	return TRUE;
}
Ejemplo n.º 15
0
int FolderTree::ProcessMouse(MOUSE_EVENT_RECORD *MouseEvent)
{
	if (TreeKeyBar.ProcessMouse(MouseEvent))
		return TRUE;

	if (MouseEvent->dwEventFlags==DOUBLE_CLICK)
	{
		ProcessKey(KEY_ENTER);
		return TRUE;
	}

	int MsX=MouseEvent->dwMousePosition.X;
	int MsY=MouseEvent->dwMousePosition.Y;

	if ((MsX<X1 || MsY<Y1 || MsX>X2 || MsY>Y2) && IntKeyState.MouseEventFlags != MOUSE_MOVED)
	{
		if (!(MouseEvent->dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED) && (IntKeyState.PrevMouseButtonState&FROM_LEFT_1ST_BUTTON_PRESSED) && (Global->Opt->Dialogs.MouseButton&DMOUSEBUTTON_LEFT))
			ProcessKey(KEY_ESC);
		else if (!(MouseEvent->dwButtonState & RIGHTMOST_BUTTON_PRESSED) && (IntKeyState.PrevMouseButtonState&RIGHTMOST_BUTTON_PRESSED) && (Global->Opt->Dialogs.MouseButton&DMOUSEBUTTON_RIGHT))
			ProcessKey(KEY_ENTER);

		return TRUE;
	}

	if (MsY == Y2-2)
		FindEdit->ProcessMouse(MouseEvent);
	else
	{
		if (!Tree->ProcessMouse(MouseEvent))
			SetExitCode(XC_MODIFIED);
		else
			DrawEdit();
	}

	return TRUE;
}
Ejemplo n.º 16
0
UIMenuItem* CSkelMeshViewer::GetObjectMenu(UIMenuItem* menu)
{
	assert(!menu);
	menu = &NewSubmenu("SkeletalMesh");

	(*menu)
	[
		NewMenuCheckbox("Show bone names\tB", &ShowLabels)
		+NewMenuCheckbox("Show sockets\tA", &ShowAttach)
		+NewMenuCheckbox("Show influences\tI", &DrawFlags, DF_SHOW_INFLUENCES)
		+NewMenuCheckbox("Show mesh UVs\tCtrl+U", &ShowUV)
		+NewMenuSeparator()
		+NewMenuItem(bIsUE4Mesh ? "Find animations ...\tCtrl+A" : "Cycle AnimSets\tCtrl+A")
		.SetCallback(BIND_MEMBER(&CSkelMeshViewer::AttachAnimSet, this))
		+NewMenuItem("Cycle skeleton display\tS")
		.SetCallback(BIND_LAMBDA([this]() { ProcessKey('s'); })) // simulate keypress
		+NewMenuItem("Tag mesh\tCtrl+T")
		.SetCallback(BIND_LAMBDA([this]() { ProcessKey(KEY_CTRL|'t'); })) // simulate keypress
		+NewMenuItem("Untag all meshes")
		.SetCallback(BIND_LAMBDA([this]() { UntagAllMeshes(); }))
	];

	return CMeshViewer::GetObjectMenu(menu);
}
Ejemplo n.º 17
0
int main(void)
{
    sevenSegmentDisplay.Init();
    InitBuzzer();
    keyPad.Init();
    uvLed.Init();
    InitPauseSwitch();

    realTimeClock.Init();
    realTimeClock.RegisterRTCCallback(rtc_callback_function);

    sei();

    inform_startup();
    sevenSegmentDisplay.SetStandBy(true);

    while (1)
    {
        current_key = keyPad.GetPressedKey();

        if (current_key != KEY_NONE)
        {
            delay_ms(250);
            ProcessKey();
        }

        if(IsPauseSwitchOn() == true)
        {
            if (countDownTimerState == COUNT_DOWN_TIMER_STATE_STARTED)
            {
                PauseCountDownTimer();
            }
        }
        else
        {
            if (countDownTimerState == COUNT_DOWN_TIMER_STATE_PAUSED)
            {
                StartCountDownTimer();
            }
        }

        if (beepBuzz == true)
        {
            BeepBuzzer();
            beepBuzz = false;
        }
    }
}
Ejemplo n.º 18
0
int PuzzleProc(
/************************************************************************/
HWND 	hWindow,
LPARAM 	lParam,
UINT 	msg)
{
    int         x, y;
    LPOBJECT    lpObject;
    HWND        hImageCtrl;
    RECT        rUpdate;

    x = LOWORD(lParam);
    y = HIWORD(lParam);
    switch (msg)
    {
        case WM_CREATE:	// The first mouse down message
    	case WM_LBUTTONDOWN:
            lpObject = ImgFindObject(lpImage, x, y, TRUE, TRUE);
    		if (lpObject && !lpObject->fHidden)
    		{
#ifndef _MAC
                SoundStartResource("ICONS", FALSE, 0);
#endif
                lpObject->fHidden = TRUE;
                rUpdate = lpObject->rObject;
                InflateRect(&rUpdate, 2, 2);
                hImageCtrl = GetDlgItem(hPuzzleWnd, IDC_PUZZLE_IMAGE);
                InvalidateRect(hImageCtrl, &rUpdate, FALSE);
                UpdateWindow(hImageCtrl);
                AdjustGuesses(hPuzzleWnd, -1);
            }
    		break;

    	case WM_SETCURSOR:
    		return TRUE;

        case WM_LBUTTONUP:
    		break;

        case WM_MOUSEMOVE:	// sent when ToolActive is on
    		break;

        case WM_KEYDOWN:
            ProcessKey (hPuzzleWnd, (UINT)lParam);
            break;
    }
    return TRUE;
}
Ejemplo n.º 19
0
void FilePanels::GoToFile(const wchar_t *FileName)
{
	if (FirstSlash(FileName))
	{
		string ADir,PDir;
		Panel *PassivePanel = GetAnotherPanel(ActivePanel);
		int PassiveMode = PassivePanel->GetMode();

		if (PassiveMode == NORMAL_PANEL)
		{
			PassivePanel->GetCurDir(PDir);
			AddEndSlash(PDir);
		}

		int ActiveMode = ActivePanel->GetMode();

		if (ActiveMode==NORMAL_PANEL)
		{
			ActivePanel->GetCurDir(ADir);
			AddEndSlash(ADir);
		}

		string strNameFile = PointToName(FileName);
		string strNameDir = FileName;
		CutToSlash(strNameDir);
		/* $ 10.04.2001 IS
		     Не делаем SetCurDir, если нужный путь уже есть на открытых
		     панелях, тем самым добиваемся того, что выделение с элементов
		     панелей не сбрасывается.
		*/
		BOOL AExist=(ActiveMode==NORMAL_PANEL) && !StrCmpI(ADir,strNameDir);
		BOOL PExist=(PassiveMode==NORMAL_PANEL) && !StrCmpI(PDir,strNameDir);

		// если нужный путь есть на пассивной панели
		if (!AExist && PExist)
			ProcessKey(KEY_TAB);

		if (!AExist && !PExist)
			ActivePanel->SetCurDir(strNameDir,TRUE);

		ActivePanel->GoToFile(strNameFile);
		// всегда обновим заголовок панели, чтобы дать обратную связь, что
		// Ctrl-F10 обработан
		ActivePanel->SetTitle();
	}
}
Ejemplo n.º 20
0
void GUIwindow::ProcessMSG(UINT imsg, WPARAM wparam, LPARAM lparam)
{
	if (m_vis == false) return;



	bool mouseDown = 0;
	switch (imsg)
	{
		case WM_MOUSEMOVE:
		{
											 mouseX = LOWORD(lparam);
											 mouseY = HIWORD(lparam);
		}
		break;
		case WM_LBUTTONDOWN: 
			mouseDown = 1;
			break;
		case WM_LBUTTONUP: 
			mouseDown = 0;
			break;
		case WM_KEYDOWN:
			//ProcessKey(wparam, lparam);
			break;
		case WM_CHAR:
			ProcessKey(wparam, lparam);
				break;
		case WM_KEYUP:
			break;
		default:
			break;
	}
	ProcessMouse(mouseX, mouseY, mouseDown);


	// process child
	for (int i = 0; i < m_GUIchild.size(); ++i)
		m_GUIchild[i]->ProcessMSG(imsg, wparam, lparam);
}
Ejemplo n.º 21
0
void Keyboard::Update( bool bFocus )
{
	HRESULT hr;    	
	DIDEVICEOBJECTDATA rgdod[256];	
	DWORD dwItems = 256;

	while (GetDevice())
	{
		dwItems = 256;

		hr = GetDevice()->GetDeviceData(sizeof(DIDEVICEOBJECTDATA),rgdod,&dwItems,0 ); //0);

		if (SUCCEEDED(hr))
		{
			for (unsigned int k=0; k < dwItems; k++)
			{
				int key = rgdod[k].dwOfs;
				bool pressed = ((rgdod[k].dwData & 0x80) != 0);

				ProcessKey(key, pressed);
			}	
			break;
		}
		else 
		{
			if (hr == DIERR_INPUTLOST || hr == DIERR_NOTACQUIRED)
			{			

				if (FAILED(hr = GetDevice()->Acquire()))	
				{
					break;
				}
			}
			else
				break;
		}
	} 		  
}
Ejemplo n.º 22
0
__interrupt void Timer_A0 (void)//100ms
{
//P2OUT ^= 0x08;                            // Toggle P2.3 
//UartWriteStr("1234567890");// 
 //TACCR0 = 0;
    ProcessKey();
    if((TimerCtrl&0x01)&&(TimerCnt0!=0))//CH0
    {
        TimerCnt0--;
    }
    else
    {
      TimerCnt0 = 0;      
    }
 
    if((TimerCtrl&0x02)&&(XbeeBusy!=0))//CH1
    {    
        XbeeBusy--;
        if(XbeeBusy == 0)
          ClearRxd(); 
    }    
 
    if(TimerCtrl&0x04)//CH2
    {      
        if(TimerCntRun!=0)
        {
          TimerCntRun--;
        }
        else
        {
          TimerCntRun = 10;
         // TempFlag |= 0x01;//采集温度传感器-标记           
        }       
    }
  
    if((XbeeBusy==0)&&(RxdState))//判断接收数据完成
    {
      if(RxdCntOld!=RxdCnt)
        {
          RxdCntOld = RxdCnt;
        }
      else
        {
          MsgProcess();
          RxdCntOld = 0;
          RxdCnt = 0;
          RxdOk = 0;
          RxdState = 0;
         }
    }

/*-------------------------------------------  
    if(ActMsgCnt<(ED_Reg[ACT]*100))//Act.Msg----send  10*100*100mS=10SEC
    {
        ActMsgCnt ++;
    }
    else
    {
        ActMsgCnt = 0;
        ActMsgFlag = 1;
        //   P2OUT ^= 0x08;                            // Toggle P2.3 
    } */ 
/*-------------------------------------------*/ 
if(InitCnt<HoldReg[rST])//10Second
{
  InitCnt++;
}
else
{
  AppProcess();
  InitCnt = 0;
  InitFlag = 1;
} 
/*-------------------------------------------*/ 
}
Ejemplo n.º 23
0
//=============================================================================
int main(int argc, char *argv[])
{
	printf("INFO: Monster Outrage v %d\n", VERSION);

	try
	{
		InitSDL();
		LoadMedia();
		InitGame();

		bool quit = false;
		uint ticks = SDL_GetTicks();

		while(!quit)
		{
			// handle events
			SDL_Event e;
			while(SDL_PollEvent(&e) != 0)
			{
				if(e.type == SDL_QUIT)
					quit = true;
				else if(e.type == SDL_KEYDOWN)
				{
					if(e.key.state == SDL_PRESSED)
						ProcessKey(e.key.keysym.scancode, true);
				}
				else if(e.type == SDL_KEYUP)
				{
					if(e.key.state == SDL_RELEASED)
						ProcessKey(e.key.keysym.scancode, false);
				}
				else if(e.type == SDL_MOUSEMOTION || e.type == SDL_MOUSEBUTTONDOWN || e.type == SDL_MOUSEBUTTONUP)
				{
					SDL_GetMouseState(&cursor_pos.x, &cursor_pos.y);
					if(e.type == SDL_MOUSEBUTTONDOWN)
					{
						if(e.button.state == SDL_PRESSED && e.button.button < MAX_BUTTON)
							ProcessButton(e.button.button, true);
					}
					else if(e.type == SDL_MOUSEBUTTONUP)
					{
						if(e.button.state == SDL_RELEASED && e.button.button < MAX_BUTTON)
							ProcessButton(e.button.button, false);
					}
				}
			}

			// calculate dt
			uint new_ticks = SDL_GetTicks();
			float dt = float(new_ticks - ticks)/1000.f;
			ticks = new_ticks;

			Draw();
			Update(dt);
			UpdateInput();
		}

		CleanGame();
		CleanMedia();
		CleanSDL();
	}
	catch(cstring err)
	{
		printf("%s\nERROR: Read error and press any key to exit.\n", err);
		_getch();
		return 1;
	}

	return 0;
}
Ejemplo n.º 24
0
void SyntopReducer::reduce(HadoopPipes::ReduceContext& context) { // NOLINT
  boost::split(temp_string_components_, context.getInputKey(),
               boost::is_any_of("_"));

  float sum = 0;
  while (context.nextValue()) {
    sum += HadoopUtils::toFloat(context.getInputValue());
  }



  if (boost::starts_with(temp_string_components_[0], "gamma")) {
    context.emit(context.getInputKey(), boost::lexical_cast<string>(sum));
  } else if (boost::starts_with(temp_string_components_[0], "lhood")) {
    // sum += GlobalLikelihoodTerm();
    sum += GlobalWeightTerm(vars_->nu_.get(),
                            vars_->beta_.get(),
                            params_->alpha_trans(),
                            params_->alpha_top(),
                            params_->finite());

    context.emit(context.getInputKey(), boost::lexical_cast<string>(sum));
  } else {
    if (boost::starts_with(temp_string_components_[2], "~")) {
      // cout << "optimizing" << endl;

      Optimize();
      Emit(&output);

      StringMap::const_iterator last = (output).end();
      for (StringMap::const_iterator itr = (output).begin();
           itr != last; itr++) {
        // cout << itr->first << "\t" << itr->second << endl;
        context.emit(itr->first, boost::lexical_cast<string>(itr->second));
      }

      output.clear();

      last = (output).end();
      for (StringMap::const_iterator itr = (output).begin();
           itr != last; itr++) {
        // cout << "output is\t" << itr->first << "\t" << itr->second << endl;
        // context.emit(itr->first, boost::lexical_cast<string>(itr->second));
      }

      index = boost::lexical_cast<int>(temp_string_components_[1]);
      vars_ = new VariationalParameters(*params_);

      display_matrix(vars_->tau_est_top_.get(), "tau_est_top is\n");
      display_vector(vars_->tau_est_bottom_.get(), "tau_est_bottom is\n");

      tau_coordinate_ = -1;
      nu_coordinate_ = -1;
    } else {
      ProcessKey(context.getInputKey(), sum);
      // cout << "processing\t" << context.getInputKey() << "\t" << sum << endl;
    }

    /*
    if (index == -1) {
      index = boost::lexical_cast<double>(temp_string_components_[1]);
      // reduceContext = context;
    } else {
      if (index != boost::lexical_cast<int>(temp_string_components_[1])) {
        Optimize();
        Emit(&output);

        StringMap::const_iterator last = (output).end();
        for (StringMap::const_iterator itr = (output).begin();
             itr != last; itr++) {
          // cout << itr->first << "\t" << itr->second << endl;
          context.emit(itr->first, boost::lexical_cast<string>(itr->second));
        }

        output.clear();

        index = boost::lexical_cast<int>(temp_string_components_[1]);
        vars_ = new VariationalParameters(*params_);

        tau_coordinate_ = -1;
        nu_coordinate_ = -1;
      }
    }
    */
  }
  // }
}
Ejemplo n.º 25
0
int QuickView::ProcessKey(const Manager::Key& Key)
{
	int LocalKey=Key.FarKey();
	if (!IsVisible())
		return FALSE;

	if (LocalKey>=KEY_RCTRL0 && LocalKey<=KEY_RCTRL9)
	{
		ExecShortcutFolder(LocalKey-KEY_RCTRL0);
		return TRUE;
	}

	if (LocalKey == KEY_F1)
	{
		Help::create(L"QViewPanel");
		return TRUE;
	}

	if (LocalKey==KEY_F3 || LocalKey==KEY_NUMPAD5 || LocalKey == KEY_SHIFTNUMPAD5)
	{
		auto AnotherPanel = Parent()->GetAnotherPanel(this);

		if (AnotherPanel->GetType()==FILE_PANEL)
			AnotherPanel->ProcessKey(Manager::Key(KEY_F3));

		return TRUE;
	}

	if (LocalKey==KEY_ADD || LocalKey==KEY_SUBTRACT)
	{
		auto AnotherPanel = Parent()->GetAnotherPanel(this);

		if (AnotherPanel->GetType()==FILE_PANEL)
			AnotherPanel->ProcessKey(Manager::Key(LocalKey==KEY_ADD?KEY_DOWN:KEY_UP));

		return TRUE;
	}

	if (QView && !Directory && LocalKey>=256)
	{
		int ret = QView->ProcessKey(Manager::Key(LocalKey));

		if (LocalKey == KEY_F2 || LocalKey == KEY_SHIFTF2
		 || LocalKey == KEY_F4 || LocalKey == KEY_SHIFTF4
		 || LocalKey == KEY_F8 || LocalKey == KEY_SHIFTF8)
		{
			DynamicUpdateKeyBar();
			Parent()->GetKeybar().Redraw();
		}

		if (LocalKey == KEY_F7 || LocalKey == KEY_SHIFTF7)
		{
			//__int64 Pos;
			//int Length;
			//DWORD Flags;
			//QView->GetSelectedParam(Pos,Length,Flags);
			Redraw();
			Parent()->GetAnotherPanel(this)->Redraw();
			//QView->SelectText(Pos,Length,Flags|1);
		}

		return ret;
	}

	return FALSE;
}
Ejemplo n.º 26
0
intptr_t VMenu2::VMenu2DlgProc(Dialog* Dlg, intptr_t Msg, intptr_t Param1, void* Param2)
{
	_DIALOG(CleverSysLog CL(L"VMenu2::VMenu2DlgProc()"));
	_DIALOG(SysLog(L"hDlg=%p, Msg=%s, Param1=%d (0x%08X), Param2=%d (0x%08X)",Dlg,_DLGMSG_ToName(Msg),Param1,Param1,Param2,Param2));
	switch(Msg)
	{
	case DN_CTLCOLORDIALOG:
		{
			FarColor *color=(FarColor*)Param2;
			*color=colors::PaletteColorToFarColor(COL_MENUBOX);
			return true;
		}

	case DN_CTLCOLORDLGLIST:
		{
			FarDialogItemColors *colors=(FarDialogItemColors*)Param2;

			PaletteColors MenuColors[]=
			{
				COL_MENUBOX,                               // подложка
				COL_MENUBOX,                               // рамка
				COL_MENUTITLE,                             // заголовок - верхний и нижний
				COL_MENUTEXT,                              // Текст пункта
				COL_MENUHIGHLIGHT,                         // HotKey
				COL_MENUBOX,                               // separator
				COL_MENUSELECTEDTEXT,                      // Выбранный
				COL_MENUSELECTEDHIGHLIGHT,                 // Выбранный - HotKey
				COL_MENUSCROLLBAR,                         // ScrollBar
				COL_MENUDISABLEDTEXT,                      // Disabled
				COL_MENUARROWS,                            // Arrow
				COL_MENUARROWSSELECTED,                    // Выбранный - Arrow
				COL_MENUARROWSDISABLED,                    // Arrow Disabled
				COL_MENUGRAYTEXT,                          // "серый"
				COL_MENUSELECTEDGRAYTEXT,                  // выбранный "серый"
			};
			for(size_t i=0; i<colors->ColorsCount && i<ARRAYSIZE(MenuColors); ++i)
				colors->Colors[i]=colors::PaletteColorToFarColor(MenuColors[i]);

			return true;
		}

	case DN_CLOSE:
		if(!ForceClosing && !Param1 && GetItemFlags() & (LIF_GRAYED|LIF_DISABLE))
			return false;
		if(Call(Msg, (void*)(Param1<0 ? Param1 : GetSelectPos())))
			return false;
		break;

	case DN_LISTHOTKEY:
		if (!Call(Msg, Param2))
			Dlg->SendMessage( DM_CLOSE, -1, nullptr);
		break;

	case DN_DRAWDLGITEMDONE: //???
	case DN_DRAWDIALOGDONE:
		if(DefRec.EventType)
		{
			INPUT_RECORD rec=DefRec;
			ClearStruct(DefRec);
			if(!Call(DN_INPUT, &rec))
				Dlg->SendMessage( DM_KEY, 1, &rec);
		}
		break;

	case DN_CONTROLINPUT:
	case DN_INPUT:
		if(!cancel)
		{
			if (Msg==DN_CONTROLINPUT)
			{
				auto ir = static_cast<INPUT_RECORD*>(Param2);
				int key=InputRecordToKey(ir);

				if(ListBox().ProcessFilterKey(key))
					return true;
			}

			if(Call(DN_INPUT, Param2))
				return Msg==DN_CONTROLINPUT;
		}
		break;

	case DN_LISTCHANGE:
	case DN_ENTERIDLE:
		if(!cancel)
		{
			if(Call(Msg, Param2))
				return false;
		}
		break;

	case DN_RESIZECONSOLE:
		if(!cancel)
		{
			INPUT_RECORD ReadRec={WINDOW_BUFFER_SIZE_EVENT};
			ReadRec.Event.WindowBufferSizeEvent.dwSize=*(COORD*)Param2;
			if(Call(DN_INPUT, &ReadRec))
				return false;
			else
				Resize();
		}
		break;

	default:
		if(Global->CloseFARMenu)
			ProcessKey(Manager::Key(KEY_ESC));
		break;
	}
	return Dlg->DefProc(Msg, Param1, Param2);
}
/**-----------------------------------------------------------------------------
 * 입력 처리
 *------------------------------------------------------------------------------
 */
void ProcessInputs( void )
{
	ProcessMouse();
	ProcessKey();
}
Ejemplo n.º 28
0
UPnpCDSExtensionResults *UPnpCDSExtension::Browse( UPnpCDSRequest *pRequest )
{
    // -=>TODO: Need to add Filter & Sorting Support.
    // -=>TODO: Need to add Sub-Folder/Category Support!!!!!

    if (!IsBrowseRequestForUs( pRequest ))
        return( NULL );

    // ----------------------------------------------------------------------
    // Parse out request object's path
    // ----------------------------------------------------------------------

    QStringList idPath = QStringList::split( "/", pRequest->m_sObjectId.section('=',0,0) );

    QString key = pRequest->m_sObjectId.section('=',1);

    if (idPath.count() == 0)
        return( NULL );

    // ----------------------------------------------------------------------
    // Process based on location in hierarchy
    // ----------------------------------------------------------------------

    UPnpCDSExtensionResults *pResults = new UPnpCDSExtensionResults();

    if (pResults != NULL)
    {

        if (key)
            idPath.last().append(QString("=%1").arg(key));
        else
        {
            if (pRequest->m_sObjectId.contains("item"))
            {
                idPath = QStringList::split( " ", idPath[idPath.count() - 2] );
                idPath = QStringList::split( "?", idPath[0] );

                idPath = idPath[0];

                if (idPath[0].startsWith("Id"))
                    idPath[0] = QString("item=%1").arg(idPath[0].right(idPath[0].length() - 2));
            }
        }

        QString sLast = idPath.last();

        pRequest->m_sParentId = pRequest->m_sObjectId;

        if (sLast == m_sExtensionId         ) { return( ProcessRoot   ( pRequest, pResults, idPath )); }
        if (sLast == "0"                    ) { return( ProcessAll    ( pRequest, pResults, idPath )); }
        if (sLast.startsWith( "key" , true )) { return( ProcessKey    ( pRequest, pResults, idPath )); }
        if (sLast.startsWith( "item", true )) { return( ProcessItem   ( pRequest, pResults, idPath )); }

        int nNodeIdx = sLast.toInt();

        if ((nNodeIdx > 0) && (nNodeIdx < GetRootCount()))
            return( ProcessContainer( pRequest, pResults, nNodeIdx, idPath ));

        pResults->m_eErrorCode = UPnPResult_CDS_NoSuchObject;
        pResults->m_sErrorDesc = "";
    }

    return( pResults );
}
Ejemplo n.º 29
0
static int MainProcess(
    const string& EditName,
    const string& ViewName,
    const string& DestName1,
    const string& DestName2,
    int StartLine,
    int StartChar
)
{
		SCOPED_ACTION(ChangePriority)(THREAD_PRIORITY_NORMAL);
		FarColor InitAttributes={};
		console.GetTextAttributes(InitAttributes);
		SetRealColor(colors::PaletteColorToFarColor(COL_COMMANDLINEUSERSCREEN));

		string ename(EditName),vname(ViewName), apanel(DestName1),ppanel(DestName2);
		if (ConfigProvider().ShowProblems())
		{
			ename.clear();
			vname.clear();
			StartLine = StartChar = -1;
			apanel = Global->Opt->ProfilePath;
			ppanel = Global->Opt->LocalProfilePath;
		}

		if (!ename.empty() || !vname.empty())
		{
			Global->OnlyEditorViewerUsed = true;

			_tran(SysLog(L"create dummy panels"));
			Global->CtrlObject->CreateDummyFilePanels();
			Global->WindowManager->PluginCommit();

			Global->CtrlObject->Plugins->LoadPlugins();
			Global->CtrlObject->Macro.LoadMacros(true, true);

			if (!ename.empty())
			{
				const auto ShellEditor = FileEditor::create(ename, CP_DEFAULT, FFILEEDIT_CANNEWFILE | FFILEEDIT_ENABLEF6, StartLine, StartChar);
				_tran(SysLog(L"make shelleditor %p",ShellEditor));

				if (!ShellEditor->GetExitCode())  // ????????????
				{
					Global->WindowManager->ExitMainLoop(0);
				}
			}
			// TODO: Этот else убрать только после разборок с возможностью задавать несколько /e и /v в ком.строке
			else if (!vname.empty())
			{
				const auto ShellViewer = FileViewer::create(vname, true);

				if (!ShellViewer->GetExitCode())
				{
					Global->WindowManager->ExitMainLoop(0);
				}

				_tran(SysLog(L"make shellviewer, %p",ShellViewer));
			}

			Global->WindowManager->EnterMainLoop();
		}
		else
		{
			int DirCount=0;

			// воспользуемся тем, что ControlObject::Init() создает панели
			// юзая Global->Opt->*

			const auto& SetupPanel = [&](bool active)
			{
				++DirCount;
				string strPath = active? apanel : ppanel;
				if (os::fs::is_file(strPath))
				{
					CutToParent(strPath);
				}

				bool Root = false;
				const auto Type = ParsePath(strPath, nullptr, &Root);
				if(Root && (Type == root_type::drive_letter || Type == root_type::unc_drive_letter || Type == root_type::volume))
				{
					AddEndSlash(strPath);
				}

				auto& CurrentPanelOptions = (Global->Opt->LeftFocus == active)? Global->Opt->LeftPanel : Global->Opt->RightPanel;
				CurrentPanelOptions.m_Type = static_cast<int>(panel_type::FILE_PANEL);  // сменим моду панели
				CurrentPanelOptions.Visible = true;     // и включим ее
				CurrentPanelOptions.Folder = strPath;
			};

			if (!apanel.empty())
			{
				SetupPanel(true);

				if (!ppanel.empty())
				{
					SetupPanel(false);
				}
			}

			// теперь все готово - создаем панели!
			Global->CtrlObject->Init(DirCount);

			// а теперь "провалимся" в каталог или хост-файл (если получится ;-)
			if (!apanel.empty())  // активная панель
			{
				const auto ActivePanel = Global->CtrlObject->Cp()->ActivePanel();
				const auto AnotherPanel = Global->CtrlObject->Cp()->PassivePanel();

				if (!ppanel.empty())  // пассивная панель
				{
					FarChDir(AnotherPanel->GetCurDir());

					if (IsPluginPrefixPath(ppanel))
					{
						AnotherPanel->Parent()->SetActivePanel(AnotherPanel);

						execute_info Info;
						Info.Command = ppanel;

						Global->CtrlObject->CmdLine()->ExecString(Info);
						ActivePanel->Parent()->SetActivePanel(ActivePanel);
					}
					else
					{
						const auto strPath = PointToName(ppanel);

						if (!strPath.empty())
						{
							if (AnotherPanel->GoToFile(strPath))
								AnotherPanel->ProcessKey(Manager::Key(KEY_CTRLPGDN));
						}
					}
				}

				FarChDir(ActivePanel->GetCurDir());

				if (IsPluginPrefixPath(apanel))
				{
					execute_info Info;
					Info.Command = apanel;

					Global->CtrlObject->CmdLine()->ExecString(Info);
				}
				else
				{
					const auto strPath = PointToName(apanel);

					if (!strPath.empty())
					{
						if (ActivePanel->GoToFile(strPath))
							ActivePanel->ProcessKey(Manager::Key(KEY_CTRLPGDN));
					}
				}

				// !!! ВНИМАНИЕ !!!
				// Сначала редравим пассивную панель, а потом активную!
				AnotherPanel->Redraw();
				ActivePanel->Redraw();
			}

			Global->WindowManager->EnterMainLoop();
		}

		TreeList::FlushCache();

		// очистим за собой!
		SetScreen(0,0,ScrX,ScrY,L' ',colors::PaletteColorToFarColor(COL_COMMANDLINEUSERSCREEN));
		console.SetTextAttributes(InitAttributes);
		Global->ScrBuf->ResetLockCount();
		Global->ScrBuf->Flush();

		return 0;
}
Ejemplo n.º 30
0
/*
  InputEvent::processKey(KeyID);
  Process keys normally brought in by hardware or keyboard presses
  Future will also allow for long and double click presses...
  Return = We had a valid key (even if nothing happens because of Bounce)
*/
bool
InputEvents::processKey(unsigned key_code)
{
  return ProcessKey(getModeID(), key_code);
}