android: Add initial skeleton for a2dp in the daemon

This commit is contained in:
Luiz Augusto von Dentz 2013-11-04 12:56:54 +02:00 committed by Johan Hedberg
parent d0682a5f25
commit 5daffcb642
5 changed files with 92 additions and 0 deletions

View File

@ -25,6 +25,7 @@ LOCAL_SRC_FILES := \
hid.c \
socket.c \
ipc.c ipc.h \
a2dp.c \
../src/log.c \
../src/shared/mgmt.c \
../src/shared/util.c \

View File

@ -19,6 +19,7 @@ android_bluetoothd_SOURCES = android/main.c \
android/adapter.h android/adapter.c \
android/hid.h android/hid.c \
android/ipc.h android/ipc.c \
android/a2dp.h android/a2dp.c \
android/socket.h android/socket.c \
btio/btio.h btio/btio.c \
src/sdp-client.h src/sdp-client.c

56
android/a2dp.c Normal file
View File

@ -0,0 +1,56 @@
/*
*
* BlueZ - Bluetooth protocol stack for Linux
*
* Copyright (C) 2013 Intel Corporation. All rights reserved.
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdint.h>
#include <stdbool.h>
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>
#include <glib.h>
#include "lib/bluetooth.h"
#include "log.h"
#include "a2dp.h"
static GIOChannel *notification_io = NULL;
bool bt_a2dp_register(GIOChannel *io, const bdaddr_t *addr)
{
DBG("");
notification_io = g_io_channel_ref(io);
return true;
}
void bt_a2dp_unregister(void)
{
DBG("");
g_io_channel_unref(notification_io);
notification_io = NULL;
}

25
android/a2dp.h Normal file
View File

@ -0,0 +1,25 @@
/*
*
* BlueZ - Bluetooth protocol stack for Linux
*
* Copyright (C) 2013 Intel Corporation. All rights reserved.
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
bool bt_a2dp_register(GIOChannel *io, const bdaddr_t *addr);
void bt_a2dp_unregister(void);

View File

@ -53,6 +53,7 @@
#include "hid.h"
#include "hal-msg.h"
#include "ipc.h"
#include "a2dp.h"
/* TODO: Consider to remove PLATFORM_SDKVERSION check if requirement
* for minimal Android platform version increases. */
@ -100,6 +101,11 @@ static void service_register(void *buf, uint16_t len)
if (!bt_hid_register(hal_notif_io, adapter_bdaddr))
goto error;
break;
case HAL_SERVICE_ID_A2DP:
if (!bt_a2dp_register(hal_notif_io, adapter_bdaddr))
goto error;
break;
default:
DBG("service %u not supported", m->service_id);
@ -134,6 +140,9 @@ static void service_unregister(void *buf, uint16_t len)
case HAL_SERVICE_ID_HIDHOST:
bt_hid_unregister();
break;
case HAL_SERVICE_ID_A2DP:
bt_a2dp_unregister();
break;
default:
/* This would indicate bug in HAL, as unregister should not be
* called in init failed */