43 CMMADRMAudioPlayer::~CMMADRMAudioPlayer() |
43 CMMADRMAudioPlayer::~CMMADRMAudioPlayer() |
44 { |
44 { |
45 CloseClientUtility(); |
45 CloseClientUtility(); |
46 delete iUtility; |
46 delete iUtility; |
47 |
47 |
48 LOG( EJavaMMAPI, EInfo, "MMA::CMMADRMAudioPlayer::~CMMADRMAudioPlayer "); |
48 LOG(EJavaMMAPI, EInfo, "MMA::CMMADRMAudioPlayer::~CMMADRMAudioPlayer "); |
49 } |
49 } |
50 |
50 |
51 void CMMADRMAudioPlayer::ConstructL(const TDesC& aContentType) |
51 void CMMADRMAudioPlayer::ConstructL(const TDesC& aContentType) |
52 { |
52 { |
53 LOG( EJavaMMAPI, EInfo, "CMMADRMAudioPlayer::ConstructL"); |
53 LOG(EJavaMMAPI, EInfo, "CMMADRMAudioPlayer::ConstructL"); |
54 // Only file based sources are supported with DRM |
54 // Only file based sources are supported with DRM |
55 if (iFileName == KNullDesC) |
55 if (iFileName == KNullDesC) |
56 { |
56 { |
57 User::Leave(KErrNotSupported); |
57 User::Leave(KErrNotSupported); |
58 } |
58 } |
75 } |
75 } |
76 |
76 |
77 |
77 |
78 void CMMADRMAudioPlayer::RealizeL() |
78 void CMMADRMAudioPlayer::RealizeL() |
79 { |
79 { |
80 LOG( EJavaMMAPI, EInfo, "CMMADRMAudioPlayer::RealizeL"); |
80 LOG(EJavaMMAPI, EInfo, "CMMADRMAudioPlayer::RealizeL"); |
81 CMMAPlayer::RealizeL(); |
81 CMMAPlayer::RealizeL(); |
82 } |
82 } |
83 |
83 |
84 void CMMADRMAudioPlayer::PrefetchL() |
84 void CMMADRMAudioPlayer::PrefetchL() |
85 { |
85 { |
86 LOG( EJavaMMAPI, EInfo, "CMMADRMAudioPlayer::PrefetchL"); |
86 LOG(EJavaMMAPI, EInfo, "CMMADRMAudioPlayer::PrefetchL"); |
87 // Prefetch will be completed in init callback |
87 // Prefetch will be completed in init callback |
88 iUtility->OpenFileL(iFileName); |
88 iUtility->OpenFileL(iFileName); |
89 } |
89 } |
90 |
90 |
91 void CMMADRMAudioPlayer::DeallocateL() |
91 void CMMADRMAudioPlayer::DeallocateL() |
92 { |
92 { |
93 LOG( EJavaMMAPI, EInfo, "MMA: CMMAMidiPlayer: DeallocateL +"); |
93 LOG(EJavaMMAPI, EInfo, "MMA: CMMAMidiPlayer: DeallocateL +"); |
94 if (iState == EPrefetched) |
94 if (iState == EPrefetched) |
95 { |
95 { |
96 CloseClientUtility(); |
96 CloseClientUtility(); |
97 ChangeState(ERealized); |
97 ChangeState(ERealized); |
98 } |
98 } |
99 LOG( EJavaMMAPI, EInfo, "MMA: CMMAMidiPlayer: DeallocateL -"); |
99 LOG(EJavaMMAPI, EInfo, "MMA: CMMAMidiPlayer: DeallocateL -"); |
100 } |
100 } |
101 |
101 |
102 void CMMADRMAudioPlayer::StartL() |
102 void CMMADRMAudioPlayer::StartL() |
103 { |
103 { |
104 // start can't be called to not ready player |
104 // start can't be called to not ready player |
160 } |
160 } |
161 } |
161 } |
162 |
162 |
163 void CMMADRMAudioPlayer::SetMediaTimeL(TInt64* aTime) |
163 void CMMADRMAudioPlayer::SetMediaTimeL(TInt64* aTime) |
164 { |
164 { |
165 LOG1( EJavaMMAPI, EInfo, "MMA::CMMADRMAudioPlayer::SetMediaTimeL + aTime: %d", *aTime); |
165 LOG1(EJavaMMAPI, EInfo, "MMA::CMMADRMAudioPlayer::SetMediaTimeL + aTime: %d", *aTime); |
166 // Duration is needed so we do not try to set media time |
166 // Duration is needed so we do not try to set media time |
167 // too far away. If duration is not known, setting media time |
167 // too far away. If duration is not known, setting media time |
168 // is not allowed. |
168 // is not allowed. |
169 |
169 |
170 TInt64 duration = TInt64(KMediaStartTime); |
170 TInt64 duration = TInt64(KMediaStartTime); |
206 GetMediaTime(aTime); |
206 GetMediaTime(aTime); |
207 } |
207 } |
208 |
208 |
209 void CMMADRMAudioPlayer::GetMediaTime(TInt64* aMediaTime) |
209 void CMMADRMAudioPlayer::GetMediaTime(TInt64* aMediaTime) |
210 { |
210 { |
211 LOG1( EJavaMMAPI, EInfo, "MMA::CMMADRMAudioPlayer::GetMediaTime + aMediaTime: %d", *aMediaTime); |
211 LOG1(EJavaMMAPI, EInfo, "MMA::CMMADRMAudioPlayer::GetMediaTime + aMediaTime: %d", *aMediaTime); |
212 TTimeIntervalMicroSeconds position; |
212 TTimeIntervalMicroSeconds position; |
213 TInt64 duration = TInt64(KMediaStartTime); |
213 TInt64 duration = TInt64(KMediaStartTime); |
214 |
214 |
215 // Error code discarded on purpose |
215 // Error code discarded on purpose |
216 GetDuration(&duration); |
216 GetDuration(&duration); |
242 if ((duration > KErrNone) && |
242 if ((duration > KErrNone) && |
243 (*aMediaTime >= duration - KMediaTimeDurationTreshold)) |
243 (*aMediaTime >= duration - KMediaTimeDurationTreshold)) |
244 { |
244 { |
245 *aMediaTime = duration; |
245 *aMediaTime = duration; |
246 } |
246 } |
247 LOG1( EJavaMMAPI, EInfo, "MMA::CMMADRMAudioPlayer::GetMediaTime - aMediaTime: %d", *aMediaTime); |
247 LOG1(EJavaMMAPI, EInfo, "MMA::CMMADRMAudioPlayer::GetMediaTime - aMediaTime: %d", *aMediaTime); |
248 } |
248 } |
249 |
249 |
250 void CMMADRMAudioPlayer::CloseL() |
250 void CMMADRMAudioPlayer::CloseL() |
251 { |
251 { |
252 CMMAPlayer::CloseL(); |
252 CMMAPlayer::CloseL(); |
258 return KMMADRMPlayer; |
258 return KMMADRMPlayer; |
259 } |
259 } |
260 |
260 |
261 void CMMADRMAudioPlayer::PlayCompleteL(TInt aError) |
261 void CMMADRMAudioPlayer::PlayCompleteL(TInt aError) |
262 { |
262 { |
263 ELOG1( EJavaMMAPI, "MMA: CMMADRMAudioPlayer: PlayCompleteL: Error=%d", aError); |
263 ELOG1(EJavaMMAPI, "MMA: CMMADRMAudioPlayer: PlayCompleteL: Error=%d", aError); |
264 TInt64 time; |
264 TInt64 time; |
265 GetDuration(&time); |
265 GetDuration(&time); |
266 |
266 |
267 // Send 'Stopped' only when stop() is called. |
267 // Send 'Stopped' only when stop() is called. |
268 PostLongEvent(CMMAPlayerEvent::EEndOfMedia, time); |
268 PostLongEvent(CMMAPlayerEvent::EEndOfMedia, time); |
288 { |
288 { |
289 // error has occured, setting correct number of |
289 // error has occured, setting correct number of |
290 // repeats for next start |
290 // repeats for next start |
291 SetLoopCount(iRepeatNumberOfTimes); |
291 SetLoopCount(iRepeatNumberOfTimes); |
292 } |
292 } |
293 LOG( EJavaMMAPI, EInfo, "MMA: CMMADRMAudioPlayer: PlayCompleteL -"); |
293 LOG(EJavaMMAPI, EInfo, "MMA: CMMADRMAudioPlayer: PlayCompleteL -"); |
294 } |
294 } |
295 |
295 |
296 void CMMADRMAudioPlayer::MdapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& /*aDuration*/) |
296 void CMMADRMAudioPlayer::MdapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& /*aDuration*/) |
297 { |
297 { |
298 ELOG1( EJavaMMAPI, "MMA::CMMADRMAudioPlayer::MdapcInitComplete: aError = %d", aError); |
298 ELOG1(EJavaMMAPI, "MMA::CMMADRMAudioPlayer::MdapcInitComplete: aError = %d", aError); |
299 if (!aError) |
299 if (!aError) |
300 { |
300 { |
301 ChangeState(EPrefetched); |
301 ChangeState(EPrefetched); |
302 } |
302 } |
303 PostActionCompleted(aError); |
303 PostActionCompleted(aError); |
319 } |
319 } |
320 } |
320 } |
321 |
321 |
322 void CMMADRMAudioPlayer::CloseClientUtility() |
322 void CMMADRMAudioPlayer::CloseClientUtility() |
323 { |
323 { |
324 LOG( EJavaMMAPI, EInfo, "MMA: CMMADRMAudioPlayer: CloseClientUtility +"); |
324 LOG(EJavaMMAPI, EInfo, "MMA: CMMADRMAudioPlayer: CloseClientUtility +"); |
325 if (iUtility) |
325 if (iUtility) |
326 { |
326 { |
327 iUtility->Close(); |
327 iUtility->Close(); |
328 } |
328 } |
329 LOG( EJavaMMAPI, EInfo, "MMA: CMMADRMAudioPlayer: CloseClientUtility -"); |
329 LOG(EJavaMMAPI, EInfo, "MMA: CMMADRMAudioPlayer: CloseClientUtility -"); |
330 } |
330 } |
331 |
331 |
332 void CMMADRMAudioPlayer::ErrorPlaybackComplete(TInt aError) |
332 void CMMADRMAudioPlayer::ErrorPlaybackComplete(TInt aError) |
333 { |
333 { |
334 ELOG1( EJavaMMAPI, "MMA::CMMADRMAudioPlayer::ErrorPlaybackComplete: aError = %d", aError); |
334 ELOG1(EJavaMMAPI, "MMA::CMMADRMAudioPlayer::ErrorPlaybackComplete: aError = %d", aError); |
335 TBuf<KErrorMessageSize> errorMessage; |
335 TBuf<KErrorMessageSize> errorMessage; |
336 errorMessage.Format(KErrDefaultError, aError); |
336 errorMessage.Format(KErrDefaultError, aError); |
337 PostStringEvent(CMMAPlayerEvent::EError, errorMessage); |
337 PostStringEvent(CMMAPlayerEvent::EError, errorMessage); |
338 |
338 |
339 CloseClientUtility(); |
339 CloseClientUtility(); |