亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? event.c

?? uboot for K9 AT91RM9200 學習板
?? C
?? 第 1 頁 / 共 3 頁
字號:
	    else if (EVT.count < EVENTQSIZE) {		/* Add a new joystick movement event */		EVT.oldJoyMove = EVT.freeHead;		memset(&evt,0,sizeof(evt));		evt.what = EVT_JOYMOVE;		evt.message = EVT.joyButState;		evt.where_x = EVT.joyPrev[0];		evt.where_y = EVT.joyPrev[1];		evt.relative_x = EVT.joyPrev[2];		evt.relative_y = EVT.joyPrev[3];		addEvent(&evt);		}	    _EVT_restoreInt(ps);	    }	/* Read the joystick buttons, and post events to reflect the change	 * in state for the joystick buttons.	 */	if (newButState != EVT.joyButState) {	    if (EVT.count < EVENTQSIZE) {		/* Add a new joystick click event */		ps = _EVT_disableInt();		memset(&evt,0,sizeof(evt));		evt.what = EVT_JOYCLICK;		evt.message = newButState;		EVT.evtq[EVT.oldJoyMove].where_x = EVT.joyPrev[0];		EVT.evtq[EVT.oldJoyMove].where_y = EVT.joyPrev[1];		EVT.evtq[EVT.oldJoyMove].relative_x = EVT.joyPrev[2];		EVT.evtq[EVT.oldJoyMove].relative_y = EVT.joyPrev[3];		addEvent(&evt);		_EVT_restoreInt(ps);		}	    EVT.joyButState = newButState;	    }	}}/****************************************************************************DESCRIPTION:Calibrates the joystick upper left positionHEADER:event.hREMARKS:This function can be used to zero in on better joystick calibration factors,which may work better than the default simplistic calibration (which assumesthe joystick is centered when the event library is initialised).To use this function, ask the user to hold the stick in the upper leftposition and then have them press a key or button. and then call thisfunction. This function will then read the joystick and update thecalibration factors.Usually, assuming that the stick was centered when the event library wasinitialized, you really only need to call EVT_joySetLowerRight since theupper left position is usually always 0,0 on most joysticks. However, thesafest procedure is to call all three calibration functions.SEE ALSO:EVT_joySetUpperLeft, EVT_joySetLowerRight, EVT_joyIsPresent****************************************************************************/void EVTAPI EVT_joySetUpperLeft(void){    _EVT_readJoyAxis(EVT_JOY_AXIS_ALL,EVT.joyMin);}/****************************************************************************DESCRIPTION:Calibrates the joystick lower right positionHEADER:event.hREMARKS:This function can be used to zero in on better joystick calibration factors,which may work better than the default simplistic calibration (which assumesthe joystick is centered when the event library is initialised).To use this function, ask the user to hold the stick in the lower rightposition and then have them press a key or button. and then call thisfunction. This function will then read the joystick and update thecalibration factors.Usually, assuming that the stick was centered when the event library wasinitialized, you really only need to call EVT_joySetLowerRight since theupper left position is usually always 0,0 on most joysticks. However, thesafest procedure is to call all three calibration functions.SEE ALSO:EVT_joySetUpperLeft, EVT_joySetCenter, EVT_joyIsPresent****************************************************************************/void EVTAPI EVT_joySetLowerRight(void){    _EVT_readJoyAxis(EVT_JOY_AXIS_ALL,EVT.joyMax);}/****************************************************************************DESCRIPTION:Calibrates the joystick center positionHEADER:event.hREMARKS:This function can be used to zero in on better joystick calibration factors,which may work better than the default simplistic calibration (which assumesthe joystick is centered when the event library is initialised).To use this function, ask the user to hold the stick in the centerposition and then have them press a key or button. and then call thisfunction. This function will then read the joystick and update thecalibration factors.Usually, assuming that the stick was centered when the event library wasinitialized, you really only need to call EVT_joySetLowerRight since theupper left position is usually always 0,0 on most joysticks. However, thesafest procedure is to call all three calibration functions.SEE ALSO:EVT_joySetUpperLeft, EVT_joySetLowerRight, EVT_joySetCenter****************************************************************************/void EVTAPI EVT_joySetCenter(void){    _EVT_readJoyAxis(EVT_JOY_AXIS_ALL,EVT.joyCenter);}#endif/****************************************************************************DESCRIPTION:Posts a user defined event to the event queueHEADER:event.hRETURNS:True if event was posted, false if event queue is full.PARAMETERS:what        - Type code for message to postmessage     - Event specific message to postmodifiers   - Event specific modifier flags to postREMARKS:This routine is used to post user defined events to the event queue.SEE ALSO:EVT_flush, EVT_getNext, EVT_peekNext, EVT_halt****************************************************************************/ibool EVTAPI EVT_post(    ulong which,    ulong what,    ulong message,    ulong modifiers){    event_t evt;    uint    ps;    if (EVT.count < EVENTQSIZE) {	/* Save information in event record */	ps = _EVT_disableInt();	evt.which = which;	evt.when = _EVT_getTicks();	evt.what = what;	evt.message = message;	evt.modifiers = modifiers;	addEvent(&evt);             /* Add to EVT.tail of event queue   */	_EVT_restoreInt(ps);	return true;	}    else	return false;}/****************************************************************************DESCRIPTION:Flushes all events of a specified type from the event queue.PARAMETERS:mask    - Mask specifying the types of events that should be removedHEADER:event.hREMARKS:Flushes (removes) all pending events of the specified type from the eventqueue. You may combine the masks for different event types with a simplelogical OR.SEE ALSO:EVT_getNext, EVT_halt, EVT_peekNext****************************************************************************/void EVTAPI EVT_flush(    ulong mask){    event_t evt;    do {                            /* Flush all events */	EVT_getNext(&evt,mask);	} while (evt.what != EVT_NULLEVT);}/****************************************************************************DESCRIPTION:Halts until and event of the specified type is recieved.HEADER:event.hPARAMETERS:evt     - Pointer tomask    - Mask specifying the types of events that should be removedREMARKS:This functions halts exceution until an event of the specified type isrecieved into the event queue. It does not flush the event queue of eventsbefore performing the busy loop. However this function does throw awayany events other than the ones you have requested via the event mask, toavoid the event queue filling up with unwanted events (like EVT_KEYUP orEVT_MOUSEMOVE events).SEE ALSO:EVT_getNext, EVT_flush, EVT_peekNext****************************************************************************/void EVTAPI EVT_halt(    event_t *evt,    ulong mask){    do {                            /* Wait for an event    */	if (mask & (EVT_JOYEVT))	    EVT_pollJoystick();	EVT_getNext(evt,EVT_EVERYEVT);	} while (!(evt->what & mask));}/****************************************************************************DESCRIPTION:Peeks at the next pending event in the event queue.HEADER:event.hRETURNS:True if an event is pending, false if not.PARAMETERS:evt     - Pointer to structure to return the event info inmask    - Mask specifying the types of events that should be removedREMARKS:Peeks at the next pending event of the specified type in the event queue. Themask parameter is used to specify the type of events to be peeked at, andcan be any logical combination of any of the flags defined by theEVT_eventType enumeration.In contrast to EVT_getNext, the event is not removed from the event queue.You may combine the masks for different event types with a simple logical OR.SEE ALSO:EVT_flush, EVT_getNext, EVT_halt****************************************************************************/ibool EVTAPI EVT_peekNext(    event_t *evt,    ulong mask){    int     evtID;    uint    ps;    if (EVT.heartBeat)	EVT.heartBeat(EVT.heartBeatParams);    _EVT_pumpMessages();                /* Pump all messages into queue */    EVT.mouseMove(EVT.mx,EVT.my);       /* Move the mouse cursor        */    evt->what = EVT_NULLEVT;            /* Default to null event        */    if (EVT.count) {	/* It is possible that an event be posted while we are trying	 * to access the event queue. This would create problems since	 * we may end up with invalid data for our event queue pointers. To	 * alleviate this, all interrupts are suspended while we manipulate	 * our pointers.	 */	ps = _EVT_disableInt();             /* disable interrupts       */	for (evtID = EVT.head; evtID != -1; evtID = EVT.evtq[evtID].next) {	    if (EVT.evtq[evtID].what & mask)		break;                      /* Found an event           */	    }	if (evtID == -1) {	    _EVT_restoreInt(ps);	    return false;                   /* Event was not found      */	    }	*evt = EVT.evtq[evtID];                 /* Return the event         */	_EVT_restoreInt(ps);	if (evt->what & EVT_KEYEVT)	    _EVT_maskKeyCode(evt);	}    return evt->what != EVT_NULLEVT;}/****************************************************************************DESCRIPTION:Retrieves the next pending event from the event queue.PARAMETERS:evt     - Pointer to structure to return the event info inmask    - Mask specifying the types of events that should be removedHEADER:event.hRETURNS:True if an event was pending, false if not.REMARKS:Retrieves the next pending event from the event queue, and stores it in aevent_t structure. The mask parameter is used to specify the type of eventsto be removed, and can be any logical combination of any of the flags definedby the EVT_eventType enumeration.The what field of the event contains the event code of the event that wasextracted. All application specific events should begin with the EVT_USEREVTcode and build from there. Since the event code is stored in an integer,there is a maximum of 32 different event codes that can be distinguished.You can store extra information about the event in the message field todistinguish between events of the same class (for instance the button used ina EVT_MOUSEDOWN event).If an event of the specified type was not in the event queue, the what fieldof the event will be set to NULLEVT, and the return value will return false.Note:   You should /always/ use the EVT_EVERYEVT mask for extracting events	from your main event loop handler. Using a mask for only a specific	type of event for long periods of time will cause the event queue to	fill up with events of the type you are ignoring, eventually causing	the application to hang when the event queue becomes full.SEE ALSO:EVT_flush, EVT_halt, EVT_peekNext****************************************************************************/ibool EVTAPI EVT_getNext(    event_t *evt,    ulong mask){    int     evtID,next,prev;    uint    ps;    if (EVT.heartBeat)	EVT.heartBeat(EVT.heartBeatParams);    _EVT_pumpMessages();                /* Pump all messages into queue */    EVT.mouseMove(EVT.mx,EVT.my);       /* Move the mouse cursor        */    evt->what = EVT_NULLEVT;            /* Default to null event        */    if (EVT.count) {	/* It is possible that an event be posted while we are trying	 * to access the event queue. This would create problems since	 * we may end up with invalid data for our event queue pointers. To	 * alleviate this, all interrupts are suspended while we manipulate	 * our pointers.	 */	ps = _EVT_disableInt();             /* disable interrupts       */	for (evtID = EVT.head; evtID != -1; evtID = EVT.evtq[evtID].next) {	    if (EVT.evtq[evtID].what & mask)		break;                      /* Found an event           */	    }	if (evtID == -1) {	    _EVT_restoreInt(ps);	    return false;                   /* Event was not found      */	    }	next = EVT.evtq[evtID].next;	prev = EVT.evtq[evtID].prev;	if (prev != -1)	    EVT.evtq[prev].next = next;	else	    EVT.head = next;	if (next != -1)	    EVT.evtq[next].prev = prev;	else	    EVT.tail = prev;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人国产一区二区| 亚洲资源中文字幕| 欧美日韩一区小说| 91丨九色丨国产丨porny| 丰满亚洲少妇av| 国产精品夜夜爽| 国产成人一区在线| 99久久精品免费观看| av资源网一区| 在线观看不卡视频| 欧美日韩极品在线观看一区| 欧美日韩精品一二三区| 国产欧美精品一区| 国产精品三级电影| 亚洲精品国产第一综合99久久| 综合激情成人伊人| 一区二区三区在线观看视频| 午夜在线成人av| 久久aⅴ国产欧美74aaa| 成人黄页毛片网站| 欧美性xxxxxxxx| 欧美不卡一区二区三区| 日韩激情中文字幕| 国产精品一区三区| 久久青草欧美一区二区三区| 亚洲欧洲成人av每日更新| 亚洲综合一区在线| 色综合久久久久综合体桃花网| 欧美三级日本三级少妇99| 亚洲欧美日韩中文播放 | 亚洲小少妇裸体bbw| 日韩成人一级片| 大桥未久av一区二区三区中文| 91久久精品一区二区三区| 日韩精品在线看片z| 国产欧美一区二区精品婷婷| 国产精品系列在线播放| 久久婷婷一区二区三区| 亚洲妇熟xx妇色黄| 欧美精品久久99久久在免费线 | 日韩精品亚洲专区| 在线成人av网站| 日本欧美一区二区在线观看| 日韩欧美区一区二| 国内精品伊人久久久久影院对白| 91欧美激情一区二区三区成人| 国产精品久久久久一区二区三区共| 青青草原综合久久大伊人精品| 成人动漫一区二区在线| 日韩伦理免费电影| 欧美日韩一二区| 国产一区二三区| 91麻豆精品91久久久久同性| 亚洲欧美欧美一区二区三区| 色琪琪一区二区三区亚洲区| 午夜久久电影网| 色综合天天综合给合国产| 久久婷婷国产综合精品青草| 成人综合婷婷国产精品久久蜜臀| 亚洲日本一区二区| 67194成人在线观看| 国产精品小仙女| 亚洲一区在线看| 精品国产乱码久久久久久1区2区| 亚洲第一狼人社区| 欧美videofree性高清杂交| 粉嫩13p一区二区三区| 一区二区三区久久久| 欧美成人艳星乳罩| 91麻豆.com| 久久成人免费电影| 亚洲色图色小说| 欧美成人精品二区三区99精品| av毛片久久久久**hd| 麻豆精品视频在线观看视频| 日韩三级av在线播放| 日韩av中文在线观看| 欧美高清在线一区二区| 成人av手机在线观看| 日韩国产精品久久久| 中文欧美字幕免费| 日韩午夜精品视频| 色狠狠综合天天综合综合| 国产一二精品视频| 日韩国产精品久久| 亚洲已满18点击进入久久| 国产日韩综合av| 日韩欧美中文字幕公布| 在线看不卡av| 99视频精品在线| 国产一区二区三区黄视频| 丝袜脚交一区二区| 亚洲精品免费看| 亚洲国产精品精华液2区45| 日韩一区二区免费视频| 欧美日高清视频| 在线亚洲人成电影网站色www| 国产精品一二一区| 久久精品99国产精品| 亚洲18影院在线观看| 亚洲久草在线视频| 亚洲欧美在线另类| 中文字幕精品在线不卡| 久久人人97超碰com| 久久免费国产精品| 精品久久一区二区三区| 日韩三级精品电影久久久 | 日韩欧美国产一区二区在线播放 | 亚洲少妇屁股交4| 国产精品另类一区| 国产日韩欧美麻豆| 国产亚洲欧美中文| 欧洲视频一区二区| 色婷婷综合中文久久一本| 91视视频在线观看入口直接观看www| 成人短视频下载| www.在线欧美| 91女人视频在线观看| 91原创在线视频| 欧美日韩在线播放| 91精品国产一区二区人妖| 成人v精品蜜桃久久一区| 成人综合婷婷国产精品久久免费| 国产91精品久久久久久久网曝门| 成人高清伦理免费影院在线观看| bt欧美亚洲午夜电影天堂| www.综合网.com| 欧美亚洲动漫制服丝袜| 欧美日韩一区在线观看| 欧美电影免费观看高清完整版在线| 日韩精品一区二区三区swag| 久久婷婷色综合| 亚洲三级小视频| 五月婷婷激情综合网| 免费人成黄页网站在线一区二区| 精品一区二区三区蜜桃| 午夜亚洲福利老司机| 日韩福利电影在线| 国产又黄又大久久| 91在线免费看| 欧美精品在线观看一区二区| 日韩三级精品电影久久久| 欧美国产精品v| 亚洲国产精品久久久久秋霞影院 | 欧美成人官网二区| 国产精品丝袜91| 亚洲gay无套男同| 国产一区二区三区观看| 色哟哟日韩精品| 日韩你懂的电影在线观看| 国产精品久久久久久久久图文区| 樱桃国产成人精品视频| 精品伊人久久久久7777人| www.成人网.com| 欧美本精品男人aⅴ天堂| 国产精品久久久久毛片软件| 亚洲bdsm女犯bdsm网站| 国产成人免费视频网站高清观看视频 | 欧美日韩国产免费一区二区| 26uuu另类欧美亚洲曰本| 亚洲精品乱码久久久久| 国产在线麻豆精品观看| 欧美中文字幕一区| 国产精品免费视频观看| 蜜桃av一区二区三区电影| 99re免费视频精品全部| wwwwxxxxx欧美| 性感美女极品91精品| 不卡在线视频中文字幕| 欧美一区二区三区免费观看视频| 亚洲人成伊人成综合网小说| 国产九九视频一区二区三区| 欧美日本韩国一区| 亚洲人成电影网站色mp4| 国产成人在线网站| 欧美一区二区美女| 亚洲制服丝袜av| 99久久精品免费| 久久久影视传媒| 麻豆国产91在线播放| 欧美在线观看视频一区二区| 亚洲天堂网中文字| 成人动漫中文字幕| 亚洲国产精品二十页| 国产在线精品不卡| 欧美大片免费久久精品三p | 欧美日韩国产免费一区二区 | 亚洲免费视频成人| 成人午夜精品一区二区三区| 欧美精品一区二区三区在线 | 亚洲一区二区三区在线播放| 不卡视频在线看| 国产精品污www在线观看| 国产精品原创巨作av| 久久久久国产精品免费免费搜索| 捆绑调教一区二区三区| 日韩欧美一区二区视频| 久99久精品视频免费观看| 精品久久久三级丝袜| 国内精品在线播放|