40 iG711DecoderIntfc = NULL; |
40 iG711DecoderIntfc = NULL; |
41 iG729DecoderIntfc = NULL; |
41 iG729DecoderIntfc = NULL; |
42 iIlbcDecoderIntfc = NULL; |
42 iIlbcDecoderIntfc = NULL; |
43 iCallbackError = KErrNone; |
43 iCallbackError = KErrNone; |
44 iAudioOutput = NULL; |
44 iAudioOutput = NULL; |
45 iIsBufferToBeFilledDone = TRUE; |
|
46 } |
45 } |
47 |
46 |
48 /*********************************************************/ |
47 /*********************************************************/ |
49 void DevSoundWrapper::InitializeComplete(TInt aError) |
48 void DevSoundWrapper::InitializeComplete(TInt aError) |
50 { |
49 { |
77 |
76 |
78 if (aBuffer) |
77 if (aBuffer) |
79 { |
78 { |
80 User::RequestComplete(stat, KErrNone); |
79 User::RequestComplete(stat, KErrNone); |
81 iCallbackError = KErrNone; |
80 iCallbackError = KErrNone; |
82 iIsBufferToBeFilledDone = FALSE; |
|
83 } |
81 } |
84 else |
82 else |
85 { |
83 { |
86 User::RequestComplete(stat, KErrNotFound); |
84 User::RequestComplete(stat, KErrNotFound); |
87 iCallbackError = KErrNotFound; |
85 iCallbackError = KErrNotFound; |
93 /***********************************************************/ |
91 /***********************************************************/ |
94 void DevSoundWrapper::PlayError(TInt aError) |
92 void DevSoundWrapper::PlayError(TInt aError) |
95 { |
93 { |
96 TRequestStatus* stat = &(AL->iStatus); |
94 TRequestStatus* stat = &(AL->iStatus); |
97 User::RequestComplete(stat, aError); |
95 User::RequestComplete(stat, aError); |
98 iCallbackError = 0; |
96 iCallbackError = aError; |
99 } |
97 } |
100 /*******************************************************/ |
98 /*******************************************************/ |
101 void DevSoundWrapper::BufferToBeEmptied(CMMFBuffer* /*aBuffer*/) |
99 void DevSoundWrapper::BufferToBeEmptied(CMMFBuffer* /*aBuffer*/) |
102 { |
100 { |
103 |
101 |
244 return ret; |
242 return ret; |
245 } |
243 } |
246 |
244 |
247 /************************************************************/ |
245 /************************************************************/ |
248 |
246 |
249 int pause_devsound(GstDevsoundSink *ds) |
|
250 { |
|
251 TRACE_PRN_FN_ENT; |
|
252 DevSoundWrapper* handle = (DevSoundWrapper*) ds->handle; |
|
253 if(handle->dev_sound->IsResumeSupported()) |
|
254 { |
|
255 handle->dev_sound->Pause(); |
|
256 } |
|
257 else |
|
258 { |
|
259 handle->iSamplesPlayed = handle->dev_sound->SamplesPlayed(); |
|
260 handle->dev_sound->Stop(); |
|
261 } |
|
262 TRACE_PRN_FN_EXT; |
|
263 return 0; |
|
264 } |
|
265 |
|
266 int resume_devsound(GstDevsoundSink *ds) |
|
267 { |
|
268 TRACE_PRN_FN_ENT; |
|
269 DevSoundWrapper* handle = (DevSoundWrapper*) ds->handle; |
|
270 if(handle->dev_sound->IsResumeSupported()) |
|
271 { |
|
272 handle->dev_sound->Resume(); |
|
273 } |
|
274 else |
|
275 { |
|
276 playinit(handle); |
|
277 initproperties(ds); |
|
278 } |
|
279 TRACE_PRN_FN_EXT; |
|
280 return 0; |
|
281 } |
|
282 |
|
283 |
|
284 int close_devsound(GstDevsoundSink *ds) |
247 int close_devsound(GstDevsoundSink *ds) |
285 { |
248 { |
286 TRACE_PRN_FN_ENT; |
249 TRACE_PRN_FN_ENT; |
287 CMMFDevSound *dev_sound = 0; |
|
288 dev_sound = (STATIC_CAST(DevSoundWrapper*, ds->handle))->dev_sound; |
|
289 dev_sound->Stop(); |
|
290 delete dev_sound; |
|
291 |
250 |
292 g_list_foreach(ds->fmt, (GFunc) g_free, NULL); |
251 g_list_foreach(ds->fmt, (GFunc) g_free, NULL); |
293 g_list_free(ds->fmt); |
252 g_list_free(ds->fmt); |
294 ds->fmt = NULL; |
253 ds->fmt = NULL; |
295 delete ds->handle; |
254 delete ds->handle; |
599 |
558 |
600 int get_ds_cb_error(DevSoundWrapper *handle) |
559 int get_ds_cb_error(DevSoundWrapper *handle) |
601 { |
560 { |
602 return handle->iCallbackError; |
561 return handle->iCallbackError; |
603 } |
562 } |
604 |
|
605 #ifdef AV_SYNC |
|
606 gboolean is_timeplayed_supported(DevSoundWrapper *handle) |
|
607 { |
|
608 gboolean retVal = FALSE; |
|
609 if (handle->dev_sound && (handle->dev_sound)->IsGetTimePlayedSupported()) |
|
610 { |
|
611 retVal = TRUE; |
|
612 } |
|
613 return retVal; |
|
614 } |
|
615 #endif /*AV_SYNC*/ |
|
616 |
|
617 /*******************************************************************/ |
563 /*******************************************************************/ |
618 |
564 |
619 int playinit(DevSoundWrapper *handle) |
565 int playinit(DevSoundWrapper *handle) |
620 { |
566 { |
621 TRACE_PRN_FN_ENT; |
567 TRACE_PRN_FN_ENT; |
622 handle->iCallbackError = KErrNone; |
568 |
623 if( handle->iIsBufferToBeFilledDone ) |
569 ((handle)->AL)->InitialiseActiveListener(); |
624 { |
570 handle->eosReceived = false; |
625 ((handle)->AL)->InitialiseActiveListener(); |
571 |
626 handle->eosReceived = false; |
|
627 |
|
628 TRAP(handle->iCallbackError,(handle->dev_sound)->PlayInitL()); |
572 TRAP(handle->iCallbackError,(handle->dev_sound)->PlayInitL()); |
629 if (handle->iCallbackError == KErrNone) |
573 if (handle->iCallbackError == KErrNone) |
630 { |
574 { |
631 ((handle)->AL)->StartActiveScheduler(); |
575 ((handle)->AL)->StartActiveScheduler(); |
632 } |
576 } |
633 } |
|
634 |
|
635 |
577 |
636 TRACE_PRN_IF_ERR(handle->iCallbackError); |
578 TRACE_PRN_IF_ERR(handle->iCallbackError); |
637 TRACE_PRN_FN_EXT; |
579 TRACE_PRN_FN_EXT; |
638 return handle->iCallbackError; |
580 return handle->iCallbackError; |
639 } |
581 } |
771 /*********************************************************/ |
713 /*********************************************************/ |
772 void populateproperties(GstDevsoundSink *ds) |
714 void populateproperties(GstDevsoundSink *ds) |
773 { |
715 { |
774 TRACE_PRN_FN_ENT; |
716 TRACE_PRN_FN_ENT; |
775 DevSoundWrapper* dsPtr = STATIC_CAST(DevSoundWrapper*, ds->handle); |
717 DevSoundWrapper* dsPtr = STATIC_CAST(DevSoundWrapper*, ds->handle); |
776 #ifdef AV_SYNC |
718 ds->samplesplayed = (dsPtr->dev_sound)->SamplesPlayed(); |
777 if (dsPtr->dev_sound->IsGetTimePlayedSupported()) |
|
778 { |
|
779 TTimeIntervalMicroSeconds timePlayedInMS = 0; |
|
780 (dsPtr->dev_sound)->GetTimePlayed(timePlayedInMS); |
|
781 /* store value in nano seconds */ |
|
782 ds->time_or_samples_played = timePlayedInMS.Int64() * 1000; |
|
783 } |
|
784 else |
|
785 { |
|
786 ds->time_or_samples_played += (dsPtr->dev_sound)->SamplesPlayed(); |
|
787 } |
|
788 #endif /*AV_SYNC*/ |
|
789 get_outputdevice(dsPtr,&ds->output); |
719 get_outputdevice(dsPtr,&ds->output); |
790 TRACE_PRN_FN_EXT; |
720 TRACE_PRN_FN_EXT; |
791 } |
721 } |
792 |
722 |
793 void initproperties(GstDevsoundSink* ds) |
723 void initproperties(GstDevsoundSink* ds) |
794 { |
724 { |
795 TRACE_PRN_FN_ENT; |
725 TRACE_PRN_FN_ENT; |
796 DevSoundWrapper* dsPtr= STATIC_CAST(DevSoundWrapper*, ds->handle); |
726 DevSoundWrapper* dsPtr= STATIC_CAST(DevSoundWrapper*, ds->handle); |
797 ds->maxvolume = (dsPtr->dev_sound)->MaxVolume(); |
727 ds->maxvolume = (dsPtr->dev_sound)->MaxVolume(); |
798 ds->volume = (dsPtr->dev_sound)->Volume(); |
728 ds->volume = (dsPtr->dev_sound)->Volume(); |
|
729 framemode_rqrd_for_ec(dsPtr,&ds->framemodereq); |
|
730 get_cng(dsPtr,&ds->g711cng); |
|
731 get_ilbccng(dsPtr,&ds->ilbccng); |
799 TRACE_PRN_FN_EXT; |
732 TRACE_PRN_FN_EXT; |
800 } |
733 } |