kerneltest/e32test/digitiser/d_ldddigitisertest.cpp
changeset 271 dc268b18d709
parent 0 a41df078684a
child 291 206a6eaaeb71
equal deleted inserted replaced
269:d57b86b1867a 271:dc268b18d709
    23 const TUint KMaxDeviceNumber=10;
    23 const TUint KMaxDeviceNumber=10;
    24 
    24 
    25 TUint 	gDeviceNumber=1;					// Device Number
    25 TUint 	gDeviceNumber=1;					// Device Number
    26 TUint	gRegisteredDeviceNumber;			// Represents the registered Hal Entry
    26 TUint	gRegisteredDeviceNumber;			// Represents the registered Hal Entry
    27 TBool	gHalEntryRegistered; 				// States HAL Entry Successfully registered or not
    27 TBool	gHalEntryRegistered; 				// States HAL Entry Successfully registered or not
    28 static	TDigitiserInfoV02 gDigitserHalData;	// Buffer to  hold the HAL data; 
    28 static TDigitiserInfoV02 gDigitserHalData;	// Buffer to  hold the HAL data; 
    29 static	TUint gPointer3DSupported;			// States whether the pointing device supports 3rd dimension.
    29 static TUint gPointer3DSupported;			// States whether the pointing device supports 3rd dimension.
       
    30 static TRawEvent   kEvent;	
       
    31 
    30 
    32 
    31 class DDigitiserLDDTestFactory : public DLogicalDevice
    33 class DDigitiserLDDTestFactory : public DLogicalDevice
    32 //
    34 //
    33 // Test LDD factory
    35 // Test LDD factory
    34 //
    36 //
    35 	{
    37 	{
    36 public:
    38 public:
    37 	DDigitiserLDDTestFactory();
       
    38 	virtual TInt Install(); 								//overriding pure virtual
    39 	virtual TInt Install(); 								//overriding pure virtual
    39 	virtual void GetCaps(TDes8& aDes) const;				//overriding pure virtual
    40 	virtual void GetCaps(TDes8& aDes) const;				//overriding pure virtual
    40 	virtual TInt Create(DLogicalChannelBase*& aChannel); 	//overriding pure virtual
    41 	virtual TInt Create(DLogicalChannelBase*& aChannel); 	//overriding pure virtual
    41 	};
    42 	};
    42 
    43 
    48 public:
    49 public:
    49 	virtual ~DDigitiserLDDTestChannel();
    50 	virtual ~DDigitiserLDDTestChannel();
    50 protected:
    51 protected:
    51 	virtual TInt DoCreate(TInt aUnit, const TDesC8* anInfo, const TVersion& aVer);
    52 	virtual TInt DoCreate(TInt aUnit, const TDesC8* anInfo, const TVersion& aVer);
    52 	virtual TInt Request(TInt aReqNo, TAny* a1, TAny* a2);
    53 	virtual TInt Request(TInt aReqNo, TAny* a1, TAny* a2);
    53 	};
    54 	};			
    54 
    55 
    55 // Initialise Digitiser HAL Data
    56 // Initialise Digitiser HAL Data
    56 void initialiseDigitiserHalData()
    57 void initialiseDigitiserHalData()
    57 	{
    58 	{
    58 //  TDigitiserInfoV02 Class Data layout
    59 //  TDigitiserInfoV02 Class Data layout
   148 	{
   149 	{
   149 	return new DDigitiserLDDTestFactory;
   150 	return new DDigitiserLDDTestFactory;
   150 	}
   151 	}
   151 #endif
   152 #endif
   152 
   153 
   153 //
       
   154 // Constructor
       
   155 //
       
   156 DDigitiserLDDTestFactory::DDigitiserLDDTestFactory()
       
   157 	{
       
   158 	}
       
   159 
   154 
   160 TInt DDigitiserLDDTestFactory::Create(DLogicalChannelBase*& aChannel)
   155 TInt DDigitiserLDDTestFactory::Create(DLogicalChannelBase*& aChannel)
   161 	{
   156 	{
   162 //
   157 //
   163 // Create new channel
   158 // Create new channel
   178 // Get capabilities - overriding pure virtual
   173 // Get capabilities - overriding pure virtual
   179 //
   174 //
   180 	{
   175 	{
   181 	}
   176 	}
   182 
   177 
       
   178 
   183 TInt DDigitiserLDDTestChannel::DoCreate(TInt /*aUnit*/, const TDesC8* /*aInfo*/, const TVersion& /*aVer*/)
   179 TInt DDigitiserLDDTestChannel::DoCreate(TInt /*aUnit*/, const TDesC8* /*aInfo*/, const TVersion& /*aVer*/)
   184 //
   180 //
   185 // Create channel
   181 // Create channel
   186 //
   182 //
   187 	{
   183 	{
   196 	}
   192 	}
   197 
   193 
   198 TInt DDigitiserLDDTestChannel::Request(TInt aReqNo, TAny* a1, TAny* /*a2*/)
   194 TInt DDigitiserLDDTestChannel::Request(TInt aReqNo, TAny* a1, TAny* /*a2*/)
   199 	{
   195 	{
   200 	TInt r=KErrNone;
   196 	TInt r=KErrNone;
       
   197 	TUsrEventBuf eventBuf;
       
   198 	TPoint3D point3D;
       
   199 	TPoint   point2D;
       
   200 	TAngle3D angle3D;
       
   201 
   201 	switch(aReqNo)
   202 	switch(aReqNo)
   202 		{
   203 		{
   203 		case (RLddDigitiserTest::EADDHALENTRY):
   204 		case (RLddDigitiserTest::EADDHALENTRY):
   204 #ifndef GRAPHICS_VERSION
   205 #ifndef GRAPHICS_VERSION
   205             NKern::ThreadEnterCS();
   206             NKern::ThreadEnterCS();
   309 			break;
   310 			break;
   310 		case (RLddDigitiserTest::EGET_EPOINTER3DPRESSURESTEP):
   311 		case (RLddDigitiserTest::EGET_EPOINTER3DPRESSURESTEP):
   311 			r=gDigitserHalData.iPressureStep;
   312 			r=gDigitserHalData.iPressureStep;
   312 			break;
   313 			break;
   313 		case (RLddDigitiserTest::ESET_EPOINTER3DPRESSURESTEP):
   314 		case (RLddDigitiserTest::ESET_EPOINTER3DPRESSURESTEP):
   314 			gDigitserHalData.iPressureStep=(TInt)a1;
   315 			gDigitserHalData.iPressureStep=(TInt)a1; 		
   315 			break;
   316 			break;
       
   317 		
       
   318 		//Testing TRawEvents;
       
   319 
       
   320 
       
   321 		case  (RLddDigitiserTest::ESET_TRAWEVENT_EVENTTYPE): 
       
   322 			  kEvent.Set(static_cast<TRawEvent::TType>((TInt)a1));			
       
   323 			  break;
       
   324 
       
   325 		case  (RLddDigitiserTest::EGET_TRAWEVENT_EVENTTYPE):   
       
   326 			    r=kEvent.Type();				 
       
   327 				break;
       
   328 
       
   329 		case  (RLddDigitiserTest::ESET_TRAWEVENT_TILT): 			   
       
   330 			   kumemget32(&eventBuf,a1,sizeof(eventBuf));
       
   331 			   kEvent.SetTilt(static_cast<TRawEvent::TType>(eventBuf().iType),eventBuf().iPhi,eventBuf().iTheta);
       
   332 			   break;
       
   333 
       
   334 				
       
   335 		case  (RLddDigitiserTest::EGET_TRAWEVENT_TILT): 				
       
   336 				angle3D=kEvent.Tilt();
       
   337 				eventBuf().iPhi =	angle3D.iPhi;
       
   338 				eventBuf().iTheta =	angle3D.iTheta;	
       
   339 				kumemput32(a1,&eventBuf,sizeof(eventBuf));
       
   340 			   break;
       
   341 
       
   342 
       
   343 		case  (RLddDigitiserTest::ESET_TEVENT_DNMBR):   
       
   344 			
       
   345 			   kEvent.SetDeviceNumber((TInt)a1);			   
       
   346 			   break;
       
   347 		case  (RLddDigitiserTest::EGET_TEVENT_DNMBR): 
       
   348 				r=kEvent.DeviceNumber();				
       
   349 				break;
       
   350 
       
   351 		case  (RLddDigitiserTest::ESET_TRAWEVENT_ROTATION): 				    			    
       
   352 				kumemget32(&eventBuf,a1,sizeof(eventBuf));
       
   353 				kEvent.SetRotation(static_cast<TRawEvent::TType>(eventBuf().iType),eventBuf().iAlpha);				
       
   354 				break;
       
   355 
       
   356 		case  (RLddDigitiserTest::EGET_TRAWEVENT_ROTATION):  
       
   357 			    r=kEvent.Rotation();				
       
   358 				break;
       
   359 
       
   360 		case  (RLddDigitiserTest::ESET_TRAWEVENT_REPEAT): 
       
   361 			   kumemget32(&eventBuf,a1,sizeof(eventBuf));
       
   362 			   kEvent.SetRepeat(static_cast<TRawEvent::TType>(eventBuf().iType),eventBuf().iScanCode,eventBuf().iRepeats);
       
   363 			   break;
       
   364 
       
   365 		case  (RLddDigitiserTest::EGET_TRAWEVENT_REPEAT): 
       
   366 				r=kEvent.Repeats();
       
   367 				break;
       
   368 	
       
   369 		case  (RLddDigitiserTest::ESET_TRAWEVENT_SCANCODE):				    
       
   370 				kumemget32(&eventBuf,a1,sizeof(eventBuf));
       
   371 				kEvent.Set(static_cast<TRawEvent::TType>(eventBuf().iType),eventBuf().iScanCode);				
       
   372 				break;
       
   373 		case  (RLddDigitiserTest::EGET_TRAWEVENT_SCANCODE): 			 
       
   374 				r=kEvent.ScanCode();				
       
   375 				break;
       
   376 
       
   377 		case  (RLddDigitiserTest::ESET_TRAWEVENT_POS2D):				
       
   378 				kumemget32(&eventBuf,a1,sizeof(eventBuf));
       
   379 				kEvent.Set(static_cast<TRawEvent::TType>(eventBuf().iType),eventBuf().iX,eventBuf().iY);
       
   380 				break;
       
   381 		case  (RLddDigitiserTest::EGET_TRAWEVENT_POS2D): 
       
   382 				point2D=kEvent.Pos();
       
   383 				eventBuf().iX =	point2D.iX;
       
   384 				eventBuf().iY =	point2D.iY;	  			 				
       
   385 				kumemput32(a1,&eventBuf,sizeof(eventBuf));
       
   386 				break;
       
   387 
       
   388 		
       
   389 		case  (RLddDigitiserTest::ESET_TRAWEVENT_PTRNMBR): 
       
   390 				kEvent.SetPointerNumber(static_cast<TUint8>((TInt)a1));		
       
   391 				break;
       
   392 
       
   393 		case  (RLddDigitiserTest::ESET_TRAWEVENT_3DNPTRNMBR):				
       
   394 				kumemget32(&eventBuf,a1,sizeof(eventBuf));
       
   395 				//IMPORT_C void Set (TType aType, TInt aX, TInt aY, TInt aZ, TUint8 aPointerNumbe
       
   396 				kEvent.Set(static_cast<TRawEvent::TType>(eventBuf().iType),eventBuf().iX,eventBuf().iY,eventBuf().iZ,eventBuf().iPointerNumber);
       
   397 				break;
       
   398 		case  (RLddDigitiserTest::EGET_TRAWEVENT_PTRNMBR): 
       
   399 				r=kEvent.PointerNumber();				
       
   400 				break;
       
   401  
       
   402 		case  (RLddDigitiserTest::EGET_TRAWEVENT_TICKS): 
       
   403 				r=kEvent.Ticks();
       
   404 				break;
       
   405 	
       
   406 		case  (RLddDigitiserTest::ESET_TRAWEVENT_TIP): 
       
   407 				kEvent.SetTip(static_cast<TBool>((TInt)a1));			   
       
   408 				break;
       
   409 		case  (RLddDigitiserTest::EGET_TRAWEVENT_TIP):
       
   410 				r=kEvent.IsTip();
       
   411 				break;
       
   412 
       
   413 		case  (RLddDigitiserTest::ESET_TRAWEVENT_POS3D):								
       
   414 			kumemget32(&eventBuf,a1,sizeof(eventBuf));
       
   415 			kEvent.Set(static_cast<TRawEvent::TType>(eventBuf().iType),eventBuf().iX,eventBuf().iY,eventBuf().iZ);
       
   416 			break;
       
   417 			
       
   418 		case  (RLddDigitiserTest::EGET_TRAWEVENT_POS3D):
       
   419 
       
   420 			point3D=kEvent.Pos3D();	
       
   421 			eventBuf().iX =	point3D.iX;
       
   422 			eventBuf().iY =	point3D.iY;	  
       
   423 			eventBuf().iZ =	point3D.iZ;	  			
       
   424 			kumemput32(a1,&eventBuf,sizeof(eventBuf));
       
   425 			break;
       
   426 
       
   427 			
       
   428 		case  (RLddDigitiserTest::ESET_TRAWEVENT_ALL):								
       
   429 			kumemget32(&eventBuf,a1,sizeof(eventBuf));
       
   430 			kEvent.Set(static_cast<TRawEvent::TType>(eventBuf().iType),eventBuf().iX,eventBuf().iY,eventBuf().iZ,eventBuf().iPhi,eventBuf().iTheta,eventBuf().iAlpha);
       
   431 			break;
       
   432 			
   316 		default:
   433 		default:
   317 			r=KErrNotSupported;
   434 			r=KErrNotSupported;
   318 			break;
   435 			break;
   319 		} 
   436 		} 
   320 	return r;
   437 	return r;