summaryrefslogtreecommitdiff
path: root/pjmedia
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2011-09-08 05:43:54 +0000
committerNanang Izzuddin <nanang@teluu.com>2011-09-08 05:43:54 +0000
commit9c9dc8cc092c30ebee489fecc6579d4608d223e8 (patch)
treebaecabc38e179c3e090aa711a6842fd27fe098e5 /pjmedia
parent20dd9709927975e2ddfc8c9216bcaa8e22b063f0 (diff)
Fixed #1365: Applied volume setting (input & output) when the MDA audio device is started.
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@3744 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia')
-rw-r--r--pjmedia/src/pjmedia-audiodev/symb_mda_dev.cpp24
1 files changed, 21 insertions, 3 deletions
diff --git a/pjmedia/src/pjmedia-audiodev/symb_mda_dev.cpp b/pjmedia/src/pjmedia-audiodev/symb_mda_dev.cpp
index d0e66bdc..6463b9c9 100644
--- a/pjmedia/src/pjmedia-audiodev/symb_mda_dev.cpp
+++ b/pjmedia/src/pjmedia-audiodev/symb_mda_dev.cpp
@@ -405,6 +405,15 @@ void CPjAudioInputEngine::MaiscOpenComplete(TInt aError)
return;
}
+ /* Apply output volume setting if specified */
+ if (parentStrm_->param.flags &
+ PJMEDIA_AUD_DEV_CAP_INPUT_VOLUME_SETTING)
+ {
+ stream_set_cap(&parentStrm_->base,
+ PJMEDIA_AUD_DEV_CAP_INPUT_VOLUME_SETTING,
+ &parentStrm_->param.input_vol);
+ }
+
// set stream priority to normal and time sensitive
iInputStream_->SetPriority(EPriorityNormal,
EMdaPriorityPreferenceTime);
@@ -683,8 +692,17 @@ void CPjAudioOutputEngine::MaoscOpenComplete(TInt aError)
iOutputStream_->SetAudioPropertiesL(iSettings.iSampleRate,
iSettings.iChannels);
- // set volume to 1/2th of stream max volume
- iOutputStream_->SetVolume(iOutputStream_->MaxVolume()/2);
+ /* Apply output volume setting if specified */
+ if (parentStrm_->param.flags &
+ PJMEDIA_AUD_DEV_CAP_OUTPUT_VOLUME_SETTING)
+ {
+ stream_set_cap(&parentStrm_->base,
+ PJMEDIA_AUD_DEV_CAP_OUTPUT_VOLUME_SETTING,
+ &parentStrm_->param.output_vol);
+ } else {
+ // set volume to 1/2th of stream max volume
+ iOutputStream_->SetVolume(iOutputStream_->MaxVolume()/2);
+ }
// set stream priority to normal and time sensitive
iOutputStream_->SetPriority(EPriorityNormal,
@@ -1034,7 +1052,7 @@ static pj_status_t stream_set_cap(pjmedia_aud_stream *s,
}
break;
case PJMEDIA_AUD_DEV_CAP_OUTPUT_VOLUME_SETTING:
- if (strm->param.dir & PJMEDIA_DIR_CAPTURE) {
+ if (strm->param.dir & PJMEDIA_DIR_PLAYBACK) {
PJ_ASSERT_RETURN(strm->out_engine, PJ_EINVAL);
TInt max_vol = strm->out_engine->GetMaxVolume();