blob: 963071ca8548f3af265b3015141497ac5b86ef7e [file] [log] [blame]
/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef CRAS_BT_ENDPOINT_H_
#define CRAS_BT_ENDPOINT_H_
#include <dbus/dbus.h>
#include <stdint.h>
#include "cras_bt_adapter.h"
struct cras_bt_transport;
struct cras_bt_endpoint {
const char *object_path;
const char *uuid;
uint8_t codec;
int (*get_capabilities)(struct cras_bt_endpoint *endpoint,
void *capabilities, int *len);
int (*select_configuration)(struct cras_bt_endpoint *endpoint,
void *capabilities, int len,
void *configuration);
void (*set_configuration)(struct cras_bt_endpoint *endpoint,
struct cras_bt_transport *transport);
void (*suspend)(struct cras_bt_endpoint *endpoint,
struct cras_bt_transport *transport);
void (*transport_state_changed)(struct cras_bt_endpoint *endpoint,
struct cras_bt_transport *transport);
struct cras_bt_transport *transport;
struct cras_bt_endpoint *prev, *next;
};
int cras_bt_register_endpoint(DBusConnection *conn,
const struct cras_bt_adapter *adapter,
struct cras_bt_endpoint *endpoint);
int cras_bt_unregister_endpoint(DBusConnection *conn,
const struct cras_bt_adapter *adapter,
struct cras_bt_endpoint *endpoint);
int cras_bt_register_endpoints(DBusConnection *conn,
const struct cras_bt_adapter *adapter);
int cras_bt_endpoint_add(DBusConnection *conn,
struct cras_bt_endpoint *endpoint);
void cras_bt_endpoint_rm(DBusConnection *conn,
struct cras_bt_endpoint *endpoint);
void cras_bt_endpoint_reset();
struct cras_bt_endpoint *cras_bt_endpoint_get(const char *object_path);
#endif /* CRAS_BT_ENDPOINT_H_ */