struct avrcp_player *player = target_get_player(session);
uint8_t volume;
- if (!player)
- return;
-
volume = pdu->params[1] & 0x7F;
- player->cb->set_volume(volume, session->dev, player->user_data);
+ /* Always attempt to update the transport volume */
+ media_transport_update_device_volume(session->dev, volume);
+
+ if (player)
+ player->cb->set_volume(volume, session->dev, player->user_data);
}
static void avrcp_status_changed(struct avrcp *session,
volume = pdu->params[0] & 0x7F;
+ /* Always attempt to update the transport volume */
+ media_transport_update_device_volume(session->dev, volume);
+
if (player != NULL)
player->cb->set_volume(volume, session->dev, player->user_data);
static void set_volume(uint8_t volume, struct btd_device *dev, void *user_data)
{
struct media_player *mp = user_data;
- GSList *l;
if (mp->volume == volume)
return;
mp->volume = volume;
-
- for (l = mp->adapter->endpoints; l; l = l->next) {
- struct media_endpoint *endpoint = l->data;
- struct media_transport *transport;
-
- /* Volume is A2DP only */
- if (endpoint->sep == NULL)
- continue;
-
- transport = find_device_transport(endpoint, dev);
- if (transport == NULL)
- continue;
-
- media_transport_update_volume(transport, volume);
- }
}
#ifdef TIZEN_FEATURE_BLUEZ_MODIFY
static uint8_t get_volume(struct btd_device *dev, void *user_data)