Possible insignificant bug in pcm_bluetooth.c (bluez-utils)

1 <[email protected]>
Newsgroups gmane.linux.bluez.user
Message-ID <[email protected]>
Hello,
 here is question  raised while digging thru bluez-utils source.
Piece from /audio/pcm_bluetooth.c (function bluetooth_parse_config) :

if (strcmp(id, "mode") == 0) {
    if (snd_config_get_string(n, &mode) < 0) {
        SNDERR("Invalid type for %s", id);
        return -EINVAL;
    }

    if (strcmp(pref, "auto") == 0) {
        bt_config->channel_mode = BT_A2DP_CHANNEL_MODE_AUTO;
        bt_config->has_channel_mode = 1;
    } else if (strcmp(pref, "mono") == 0) {
        bt_config->channel_mode = BT_A2DP_CHANNEL_MODE_MONO;
        bt_config->has_channel_mode = 1;
    } else if (strcmp(pref, "dual") == 0) {
        bt_config->channel_mode = BT_A2DP_CHANNEL_MODE_DUAL_CHANNEL;
        bt_config->has_channel_mode = 1;
    } else if (strcmp(pref, "stereo") == 0) {
        bt_config->channel_mode = BT_A2DP_CHANNEL_MODE_STEREO;
        bt_config->has_channel_mode = 1;
    } else if (strcmp(pref, "joint") == 0) {
        bt_config->channel_mode = BT_A2DP_CHANNEL_MODE_JOINT_STEREO;
        bt_config->has_channel_mode = 1;
    }
    continue;
}

if (strcmp(id, "allocation") == 0) {
    if (snd_config_get_string(n, &allocation) < 0) {
        SNDERR("Invalid type for %s", id);
        return -EINVAL;
    }

    if (strcmp(pref, "auto") == 0) {
        bt_config->allocation_method = BT_A2DP_ALLOCATION_AUTO;
        bt_config->has_allocation_method = 1;
    } else if (strcmp(pref, "loudness") == 0) {
        bt_config->allocation_method = BT_A2DP_ALLOCATION_LOUDNESS;
        bt_config->has_allocation_method = 1;
    } else if (strcmp(pref, "snr") == 0) {
        bt_config->allocation_method = BT_A2DP_ALLOCATION_SNR;
        bt_config->has_allocation_method = 1;
    }
    continue;
}

As I understood, bt_config->channel_mode and 
bt_config->allocation_method will never be set properly, because of
wrong variable in strcmp : strcmp(pref,"auto").
If I am right, there must be strcmp(mode,"auto") and 
strcmp(allocation,"auto") respectively.

Further, if it is bug, it is insignificant for now the configuration of 
A2DP (~/.asoundrc) is not fully implemented.
Found this in above file:
    /* FIXME: this needs to be really implemented (take into account 
real asoundrc settings + ALSA hw settings ) once server side sends us
    more than one possible configuration */

And something else: I got choppy sound (it chops every 2 sec) when 
listening my A2DP stereo headset Southwing SA505 (BT dongle ASUS WL-BTD-202,
Ubuntu Gutsy, bluez-3.24). Tried to:
- change configuration in ~/.asoundrc but unfortunately settings for 
A2DP unimplemented .
- changed hcid.conf -> lm accept,master and removed lp rswitch. with no use
Anybody knows what can it be?

Now waiting for new release in hope that A2DP settings will be 
implemented :)


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.