Ignore:
Timestamp:
Jun 13, 2008 5:01:46 PM (16 years ago)
Author:
nanang
Message:

Ticket #540: Added pjsua-lib feature auto-close sound device on idle and new pjsua option --snd-auto-close=N

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip-apps/src/pjsua/pjsua_app.c

    r2008 r2018  
    202202    puts  ("  --capture-lat=N     Audio capture latency, in ms (default=10)"); 
    203203    puts  ("  --playback-lat=N    Audio playback latency, in ms (default=100)"); 
     204    puts  ("  --snd-auto-close=N  Auto close audio device when it is idle for N seconds."); 
     205    puts  ("                      Specify N=-1 (default) to disable this feature."); 
     206    puts  ("                      Specify N=0 for instant close when unused."); 
    204207 
    205208    puts  (""); 
     
    401404    int option_index; 
    402405    enum { OPT_CONFIG_FILE=127, OPT_LOG_FILE, OPT_LOG_LEVEL, OPT_APP_LOG_LEVEL,  
    403            OPT_HELP, OPT_VERSION, OPT_NULL_AUDIO,  
     406           OPT_HELP, OPT_VERSION, OPT_NULL_AUDIO, OPT_SND_AUTO_CLOSE, 
    404407           OPT_LOCAL_PORT, OPT_IP_ADDR, OPT_PROXY, OPT_OUTBOUND_PROXY,  
    405408           OPT_REGISTRAR, OPT_REG_TIMEOUT, OPT_PUBLISH, OPT_ID, OPT_CONTACT, 
     
    515518        { "stdout-refresh", 1, 0, OPT_STDOUT_REFRESH}, 
    516519        { "stdout-refresh-text", 1, 0, OPT_STDOUT_REFRESH_TEXT}, 
     520        { "snd-auto-close", 1, 0, OPT_SND_AUTO_CLOSE}, 
    517521        { NULL, 0, 0, 0} 
    518522    }; 
     
    11071111        case OPT_PLAYBACK_LAT: 
    11081112            cfg->playback_lat = atoi(pj_optarg); 
     1113            break; 
     1114 
     1115        case OPT_SND_AUTO_CLOSE: 
     1116            cfg->media_cfg.snd_auto_close_time = atoi(pj_optarg); 
    11091117            break; 
    11101118 
     
    15031511    if (config->playback_dev != PJSUA_INVALID_ID) { 
    15041512        pj_ansi_sprintf(line, "--playback-dev %d\n", config->playback_dev); 
     1513        pj_strcat2(&cfg, line); 
     1514    } 
     1515    if (config->media_cfg.snd_auto_close_time != -1) { 
     1516        pj_ansi_sprintf(line, "--snd-auto-close %d\n",  
     1517                        config->media_cfg.snd_auto_close_time); 
    15051518        pj_strcat2(&cfg, line); 
    15061519    } 
     
    37873800#endif 
    37883801 
    3789     if (app_config.capture_dev != PJSUA_INVALID_ID 
    3790         || app_config.playback_dev != PJSUA_INVALID_ID) { 
    3791         status 
    3792           = pjsua_set_snd_dev(app_config.capture_dev, app_config.playback_dev); 
     3802    if (app_config.capture_dev  != PJSUA_INVALID_ID || 
     3803        app_config.playback_dev != PJSUA_INVALID_ID)  
     3804    { 
     3805        status = pjsua_set_snd_dev(app_config.capture_dev,  
     3806                                   app_config.playback_dev); 
    37933807        if (status != PJ_SUCCESS) 
    37943808            goto on_error; 
Note: See TracChangeset for help on using the changeset viewer.