Ignore:
Timestamp:
Jul 13, 2011 3:05:22 AM (13 years ago)
Author:
bennylp
Message:

Fixed #1299: New callback to notify that sound device needs to be opened or closed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/branches/projects/2.0-dev/pjsip/src/pjsua-lib/pjsua_media.c

    r3629 r3632  
    377377     * It is idle when there is no port connection in the bridge and 
    378378     * there is no active call. 
     379     * 
     380     * Note: this block is now valid if no snd dev is used because of #1299 
    379381     */ 
    380     if ((pjsua_var.snd_port!=NULL || pjsua_var.null_snd!=NULL) && 
     382    if ((pjsua_var.snd_port!=NULL || pjsua_var.null_snd!=NULL || 
     383            pjsua_var.no_snd) && 
    381384        pjsua_var.snd_idle_timer.id == PJ_FALSE && 
    382385        pjmedia_conf_get_connect_count(pjsua_var.mconf) == 0 && 
     
    24222425                } 
    24232426            } 
     2427        } else if (pjsua_var.no_snd) { 
     2428            if (!pjsua_var.snd_is_on) { 
     2429                pjsua_var.snd_is_on = PJ_TRUE; 
     2430                /* Notify app */ 
     2431                if (pjsua_var.ua_cfg.cb.on_snd_dev_operation) { 
     2432                    (*pjsua_var.ua_cfg.cb.on_snd_dev_operation)(1); 
     2433                } 
     2434            } 
    24242435        } 
    24252436 
     
    24382449                return status; 
    24392450            } 
    2440         } 
    2441  
     2451        } else if (pjsua_var.no_snd && !pjsua_var.snd_is_on) { 
     2452            pjsua_var.snd_is_on = PJ_TRUE; 
     2453            /* Notify app */ 
     2454            if (pjsua_var.ua_cfg.cb.on_snd_dev_operation) { 
     2455                (*pjsua_var.ua_cfg.cb.on_snd_dev_operation)(1); 
     2456            } 
     2457        } 
    24422458    } 
    24432459 
     
    30933109    /* Close existing sound port */ 
    30943110    close_snd_dev(); 
     3111 
     3112    /* Notify app */ 
     3113    if (pjsua_var.ua_cfg.cb.on_snd_dev_operation) { 
     3114        (*pjsua_var.ua_cfg.cb.on_snd_dev_operation)(1); 
     3115    } 
    30953116 
    30963117    /* Create memory pool for sound device. */ 
     
    32303251static void close_snd_dev(void) 
    32313252{ 
     3253    /* Notify app */ 
     3254    if (pjsua_var.snd_is_on && pjsua_var.ua_cfg.cb.on_snd_dev_operation) { 
     3255        (*pjsua_var.ua_cfg.cb.on_snd_dev_operation)(0); 
     3256    } 
     3257 
    32323258    /* Close sound device */ 
    32333259    if (pjsua_var.snd_port) { 
     
    32633289        pj_pool_release(pjsua_var.snd_pool); 
    32643290    pjsua_var.snd_pool = NULL; 
     3291    pjsua_var.snd_is_on = PJ_FALSE; 
    32653292} 
    32663293 
     
    33253352 
    33263353    pjsua_var.no_snd = PJ_FALSE; 
     3354    pjsua_var.snd_is_on = PJ_TRUE; 
    33273355 
    33283356    return PJ_SUCCESS; 
     
    33593387    /* Close existing sound device */ 
    33603388    close_snd_dev(); 
     3389 
     3390    /* Notify app */ 
     3391    if (pjsua_var.ua_cfg.cb.on_snd_dev_operation) { 
     3392        (*pjsua_var.ua_cfg.cb.on_snd_dev_operation)(1); 
     3393    } 
    33613394 
    33623395    /* Create memory pool for sound device. */ 
     
    33893422 
    33903423    pjsua_var.no_snd = PJ_FALSE; 
     3424    pjsua_var.snd_is_on = PJ_TRUE; 
    33913425 
    33923426    return PJ_SUCCESS; 
Note: See TracChangeset for help on using the changeset viewer.