Skip navigation.
Home
The QNX Community Portal

View topic - Emitting a Raw pointer Event to Photon.

Emitting a Raw pointer Event to Photon.

Isn't the name clear?

Emitting a Raw pointer Event to Photon.

Postby sheran.vaz » Fri May 22, 2009 11:03 am

I need to send a raw pointer event (Simulating event sent from a touch screen devi-elo driver) to the Photon.

To start with this is what i want to do
I will be sending a raw pointer event with the coordinates of the Launch button of the Qnx Desktop. The photon should recognise and activate the Launch button.

in my code I created a region using PhRegionOpen() and sent the Raw pointer evnet using PhEmit(). The Cursor moves to the required co-ordinate (over the Launch button) but i'm not able activate the Launch button.

Can someone help me? Find the code below for Resolution 1028x768

PhRid_t PRid;
PhRegion_t PRegion;
PhRect_t PRect;

memset(&PRegion, 0, sizeof(PRegion));
memset(&PRect, 0x0, sizeof(PRect));

//Filling up of PhRegion_t structure.
PRegion.events_sense = Ph_EV_SYSTEM | Ph_EV_SERVICE;
PRegion.flags = Ph_FORCE_FRONT | Ph_PTR_REGION;
PRegion.input_group = 1;

//Filling up of PhRect_t structure.
PRect.ul.x = 0;
PRect.ul.y = 0;
PRect.lr.x = 1023;
PRect.lr.y = 767;

PRid = PhRegionOpen(Ph_REGION_EV_SENSE |
Ph_REGION_FLAGS |
Ph_REGION_RECT |
Ph_REGION_INPUT_GROUP,
&PRegion,&PRect,NULL);

and then this is how i emmitted the raw ptr event using the PhEmit()

//Captured data For PhEmit()
PhRawPtrEvent_t PhotonRawPtrEvent;
PhRawPtrCoord_t *ptrCoord;
PhotonRawPtrEvent.msec = 0;
PhotonRawPtrEvent.button_state = 0;
PhotonRawPtrEvent.flags = (char)0;
PhotonRawPtrEvent.raw_flags = (char)0;
PhotonRawPtrEvent.zero = 0;

//BOTTOM LEFT Co-ords
PhotonRawPtrEvent.num_coord = 1;
ptrCoord = PhotonRawPtrEvent.coord;
ptrCoord->x = 25;
ptrCoord->y = 755;
ptrCoord->z = 0;
ptrCoord->dmsec = 0;

//PhEmit() Part
event.type = Ph_EV_RAW;
event.subtype = Ph_EV_RAW_PTR;
event.num_rects = 1;
event.data_len = 20;
event.emitter.rid = PRid;
event.collector.rid = 0;
event.collector.rid = Ph_ROOT_RID;
rect.ul.x = rect.ul.y = 0;
rect.lr.x = rect.lr.y = 0;

PhEmit( &event, &rect, (void *) &PhotonRawPtrEvent);

can anyone help me find what i'm missing? How will the event emmitted in the region i've created can be sent to the region below?
sheran.vaz
Active Member
 
Posts: 98
Joined: Mon May 11, 2009 9:17 am

Return to GUI Programming

Who is online

Users browsing this forum: No registered users and 1 guest