summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua2/media.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip/src/pjsua2/media.cpp')
-rw-r--r--pjsip/src/pjsua2/media.cpp37
1 files changed, 32 insertions, 5 deletions
diff --git a/pjsip/src/pjsua2/media.cpp b/pjsip/src/pjsua2/media.cpp
index 5a4e6ad0..880ade6b 100644
--- a/pjsip/src/pjsua2/media.cpp
+++ b/pjsip/src/pjsua2/media.cpp
@@ -679,17 +679,29 @@ AudioMedia &AudDevManager::getPlaybackDevMedia() throw(Error)
}
void AudDevManager::setCaptureDev(int capture_dev) const throw(Error)
-{
- int playback_dev = getPlaybackDev();
+{
+ pjsua_snd_dev_param param;
+ pjsua_snd_dev_param_default(&param);
+
+ param.capture_dev = capture_dev;
+ param.playback_dev = getPlaybackDev();
- PJSUA2_CHECK_EXPR( pjsua_set_snd_dev(capture_dev, playback_dev) );
+ param.mode = PJSUA_SND_DEV_NO_IMMEDIATE_OPEN;
+
+ PJSUA2_CHECK_EXPR( pjsua_set_snd_dev2(&param) );
}
void AudDevManager::setPlaybackDev(int playback_dev) const throw(Error)
{
- int capture_dev = getCaptureDev();
+ pjsua_snd_dev_param param;
+ pjsua_snd_dev_param_default(&param);
+
+ param.capture_dev = getCaptureDev();
+ param.playback_dev = playback_dev;
+
+ param.mode = PJSUA_SND_DEV_NO_IMMEDIATE_OPEN;
- PJSUA2_CHECK_EXPR( pjsua_set_snd_dev(capture_dev, playback_dev) );
+ PJSUA2_CHECK_EXPR( pjsua_set_snd_dev2(&param) );
}
const AudioDevInfoVector &AudDevManager::enumDev() throw(Error)
@@ -720,6 +732,21 @@ MediaPort *AudDevManager::setNoDev()
return (MediaPort*)pjsua_set_no_snd_dev();
}
+void AudDevManager::setSndDevMode(unsigned mode) const throw(Error)
+{
+ int capture_dev = 0, playback_dev = 0;
+ pjsua_snd_dev_param param;
+ pj_status_t status = pjsua_get_snd_dev(&capture_dev, &playback_dev);
+ if (status != PJ_SUCCESS) {
+ PJSUA2_RAISE_ERROR2(status, "AudDevManager::setSndDevMode()");
+ }
+ pjsua_snd_dev_param_default(&param);
+ param.capture_dev = capture_dev;
+ param.playback_dev = playback_dev;
+ param.mode = mode;
+ PJSUA2_CHECK_EXPR( pjsua_set_snd_dev2(&param) );
+}
+
void AudDevManager::setEcOptions(unsigned tail_msec,
unsigned options) throw(Error)
{