char *endpoint;
a2dp_codec = pa_bluetooth_a2dp_codec_iter(i);
+ if (!a2dp_codec->can_be_supported())
+ continue;
+
codec_id = a2dp_codec->id.codec_id;
capabilities_size = a2dp_codec->fill_capabilities(capabilities);
pa_assert(capabilities_size != 0);
count = pa_bluetooth_a2dp_codec_count();
for (i = 0; i < count; i++) {
a2dp_codec = pa_bluetooth_a2dp_codec_iter(i);
+ if (!a2dp_codec->can_be_supported())
+ continue;
endpoint = pa_sprintf_malloc("%s/%s", A2DP_SINK_ENDPOINT, a2dp_codec->name);
endpoint_init(y, endpoint);
for (i = 0; i < count; i++) {
a2dp_codec = pa_bluetooth_a2dp_codec_iter(i);
+ if (!a2dp_codec->can_be_supported())
+ continue;
+
endpoint = pa_sprintf_malloc("%s/%s", A2DP_SINK_ENDPOINT, a2dp_codec->name);
endpoint_done(y, endpoint);
pa_xfree(endpoint);
a2dp_codec = pa_bluetooth_a2dp_codec_iter(i);
- if (key->codec_id == a2dp_codec->id.codec_id && key->vendor_id == a2dp_codec->id.vendor_id
- && key->vendor_codec_id == a2dp_codec->id.vendor_codec_id) {
- pa_message_params_begin_list(param);
+ if (memcmp(key, &a2dp_codec->id, sizeof(pa_a2dp_codec_id)) == 0) {
+ if (a2dp_codec->can_be_supported()) {
+ pa_message_params_begin_list(param);
- pa_message_params_write_string(param, a2dp_codec->name);
- pa_message_params_write_string(param, a2dp_codec->description);
+ pa_message_params_write_string(param, a2dp_codec->name);
+ pa_message_params_write_string(param, a2dp_codec->description);
- pa_message_params_end_list(param);
+ pa_message_params_end_list(param);
+ }
}
}
}
return -PA_ERR_INVALID;
}
+ if (!codec->can_be_supported()) {
+ pa_log_info("Codec not found on system");
+ return -PA_ERR_NOTSUPPORTED;
+ }
+
is_a2dp_sink = u->profile == PA_BLUETOOTH_PROFILE_A2DP_SINK;
/*