예제 #1
0
/**
	获得系统电源状态
*/
int GetPowerStatus()
{
	gPowerStatus.bShutDown = GetWorkStatus();
	gPowerStatus.bPowerType = GetPowerType();
	gPowerStatus.bBatteryStatus = GetBatteryStatus();
	
	//判断是否有报警
	IsLow_Power(&gPowerStatus);
	
	return 0;
}
void CBTControllerServerSession::ServiceL( const RMessage2& aMessage )
    {
    RDebug::Print(_L("CBTControllerServerSession::ServiceL: %d"), aMessage.Function());
    if(aMessage.Function() != ECancelAll)
        iLastFunction = (TServerMessage)aMessage.Function();
    
    switch(aMessage.Function())
        {
        case EStartServer:
            {
            iMessage = aMessage;
            ControllerStart();
            }break;
            
        case EStopServer:
            {
            iMessage = aMessage;
            ControllerStop();
            }break;
            
        case EFindAndConnect:
        	{
        	iMessage = aMessage;
            ControllerDiscover(TControllerDataTypes::ERemoteTypeWii);
        	}break;

        case EDisconnect:
        	{
        	iMessage = aMessage;
        	iController.DisconnectDevice();
        	iMessage.Complete(KErrNone);
        	}break;
        	
        case ESwitchPowerOn:
            {
            iMessage = aMessage;
            SwitchOnPower();
            }break;

        case ELoadKeyConfig:
            {
            iMessage = aMessage;
            iKeyConfigName.Zero();
            iMessage.ReadL(0,iKeyConfigName);
            LoadKeyConfig(iKeyConfigName);
            }break;
            
        case EGetCurrentConfig:
            {
            iMessage = aMessage;
            GetCurrentConfigName();
            }break;
            
        case EControllerType:
            {
            iMessage = aMessage;
            GetControllerType();
            }break;
            
        case EBatteryStatus:
            {
            iMessage = aMessage;
            GetBatteryStatus();
            }break;
            
        case EWiiSpeakerEnabled:
            {
            iMessage = aMessage;
            GetWiiSpeakerStatus();            
            }break;
            
        case ESetWiiSpeakerEnabled:
            {
            iMessage = aMessage;
            TControllerDataTypes::TWiiSpeaker spk;
            TPtr8 desc(reinterpret_cast<TUint8*>(&spk),sizeof(spk),sizeof(spk));
            iMessage.ReadL(0,desc);
            SetWiiSpeakerStatus(spk);
            }break;
            
        case ESetAccelerometerState:
            {
            iMessage = aMessage;
            TBool state;
            TPtr8 desc(reinterpret_cast<TUint8*>(&state),sizeof(state),sizeof(state));
            iMessage.ReadL(0,desc);
            EnableWiiAcc(state);            
            }break;

        case ECancelAll:
            {
            switch(iLastFunction)
                {
                case EDiscoverController:
                    {
                    iController.CancelDiscovery();
                    }break;
                default:
                    break;
                }
            if(!iMessage.IsNull())
                {
                iMessage.Complete(KErrCancel);
                }
            if(!aMessage.IsNull())
                {                      
					if(aMessage != iMessage)
						aMessage.Complete(KErrCancel);
                }
            iLastFunction = ECancelAll;
            }break;
            
        case ELoadConfigByUid:
            {
            iMessage = aMessage;
            TBool load;
            TPtr8 desc(reinterpret_cast<TUint8*>(&load),sizeof(load),sizeof(load));
            iMessage.ReadL(0,desc);
            SetLoadByUid(load);
            }break;
            
        default:
        	{
        	iMessage = aMessage;
        	PanicClient(iMessage,KErrNotSupported);            
        	}break;
        }    
    }