14 * Description: |
14 * Description: |
15 * |
15 * |
16 */ |
16 */ |
17 |
17 |
18 |
18 |
19 // USER INCLUDES |
19 // USER INCLUDES |
20 #include "musengsessiondurationtimer.h" |
20 #include "musengsessiondurationtimer.h" |
21 #include "musengsessiondurationtimerobserver.h" |
21 #include "musengsessiondurationtimerobserver.h" |
22 |
22 |
23 |
23 |
24 |
24 |
25 // ----------------------------------------------------------------------------- |
25 // ----------------------------------------------------------------------------- |
26 // |
26 // |
27 // ----------------------------------------------------------------------------- |
27 // ----------------------------------------------------------------------------- |
28 // |
28 // |
29 CMusEngSessionDurationTimer* CMusEngSessionDurationTimer::NewL( |
29 CMusEngSessionDurationTimer* CMusEngSessionDurationTimer::NewL( |
30 MMusEngSessionDurationTimerObserver& aObserver ) |
30 MMusEngSessionDurationTimerObserver& aObserver ) |
31 { |
31 { |
32 CMusEngSessionDurationTimer* self = |
32 CMusEngSessionDurationTimer* self = |
33 new (ELeave) CMusEngSessionDurationTimer( aObserver ); |
33 new (ELeave) CMusEngSessionDurationTimer( aObserver ); |
34 CleanupStack::PushL( self ); |
34 CleanupStack::PushL( self ); |
35 self->ConstructL(); |
35 self->ConstructL(); |
36 CleanupStack::Pop( self) ; |
36 CleanupStack::Pop( self) ; |
37 return self; |
37 return self; |
38 } |
38 } |
39 |
39 |
40 |
40 |
41 // ----------------------------------------------------------------------------- |
41 // ----------------------------------------------------------------------------- |
42 // |
42 // |
43 // ----------------------------------------------------------------------------- |
43 // ----------------------------------------------------------------------------- |
44 // |
44 // |
45 CMusEngSessionDurationTimer::~CMusEngSessionDurationTimer() |
45 CMusEngSessionDurationTimer::~CMusEngSessionDurationTimer() |
46 { |
|
47 Cancel(); |
|
48 iTimer.Close(); |
|
49 } |
|
50 |
|
51 |
|
52 // ----------------------------------------------------------------------------- |
|
53 // |
|
54 // ----------------------------------------------------------------------------- |
|
55 // |
|
56 void CMusEngSessionDurationTimer::Start(TInt aDelay ) |
|
57 { |
|
58 if ( !IsActive() ) |
|
59 { |
|
60 iTimer.After( iStatus, aDelay ); |
|
61 SetActive(); |
|
62 } |
|
63 |
|
64 } |
|
65 |
|
66 |
|
67 // ----------------------------------------------------------------------------- |
|
68 // |
|
69 // ----------------------------------------------------------------------------- |
|
70 // |
|
71 CMusEngSessionDurationTimer::CMusEngSessionDurationTimer( |
|
72 MMusEngSessionDurationTimerObserver& aObserver ) |
|
73 : CActive( CActive::EPriorityStandard ), |
|
74 iObserver( aObserver) |
|
75 { |
46 { |
76 } |
47 } |
77 |
48 |
78 |
49 |
79 // ----------------------------------------------------------------------------- |
50 // ----------------------------------------------------------------------------- |
80 // |
51 // |
|
52 // ----------------------------------------------------------------------------- |
|
53 // |
|
54 CMusEngSessionDurationTimer::CMusEngSessionDurationTimer( |
|
55 MMusEngSessionDurationTimerObserver& aObserver ) |
|
56 : iObserver( aObserver) |
|
57 { |
|
58 } |
|
59 |
|
60 |
|
61 // ----------------------------------------------------------------------------- |
|
62 // |
81 // ----------------------------------------------------------------------------- |
63 // ----------------------------------------------------------------------------- |
82 // |
64 // |
83 void CMusEngSessionDurationTimer::ConstructL() |
65 void CMusEngSessionDurationTimer::ConstructL() |
84 { |
66 { |
85 CActiveScheduler::Add( this ); |
|
86 User::LeaveIfError( iTimer.CreateLocal() ); |
|
87 } |
67 } |
88 |
68 |
89 |
69 |
90 // ----------------------------------------------------------------------------- |
|
91 // |
|
92 // ----------------------------------------------------------------------------- |
|
93 // |
|
94 void CMusEngSessionDurationTimer::RunL() |
|
95 { |
|
96 if ( iStatus.Int() == KErrNone ) |
|
97 { |
|
98 iObserver.UpdateTimerEvent(); |
|
99 } |
|
100 } |
|
101 |
|
102 |
|
103 // ----------------------------------------------------------------------------- |
|
104 // |
|
105 // ----------------------------------------------------------------------------- |
|
106 // |
|
107 void CMusEngSessionDurationTimer::DoCancel() |
|
108 { |
|
109 iTimer.Cancel(); |
|
110 } |
|
111 |
|
112 |
|