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 |