- Timestamp:
- Oct 24, 2011 9:28:13 AM (13 years ago)
- Location:
- pjproject/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk
- Property svn:mergeinfo changed
-
pjproject/trunk/pjmedia/src/pjmedia-audiodev/symb_mda_dev.cpp
r3553 r3841 240 240 TInt lastError_; 241 241 pj_uint32_t timeStamp_; 242 CActiveSchedulerWait startAsw_; 242 243 243 244 // cache variable … … 364 365 iInputStream_->Open(&iStreamSettings); 365 366 367 #if defined(PJMEDIA_AUDIO_DEV_MDA_USE_SYNC_START) && \ 368 PJMEDIA_AUDIO_DEV_MDA_USE_SYNC_START != 0 369 370 startAsw_.Start(); 371 372 #endif 373 366 374 // Success 367 375 PJ_LOG(4,(THIS_FILE, "Sound capture started.")); … … 387 395 } 388 396 397 if (startAsw_.IsStarted()) { 398 startAsw_.AsyncStop(); 399 } 400 389 401 state_ = STATE_INACTIVE; 390 402 } … … 400 412 void CPjAudioInputEngine::MaiscOpenComplete(TInt aError) 401 413 { 414 if (startAsw_.IsStarted()) { 415 startAsw_.AsyncStop(); 416 } 417 402 418 lastError_ = aError; 403 419 if (aError != KErrNone) { 404 420 snd_perror("Error in MaiscOpenComplete()", aError); 405 421 return; 422 } 423 424 /* Apply input volume setting if specified */ 425 if (parentStrm_->param.flags & 426 PJMEDIA_AUD_DEV_CAP_INPUT_VOLUME_SETTING) 427 { 428 stream_set_cap(&parentStrm_->base, 429 PJMEDIA_AUD_DEV_CAP_INPUT_VOLUME_SETTING, 430 &parentStrm_->param.input_vol); 406 431 } 407 432 … … 415 440 if (err2) { 416 441 PJ_LOG(4,(THIS_FILE, "Exception in iInputStream_->ReadL()")); 417 } 442 lastError_ = err2; 443 return; 444 } 445 446 // input stream opened succesfully, set status to Active 447 state_ = STATE_ACTIVE; 418 448 } 419 449 … … 548 578 TInt lastError_; 549 579 unsigned timestamp_; 580 CActiveSchedulerWait startAsw_; 550 581 551 582 CPjAudioOutputEngine(struct mda_stream *parent_strm, … … 639 670 lastError_ = KRequestPending; 640 671 iOutputStream_->Open(&iStreamSettings); 672 673 #if defined(PJMEDIA_AUDIO_DEV_MDA_USE_SYNC_START) && \ 674 PJMEDIA_AUDIO_DEV_MDA_USE_SYNC_START != 0 675 676 startAsw_.Start(); 677 678 #endif 641 679 642 680 // Success … … 663 701 } 664 702 703 if (startAsw_.IsStarted()) { 704 startAsw_.AsyncStop(); 705 } 706 665 707 state_ = STATE_INACTIVE; 666 708 } … … 668 710 void CPjAudioOutputEngine::MaoscOpenComplete(TInt aError) 669 711 { 712 if (startAsw_.IsStarted()) { 713 startAsw_.AsyncStop(); 714 } 715 670 716 lastError_ = aError; 671 717 672 718 if (aError==KErrNone) { 673 // output stream opened succesfully, set status to Active674 state_ = STATE_ACTIVE;675 676 719 // set stream properties, 16bit 8KHz mono 677 720 TMdaAudioDataSettings iSettings; … … 684 727 iSettings.iChannels); 685 728 686 // set volume to 1/2th of stream max volume 687 iOutputStream_->SetVolume(iOutputStream_->MaxVolume()/2); 729 /* Apply output volume setting if specified */ 730 if (parentStrm_->param.flags & 731 PJMEDIA_AUD_DEV_CAP_OUTPUT_VOLUME_SETTING) 732 { 733 stream_set_cap(&parentStrm_->base, 734 PJMEDIA_AUD_DEV_CAP_OUTPUT_VOLUME_SETTING, 735 &parentStrm_->param.output_vol); 736 } else { 737 // set volume to 1/2th of stream max volume 738 iOutputStream_->SetVolume(iOutputStream_->MaxVolume()/2); 739 } 688 740 689 741 // set stream priority to normal and time sensitive … … 719 771 frame_.Set(frameBuf_, frameBufSize_); 720 772 iOutputStream_->WriteL(frame_); 773 774 // output stream opened succesfully, set status to Active 775 state_ = STATE_ACTIVE; 721 776 } else { 722 777 snd_perror("Error in MaoscOpenComplete()", aError); … … 882 937 param->samples_per_frame = af->dev_info.default_samples_per_sec * 20 / 1000; 883 938 param->bits_per_sample = BITS_PER_SAMPLE; 884 param->flags = af->dev_info.caps; 939 // Don't set the flags without specifying the flags value. 940 //param->flags = af->dev_info.caps; 885 941 886 942 return PJ_SUCCESS; … … 956 1012 957 1013 pj_memcpy(pi, &strm->param, sizeof(*pi)); 1014 1015 /* Update the output volume setting */ 1016 if (stream_get_cap(s, PJMEDIA_AUD_DEV_CAP_OUTPUT_VOLUME_SETTING, 1017 &pi->output_vol) == PJ_SUCCESS) 1018 { 1019 pi->flags |= PJMEDIA_AUD_DEV_CAP_OUTPUT_VOLUME_SETTING; 1020 } 1021 1022 /* Update the input volume setting */ 1023 if (stream_get_cap(s, PJMEDIA_AUD_DEV_CAP_INPUT_VOLUME_SETTING, 1024 &pi->input_vol) == PJ_SUCCESS) 1025 { 1026 pi->flags |= PJMEDIA_AUD_DEV_CAP_INPUT_VOLUME_SETTING; 1027 } 958 1028 959 1029 return PJ_SUCCESS; … … 1035 1105 break; 1036 1106 case PJMEDIA_AUD_DEV_CAP_OUTPUT_VOLUME_SETTING: 1037 if (strm->param.dir & PJMEDIA_DIR_ CAPTURE) {1107 if (strm->param.dir & PJMEDIA_DIR_PLAYBACK) { 1038 1108 PJ_ASSERT_RETURN(strm->out_engine, PJ_EINVAL); 1039 1109
Note: See TracChangeset
for help on using the changeset viewer.