mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-05-02 06:46:36 -04:00
bluez5: indicate codec support status for ofono/hsphfpd
Indicates codecs properly.
This commit is contained in:
parent
52fc22a76b
commit
df591638a5
2 changed files with 34 additions and 0 deletions
|
|
@ -1433,11 +1433,25 @@ static int backend_hsphfpd_free(void *data)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int backend_hsphfpd_supports_codec(void *data, struct spa_bt_device *device, unsigned int codec)
|
||||||
|
{
|
||||||
|
struct impl *backend = data;
|
||||||
|
|
||||||
|
switch (codec) {
|
||||||
|
case HFP_AUDIO_CODEC_CVSD:
|
||||||
|
return 1;
|
||||||
|
case HFP_AUDIO_CODEC_MSBC:
|
||||||
|
return backend->msbc_supported;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static const struct spa_bt_backend_implementation backend_impl = {
|
static const struct spa_bt_backend_implementation backend_impl = {
|
||||||
SPA_VERSION_BT_BACKEND_IMPLEMENTATION,
|
SPA_VERSION_BT_BACKEND_IMPLEMENTATION,
|
||||||
.free = backend_hsphfpd_free,
|
.free = backend_hsphfpd_free,
|
||||||
.register_profiles = backend_hsphfpd_register,
|
.register_profiles = backend_hsphfpd_register,
|
||||||
.unregister_profiles = backend_hsphfpd_unregistered,
|
.unregister_profiles = backend_hsphfpd_unregistered,
|
||||||
|
.supports_codec = backend_hsphfpd_supports_codec,
|
||||||
};
|
};
|
||||||
|
|
||||||
static bool is_available(struct impl *backend)
|
static bool is_available(struct impl *backend)
|
||||||
|
|
@ -1492,6 +1506,9 @@ struct spa_bt_backend *backend_hsphfpd_new(struct spa_bt_monitor *monitor,
|
||||||
else
|
else
|
||||||
backend->msbc_supported = false;
|
backend->msbc_supported = false;
|
||||||
|
|
||||||
|
if (!spa_bt_get_hfp_codec(monitor, HFP_AUDIO_CODEC_MSBC))
|
||||||
|
backend->msbc_supported = false;
|
||||||
|
|
||||||
spa_log_topic_init(backend->log, &log_topic);
|
spa_log_topic_init(backend->log, &log_topic);
|
||||||
|
|
||||||
spa_list_init(&backend->endpoint_list);
|
spa_list_init(&backend->endpoint_list);
|
||||||
|
|
|
||||||
|
|
@ -840,10 +840,24 @@ static int backend_ofono_free(void *data)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int backend_ofono_supports_codec(void *data, struct spa_bt_device *device, unsigned int codec)
|
||||||
|
{
|
||||||
|
struct impl *backend = data;
|
||||||
|
|
||||||
|
switch (codec) {
|
||||||
|
case HFP_AUDIO_CODEC_CVSD:
|
||||||
|
return 1;
|
||||||
|
case HFP_AUDIO_CODEC_MSBC:
|
||||||
|
return backend->msbc_supported;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static const struct spa_bt_backend_implementation backend_impl = {
|
static const struct spa_bt_backend_implementation backend_impl = {
|
||||||
SPA_VERSION_BT_BACKEND_IMPLEMENTATION,
|
SPA_VERSION_BT_BACKEND_IMPLEMENTATION,
|
||||||
.free = backend_ofono_free,
|
.free = backend_ofono_free,
|
||||||
.register_profiles = backend_ofono_register,
|
.register_profiles = backend_ofono_register,
|
||||||
|
.supports_codec = backend_ofono_supports_codec,
|
||||||
};
|
};
|
||||||
|
|
||||||
static bool is_available(struct impl *backend)
|
static bool is_available(struct impl *backend)
|
||||||
|
|
@ -897,6 +911,9 @@ struct spa_bt_backend *backend_ofono_new(struct spa_bt_monitor *monitor,
|
||||||
else
|
else
|
||||||
backend->msbc_supported = false;
|
backend->msbc_supported = false;
|
||||||
|
|
||||||
|
if (!spa_bt_get_hfp_codec(monitor, HFP_AUDIO_CODEC_MSBC))
|
||||||
|
backend->msbc_supported = false;
|
||||||
|
|
||||||
spa_log_topic_init(backend->log, &log_topic);
|
spa_log_topic_init(backend->log, &log_topic);
|
||||||
|
|
||||||
backend->timer = spa_loop_utils_add_timer(backend->loop_utils, activate_timer_event, backend);
|
backend->timer = spa_loop_utils_add_timer(backend->loop_utils, activate_timer_event, backend);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue