if (session->version >= 0x0104)
avrcp_register_notification(session,
AVRCP_EVENT_VOLUME_CHANGED);
+
+ audio_controller_connected(session->dev->btd_dev, 0);
}
static void session_ct_init_browsing(struct avrcp *session)
if (session->version >= 0x0104)
session->supported_events = (1 << AVRCP_EVENT_VOLUME_CHANGED);
+ audio_target_connected(session->dev->btd_dev, 0);
+
player = create_ct_player(session, 0);
if (player == NULL)
return;
if (player != NULL)
player->sessions = g_slist_remove(player->sessions, session);
+ if (session->control_id == 0)
+ audio_controller_connected(session->dev->btd_dev, -EIO);
+
+ audio_controller_disconnected(session->dev->btd_dev, 0);
+
session_destroy(session);
}
g_slist_free_full(session->players, player_destroy);
+ if (session->control_id == 0)
+ audio_target_connected(session->dev->btd_dev, -EIO);
+
+ audio_target_disconnected(session->dev->btd_dev, 0);
+
session_destroy(session);
}
case AVCTP_STATE_DISCONNECTED:
control->session = NULL;
- if (old_state != AVCTP_STATE_CONNECTED) {
- audio_control_connected(dev->btd_dev, -EIO);
- break;
- }
-
- audio_control_disconnected(dev->btd_dev, 0);
-
g_dbus_emit_property_changed(conn, path,
AUDIO_CONTROL_INTERFACE, "Connected");
break;
case AVCTP_STATE_CONNECTED:
- audio_control_connected(dev->btd_dev, 0);
-
g_dbus_emit_property_changed(conn, path,
AUDIO_CONTROL_INTERFACE, "Connected");
break;
device_profile_disconnected(dev, &a2dp_source_profile, err);
}
-void audio_control_connected(struct btd_device *dev, int err)
+void audio_target_connected(struct btd_device *dev, int err)
{
device_profile_connected(dev, &avrcp_target_profile, err);
- device_profile_connected(dev, &avrcp_remote_profile, err);
}
-void audio_control_disconnected(struct btd_device *dev, int err)
+void audio_target_disconnected(struct btd_device *dev, int err)
{
device_profile_disconnected(dev, &avrcp_target_profile, err);
+}
+
+void audio_controller_connected(struct btd_device *dev, int err)
+{
+ device_profile_connected(dev, &avrcp_remote_profile, err);
+}
+
+void audio_controller_disconnected(struct btd_device *dev, int err)
+{
device_profile_disconnected(dev, &avrcp_remote_profile, err);
}
void audio_sink_disconnected(struct btd_device *dev, int err);
void audio_source_connected(struct btd_device *dev, int err);
void audio_source_disconnected(struct btd_device *dev, int err);
-void audio_control_connected(struct btd_device *dev, int err);
-void audio_control_disconnected(struct btd_device *dev, int err);
+void audio_target_connected(struct btd_device *dev, int err);
+void audio_target_disconnected(struct btd_device *dev, int err);
+void audio_controller_connected(struct btd_device *dev, int err);
+void audio_controller_disconnected(struct btd_device *dev, int err);
int audio_manager_init(GKeyFile *config);
void audio_manager_exit(void);