summaryrefslogtreecommitdiff
path: root/pjsip-apps/src
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2008-06-13 17:01:46 +0000
committerNanang Izzuddin <nanang@teluu.com>2008-06-13 17:01:46 +0000
commite3399b0820e6010b0a2d423261d54111af63e528 (patch)
tree06cb5c02a9de8441b964f66b8c46da72f936a7b6 /pjsip-apps/src
parentb7242dd477e952452a5c01b8ab49ae7e41463683 (diff)
Ticket #540: Added pjsua-lib feature auto-close sound device on idle and new pjsua option --snd-auto-close=N
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2018 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip-apps/src')
-rw-r--r--pjsip-apps/src/pjsua/pjsua_app.c24
-rw-r--r--pjsip-apps/src/symbian_ua/ua.cpp1
-rw-r--r--pjsip-apps/src/symbian_ua_gui/src/symbian_ua.cpp1
3 files changed, 21 insertions, 5 deletions
diff --git a/pjsip-apps/src/pjsua/pjsua_app.c b/pjsip-apps/src/pjsua/pjsua_app.c
index d80e16c0..17508bc9 100644
--- a/pjsip-apps/src/pjsua/pjsua_app.c
+++ b/pjsip-apps/src/pjsua/pjsua_app.c
@@ -201,6 +201,9 @@ static void usage(void)
puts (" --playback-dev=id Audio playback device ID (default=-1)");
puts (" --capture-lat=N Audio capture latency, in ms (default=10)");
puts (" --playback-lat=N Audio playback latency, in ms (default=100)");
+ puts (" --snd-auto-close=N Auto close audio device when it is idle for N seconds.");
+ puts (" Specify N=-1 (default) to disable this feature.");
+ puts (" Specify N=0 for instant close when unused.");
puts ("");
puts ("Media Transport Options:");
@@ -400,7 +403,7 @@ static pj_status_t parse_args(int argc, char *argv[],
int c;
int option_index;
enum { OPT_CONFIG_FILE=127, OPT_LOG_FILE, OPT_LOG_LEVEL, OPT_APP_LOG_LEVEL,
- OPT_HELP, OPT_VERSION, OPT_NULL_AUDIO,
+ OPT_HELP, OPT_VERSION, OPT_NULL_AUDIO, OPT_SND_AUTO_CLOSE,
OPT_LOCAL_PORT, OPT_IP_ADDR, OPT_PROXY, OPT_OUTBOUND_PROXY,
OPT_REGISTRAR, OPT_REG_TIMEOUT, OPT_PUBLISH, OPT_ID, OPT_CONTACT,
OPT_100REL, OPT_USE_IMS, OPT_REALM, OPT_USERNAME, OPT_PASSWORD,
@@ -514,6 +517,7 @@ static pj_status_t parse_args(int argc, char *argv[],
{ "playback-lat", 1, 0, OPT_PLAYBACK_LAT},
{ "stdout-refresh", 1, 0, OPT_STDOUT_REFRESH},
{ "stdout-refresh-text", 1, 0, OPT_STDOUT_REFRESH_TEXT},
+ { "snd-auto-close", 1, 0, OPT_SND_AUTO_CLOSE},
{ NULL, 0, 0, 0}
};
pj_status_t status;
@@ -1108,6 +1112,10 @@ static pj_status_t parse_args(int argc, char *argv[],
cfg->playback_lat = atoi(pj_optarg);
break;
+ case OPT_SND_AUTO_CLOSE:
+ cfg->media_cfg.snd_auto_close_time = atoi(pj_optarg);
+ break;
+
default:
PJ_LOG(1,(THIS_FILE,
"Argument \"%s\" is not valid. Use --help to see help",
@@ -1504,6 +1512,11 @@ static int write_settings(const struct app_config *config,
pj_ansi_sprintf(line, "--playback-dev %d\n", config->playback_dev);
pj_strcat2(&cfg, line);
}
+ if (config->media_cfg.snd_auto_close_time != -1) {
+ pj_ansi_sprintf(line, "--snd-auto-close %d\n",
+ config->media_cfg.snd_auto_close_time);
+ pj_strcat2(&cfg, line);
+ }
/* Sound device latency */
if (config->capture_lat != PJMEDIA_SND_DEFAULT_REC_LATENCY) {
@@ -3786,10 +3799,11 @@ pj_status_t app_init(int argc, char *argv[])
}
#endif
- if (app_config.capture_dev != PJSUA_INVALID_ID
- || app_config.playback_dev != PJSUA_INVALID_ID) {
- status
- = pjsua_set_snd_dev(app_config.capture_dev, app_config.playback_dev);
+ if (app_config.capture_dev != PJSUA_INVALID_ID ||
+ app_config.playback_dev != PJSUA_INVALID_ID)
+ {
+ status = pjsua_set_snd_dev(app_config.capture_dev,
+ app_config.playback_dev);
if (status != PJ_SUCCESS)
goto on_error;
}
diff --git a/pjsip-apps/src/symbian_ua/ua.cpp b/pjsip-apps/src/symbian_ua/ua.cpp
index 34935a18..5396bc72 100644
--- a/pjsip-apps/src/symbian_ua/ua.cpp
+++ b/pjsip-apps/src/symbian_ua/ua.cpp
@@ -334,6 +334,7 @@ static pj_status_t app_startup()
med_cfg.audio_frame_ptime = 40;
med_cfg.ec_tail_len = 0;
med_cfg.enable_ice = USE_ICE;
+ med_cfg.snd_auto_close_time = 5; // wait for 5 seconds idle before sound dev get auto-closed
status = pjsua_init(&cfg, &log_cfg, &med_cfg);
if (status != PJ_SUCCESS) {
diff --git a/pjsip-apps/src/symbian_ua_gui/src/symbian_ua.cpp b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua.cpp
index bd9864b1..7d693b41 100644
--- a/pjsip-apps/src/symbian_ua_gui/src/symbian_ua.cpp
+++ b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua.cpp
@@ -326,6 +326,7 @@ int symbian_ua_init()
med_cfg.audio_frame_ptime = 40;
med_cfg.ec_tail_len = 0;
med_cfg.enable_ice = USE_ICE;
+ med_cfg.snd_auto_close_time = 5; // wait for 5 seconds idle before sound dev get auto-closed
pjsua_logging_config log_cfg;