Ignore:
Timestamp:
Nov 27, 2006 9:54:03 AM (17 years ago)
Author:
bennylp
Message:

Display actual sound device name in conference bridge port zero

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjmedia/src/pjmedia/conference.c

    r796 r833  
    182182    pjmedia_snd_port     *snd_dev_port; /**< Sound device port.             */ 
    183183    pjmedia_port         *master_port;  /**< Port zero's port.              */ 
     184    char                  master_name_buf[80]; /**< Port0 name buffer.      */ 
    184185    pj_mutex_t           *mutex;        /**< Conference mutex.              */ 
    185186    struct conf_port    **ports;        /**< Array of ports.                */ 
     
    391392 
    392393    if ((conf->options & PJMEDIA_CONF_NO_DEVICE) == 0) { 
     394        pjmedia_snd_stream *strm; 
     395        pjmedia_snd_stream_info si; 
    393396 
    394397        /* 
     
    415418        if (status != PJ_SUCCESS) 
    416419            return status; 
     420 
     421        strm = pjmedia_snd_port_get_snd_stream(conf->snd_dev_port); 
     422        status = pjmedia_snd_stream_get_info(strm, &si); 
     423        if (status == PJ_SUCCESS) { 
     424            const pjmedia_snd_dev_info *snd_dev_info; 
     425            if (conf->options & PJMEDIA_CONF_NO_MIC) 
     426                snd_dev_info = pjmedia_snd_get_dev_info(si.play_id); 
     427            else 
     428                snd_dev_info = pjmedia_snd_get_dev_info(si.rec_id); 
     429            pj_strdup2_with_null(pool, &conf_port->name, snd_dev_info->name); 
     430        } 
    417431    } 
    418432 
     
    582596} 
    583597 
     598 
     599/* 
     600 * Set master port name. 
     601 */ 
     602PJ_DEF(pj_status_t) pjmedia_conf_set_port0_name(pjmedia_conf *conf, 
     603                                                const pj_str_t *name) 
     604{ 
     605    int len; 
     606 
     607    /* Sanity check. */ 
     608    PJ_ASSERT_RETURN(conf != NULL && name != NULL, PJ_EINVAL); 
     609 
     610    len = name->slen; 
     611    if (len > sizeof(conf->master_name_buf)) 
     612        len = sizeof(conf->master_name_buf); 
     613     
     614    if (len > 0) pj_memcpy(conf->master_name_buf, name->ptr, len); 
     615 
     616    conf->ports[0]->name.ptr = conf->master_name_buf; 
     617    conf->ports[0]->name.slen = len; 
     618 
     619    if (conf->master_port) 
     620        conf->master_port->info.name = conf->ports[0]->name; 
     621 
     622    return PJ_SUCCESS; 
     623} 
    584624 
    585625/* 
Note: See TracChangeset for help on using the changeset viewer.