Пример #1
0
/*
 * main button click presse
 */
LOCAL void simButClickPress( void )
{
        /* press */
	kpMgrInfo.kpState.stat.main = 1;
	kpNotifyPdEvent(DE_PDBUT, 0);

        /* release */
	kpMgrInfo.kpState.stat.main = 0;
	kpNotifyPdEvent(DE_PDBUT, 0);

        /* press */
	kpMgrInfo.kpState.stat.main = 1;
	kpNotifyPdEvent(DE_PDBUT, 0);
}
Пример #2
0
/*
 * main button press
 */
LOCAL void simButPress( void )
{
        /* main button press */
	kpMgrInfo.kpState.stat.main = 1;

        /* notify PD event */
	kpNotifyPdEvent(DE_PDBUT, 0);
}
Пример #3
0
/*
 * main button release
 */
LOCAL void simButRelease( void )
{
        /* main button release */
	kpMgrInfo.kpState.stat.main = 0;

        /* notify PD event */
	kpNotifyPdEvent(DE_PDBUT, 0);
}
Пример #4
0
/*
 * PD button up / down, move
 */
LOCAL void iePd( InnerEvent *evt )
{
	InnEvtType	type = evt->type;
	TDEvtTyp	devEvt = 0;
	BOOL		qpress = FALSE;
	UW		nodsp;

	if ( (type & IE_PDMOVE) != 0 ) {
                /* move */
		devEvt = kpPdMoveEvent(evt);
	}
	if ( (type & IE_PDBUT) != 0 ) {
                /* button change */
		devEvt = kpPdButEvent(evt);

                /* is this a quick press? */
		qpress = ( (type & IE_MBUT) == IE_MBUTDOWN
				&& evt->i.pd.stat.o.qpress
				&& kpMgrInfo.pd.pdMode.attr.qpress );
	}

	if ( devEvt != 0 ) {
                /* notify PD event */
		kpNotifyPdEvent(devEvt, nodsp = evt->i.pd.stat.o.nodsp);

		if ( qpress ) {
                        /* quickpress */
			kpMgrInfo.kpState.stat.main = 0;
			kpNotifyPdEvent(TDE_PDBUT, nodsp);

			kpMgrInfo.kpState.stat.main = 1;
			kpNotifyPdEvent(TDE_PDBUT, nodsp);
		}

                /* switch temporary shift or simple lock modes */
		if ( kpChangeShiftLock(evt->type, NoShift) ) {
                        /* notify meta key status change event */
			kpNotifyMetaEvent();
		}
	}
}
Пример #5
0
/*
 * start and stop PD simulation
 */
LOCAL void pdSimToggle( PdSimMode mode )
{
	if ( kpMgrInfo.kpState.stat.pdsim == PdSim_Off ) {
                /* start PD simulation */
		kpMgrInfo.kpState.stat.pdsim = mode;
	} else {
                /* end PD simulation */
		kpMgrInfo.kpState.stat.pdsim = PdSim_Off;
	}

        /* notify PD event */
	kpNotifyPdEvent(DE_PDSTATE, 0);
}
Пример #6
0
/*
 * move PD
 */
LOCAL void simMove( BOOL start )
{
	W	unit = simMoveUnit(start);
	BOOL	move;

        /* relative movement */
	move = kpMovePointer(
		kpMgrInfo.kpState.xpos + kpMgrInfo.pdSimState.x * unit,
		kpMgrInfo.kpState.ypos + kpMgrInfo.pdSimState.y * unit);

	if ( move ) {
                /* notify PD movement event */
		kpNotifyPdEvent(DE_PDMOVE, 0);
	}
}
Пример #7
0
/*
 * set PD range (DN_PDRANGE)
 */
LOCAL ER setPdRange( PdRange *range )
{
	BOOL	move;
	ER	err = E_OK;

        /* parameter check */
	if ( range->xmax < 0 || range->ymax < 0 )
				return E_PAR;

        /* change PD range */
	kpMgrInfo.pd.pdRange = *range;

        /* adjust pointer position */
	move = kpMovePointer(kpMgrInfo.kpState.xpos, kpMgrInfo.kpState.ypos);

	if ( move ) {
                /* notify PD movement event */
		err = kpNotifyPdEvent(DE_PDMOVE, 0);
	}

	return err;
}
Пример #8
0
/*
 * set meta key / button status (DN_KPMETABUT)
 */
LOCAL ER setKpMetaBut( MetaBut meta[2] )
{
const	UW	KBMET =	ES_ALPH|ES_KANA
			|ES_LSHFT|ES_RSHFT|ES_EXT|ES_CMD
			|ES_LLSHFT|ES_LRSHFT|ES_LEXT|ES_LCMD
			|ES_TLSHFT|ES_TRSHFT|ES_TEXT|ES_TCMD
			|ES_HAN|ES_KBSEL;
const	UW	PDBUT =	ES_BUT|ES_BUT2;
const	UW	PDMOV =	ES_NODSP;
const	UW	PDSIM =	ES_PDSIM;
	UW	stat, chg;
	ER	err, error = E_OK;
	union {
		MetaBut	stat;
		UW	uw;
	} u;

	u.stat = kpMgrInfo.kpState.stat;
	stat = (u.uw & *(UW*)&meta[0]) | *(UW*)&meta[1];
	chg = stat ^ u.uw;

	if ( (chg & KBMET) != 0 ) {
                /* change meta key status */
		u.stat = kpMgrInfo.kpState.stat;
		u.uw ^= chg & KBMET;
		kpMgrInfo.kpState.stat = u.stat;

		if ( (chg & (ES_ALPH|ES_KANA)) != 0 ) {
                        /* change keyboard LED */
			err = kpChangeKbInputMode(kpMgrInfo.kpState.stat.mode);
			if ( err < E_OK ) error = err;
		}

		err = kpNotifyMetaEvent();
		if ( err < E_OK ) error = err;
	}

	if ( (chg & (PDBUT|PDMOV)) != 0 ) {
                /* change PD status */
		u.stat = kpMgrInfo.kpState.stat;
		u.uw ^= chg & (PDBUT|PDMOV);
		kpMgrInfo.kpState.stat = u.stat;

		err = kpNotifyPdEvent(
			( (chg & PDBUT) != 0 )? DE_PDBUT: DE_PDMOVE,
			kpMgrInfo.kpState.stat.nodsp);
		if ( err < E_OK ) error = err;
	}

	if ( (chg & PDSIM) != 0 ) {
                /* change PD simulation status */
		u.stat = kpMgrInfo.kpState.stat;
		u.uw ^= chg & PDSIM;
		kpMgrInfo.kpState.stat = u.stat;

		err = kpNotifyPdEvent(DE_PDSTATE,
			kpMgrInfo.kpState.stat.nodsp);
		if ( err < E_OK ) error = err;
	}

	return error;
}