src/hbcore/core/hbsensornotifyhandler_p.cpp
changeset 5 627c4a0fd0e7
parent 1 f7ac710697a9
child 28 b7da29130b0e
equal deleted inserted replaced
3:11d3954df52a 5:627c4a0fd0e7
    21 ** If you have questions regarding the use of this file, please contact
    21 ** If you have questions regarding the use of this file, please contact
    22 ** Nokia at developer.feedback@nokia.com.
    22 ** Nokia at developer.feedback@nokia.com.
    23 **
    23 **
    24 ****************************************************************************/
    24 ****************************************************************************/
    25 
    25 
    26 //These active objects observe the changing of the sensor cenrep value
    26 // These active objects observe the changing of the sensor cenrep value
    27 //and notify the sensorlistener when the change has occured
    27 // and notify the sensorlistener when the change has ocurred.
    28 
    28 
    29 #include "hbsensornotifyhandler_p.h"
    29 #include "hbsensornotifyhandler_p.h"
    30 #include "hbcommoncrkeys.h"
    30 #include "hbcommoncrkeys.h"
    31 #include <centralrepository.h>
    31 #include <centralrepository.h>
    32 #include <QtGlobal>
    32 #include <QtGlobal>
    33 
    33 
    34  HbSensorNotifyHandler* HbSensorNotifyHandler::NewL(HbSensorListener& aObserver)
    34 HbSensorNotifyHandler *HbSensorNotifyHandler::NewL(HbSensorListener &aObserver)
    35  {
    35 {
    36      HbSensorNotifyHandler* self = new (ELeave) HbSensorNotifyHandler(aObserver);
    36     HbSensorNotifyHandler *self = new(ELeave) HbSensorNotifyHandler(aObserver);
    37      CleanupStack::PushL(self);                 
    37     CleanupStack::PushL(self);
    38      self->ConstructL();
    38     self->ConstructL();
    39      CleanupStack::Pop();
    39     CleanupStack::Pop();
    40      return self;
    40     return self;
    41  }
    41 }
    42 
    42 
    43  HbSensorNotifyHandler::HbSensorNotifyHandler(HbSensorListener& aObserver)
    43 HbSensorNotifyHandler::HbSensorNotifyHandler(HbSensorListener &aObserver)
    44   : CActive(EPriorityStandard), mObserver(aObserver)
    44     : CActive(EPriorityStandard), mObserver(aObserver)
    45  {
    45 {
    46  }
    46 }
    47 
    47 
    48  void HbSensorNotifyHandler::ConstructL()
    48 void HbSensorNotifyHandler::ConstructL()
    49  {
    49 {
    50      TRAPD(err, mRepository = CRepository::NewL(KHbSensorCenrepUid));
    50     TRAPD(err, mRepository = CRepository::NewL(KHbSensorCenrepUid));
    51      if (err) {
    51     if (err) {
    52          qWarning( "mRepository::NewL fails, error code = %d", err );
    52         qWarning("mRepository::NewL fails, error code = %d", err);
    53      }     
    53     }
    54      CActiveScheduler::Add(this);
    54     CActiveScheduler::Add(this);
    55  }
    55 }
    56 
    56 
    57  HbSensorNotifyHandler::~HbSensorNotifyHandler()
    57 HbSensorNotifyHandler::~HbSensorNotifyHandler()
    58  {
    58 {
    59      Cancel(); //first cancel because iRepository is used there
    59     Cancel(); //first cancel because iRepository is used there
    60      delete mRepository;
    60     delete mRepository;
    61  }
    61 }
    62 
    62 
    63  void HbSensorNotifyHandler::startObservingL()
    63 void HbSensorNotifyHandler::startObservingL()
    64  {
    64 {
    65      if (IsActive()) {
    65     if (IsActive()) {
    66          return; //do nothing if allready observing
    66         return; // do nothing if already observing
    67      }
    67     }
    68      User::LeaveIfError(mRepository->NotifyRequest(KHbSensorCenrepKey, iStatus));
    68     User::LeaveIfError(mRepository->NotifyRequest(KHbSensorCenrepKey, iStatus));
    69      SetActive();
    69     SetActive();
    70  }
    70 }
    71  
       
    72  void HbSensorNotifyHandler::stopObserving()
       
    73  {
       
    74      Cancel();
       
    75  }
       
    76 
    71 
    77  void HbSensorNotifyHandler::DoCancel()
    72 void HbSensorNotifyHandler::stopObserving()
    78  {
    73 {
    79      mRepository->NotifyCancel(KHbSensorCenrepKey);
    74     Cancel();
    80  }
    75 }
    81 
    76 
    82  void HbSensorNotifyHandler::RunL()
    77 void HbSensorNotifyHandler::DoCancel()
    83  {
    78 {
    84      TInt value = 0;
    79     mRepository->NotifyCancel(KHbSensorCenrepKey);
    85      TInt error = mRepository->Get(KHbSensorCenrepKey, value);
    80 }
    86      if (error == KErrNone) {
    81 
       
    82 void HbSensorNotifyHandler::RunL()
       
    83 {
       
    84     TInt value = 0;
       
    85     TInt error = mRepository->Get(KHbSensorCenrepKey, value);
       
    86     if (error == KErrNone) {
    87         mObserver.cenrepValueChanged(value);
    87         mObserver.cenrepValueChanged(value);
    88      }
    88     }
    89      // Re-subscribe
    89     // Re-subscribe
    90      error = mRepository->NotifyRequest(KHbSensorCenrepKey, iStatus);
    90     error = mRepository->NotifyRequest(KHbSensorCenrepKey, iStatus);
    91      if (error == KErrNone) {
    91     if (error == KErrNone) {
    92          SetActive();
    92         SetActive();
    93      }
    93     }
    94  }
    94 }
    95  
    95