54 } |
54 } |
55 |
55 |
56 |
56 |
57 void CMMAStopTimeControl::CStopTimer::RunL() |
57 void CMMAStopTimeControl::CStopTimer::RunL() |
58 { |
58 { |
59 LOG( EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl:CStopTimer:RunL timer triggered"); |
59 LOG(EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl:CStopTimer:RunL timer triggered"); |
60 iControl->StopAtTimeL(); |
60 iControl->StopAtTimeL(); |
61 } |
61 } |
62 |
62 |
63 const TDesC& CMMAStopTimeControl::ClassName() const |
63 const TDesC& CMMAStopTimeControl::ClassName() const |
64 { |
64 { |
111 } |
111 } |
112 |
112 |
113 |
113 |
114 void CMMAStopTimeControl::StopAtTimeL() |
114 void CMMAStopTimeControl::StopAtTimeL() |
115 { |
115 { |
116 LOG( EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl::StopAtTime"); |
116 LOG(EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl::StopAtTime"); |
117 |
117 |
118 // Stop the player only when it's playing |
118 // Stop the player only when it's playing |
119 if (iPlayer->State() == CMMAPlayer::EStarted) |
119 if (iPlayer->State() == CMMAPlayer::EStarted) |
120 { |
120 { |
121 TInt64 time; |
121 TInt64 time; |
122 iPlayer->GetMediaTime(&time); |
122 iPlayer->GetMediaTime(&time); |
123 if (time >= 0 && time < iStopTime) |
123 if (time >= 0 && time < iStopTime) |
124 { |
124 { |
125 LOG1( EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl::StopAtTime - Called %dms too early", |
125 LOG1(EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl::StopAtTime - Called %dms too early", |
126 I64INT((time - iStopTime)/1000)); |
126 I64INT((time - iStopTime)/1000)); |
127 StartTimer(time); |
127 StartTimer(time); |
128 return; |
128 return; |
129 } |
129 } |
130 |
130 |
131 TInt64 stopTime; |
131 TInt64 stopTime; |
132 |
132 |
133 // MediaTime is known |
133 // MediaTime is known |
134 if (time >= 0) |
134 if (time >= 0) |
135 { |
135 { |
136 LOG1( EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl::StopAtTime - called %dms late", I64INT((time - iStopTime)/1000)); |
136 LOG1(EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl::StopAtTime - called %dms late", I64INT((time - iStopTime)/1000)); |
137 stopTime = time; |
137 stopTime = time; |
138 } |
138 } |
139 else |
139 else |
140 { |
140 { |
141 // Use the requested time |
141 // Use the requested time |
169 { |
169 { |
170 iStopTime = aTime; |
170 iStopTime = aTime; |
171 |
171 |
172 if (aTime != iNoTimer) |
172 if (aTime != iNoTimer) |
173 { |
173 { |
174 LOG1( EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl:SetStopTime(%dms)", |
174 LOG1(EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl:SetStopTime(%dms)", |
175 I64INT(aTime / 1000)); |
175 I64INT(aTime / 1000)); |
176 |
176 |
177 if (iPlayer->State() == CMMAPlayer::EStarted) |
177 if (iPlayer->State() == CMMAPlayer::EStarted) |
178 { |
178 { |
179 TInt64 currentTime(0); |
179 TInt64 currentTime(0); |
180 iPlayer->GetMediaTime(¤tTime); |
180 iPlayer->GetMediaTime(¤tTime); |
197 */ |
197 */ |
198 void CMMAStopTimeControl::StartTimer(const TInt64& aCurrentTime) |
198 void CMMAStopTimeControl::StartTimer(const TInt64& aCurrentTime) |
199 { |
199 { |
200 // StopTime is defined |
200 // StopTime is defined |
201 TInt64 time = iStopTime - aCurrentTime; |
201 TInt64 time = iStopTime - aCurrentTime; |
202 LOG1( EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl:StartTimer timer started; time=%dms", |
202 LOG1(EJavaMMAPI, EInfo, "MMA:CMMAStopTimeControl:StartTimer timer started; time=%dms", |
203 I64INT(time / 1000)); |
203 I64INT(time / 1000)); |
204 iTimer->Cancel(); |
204 iTimer->Cancel(); |
205 |
205 |
206 if (time >= 0) |
206 if (time >= 0) |
207 { |
207 { |
208 // Value is too large to represent with TInt |
208 // Value is too large to represent with TInt |