OSDN Git Service

android: Initial implementation of socket interface
authorMarcin Kraglak <marcin.kraglak@tieto.com>
Wed, 30 Oct 2013 15:16:33 +0000 (16:16 +0100)
committerJohan Hedberg <johan.hedberg@intel.com>
Thu, 31 Oct 2013 08:30:00 +0000 (10:30 +0200)
Add stub implementation of socket interace on daemon side.

android/main.c
android/socket.c
android/socket.h

index 6ff30a9..2b40621 100644 (file)
@@ -213,6 +213,10 @@ static gboolean cmd_watch_cb(GIOChannel *io, GIOCondition cond,
                bt_hid_handle_cmd(hal_cmd_io, msg->opcode, msg->payload,
                                                                msg->len);
                break;
+       case HAL_SERVICE_ID_SOCK:
+               bt_sock_handle_cmd(hal_cmd_io, msg->opcode, msg->payload,
+                                                               msg->len);
+               break;
        default:
                ipc_send_rsp(hal_cmd_io, msg->service_id, HAL_STATUS_FAILED);
                break;
index 22d2acb..39709cd 100644 (file)
 
 #include "lib/bluetooth.h"
 #include "log.h"
+#include "hal-msg.h"
+#include "hal-ipc.h"
+#include "ipc.h"
 #include "socket.h"
 
+
+static int handle_listen(void *buf)
+{
+       return -1;
+}
+
+static int handle_connect(void *buf)
+{
+       return -1;
+}
+
+void bt_sock_handle_cmd(GIOChannel *io, uint8_t opcode, void *buf,
+                                                       uint16_t len)
+{
+       int fd;
+
+       switch (opcode) {
+       case HAL_OP_SOCK_LISTEN:
+               fd = handle_listen(buf);
+               if (fd < 0)
+                       break;
+
+               ipc_send(io, HAL_SERVICE_ID_SOCK, opcode, 0, NULL, fd);
+               return;
+       case HAL_OP_SOCK_CONNECT:
+               fd = handle_connect(buf);
+               if (fd < 0)
+                       break;
+
+               ipc_send(io, HAL_SERVICE_ID_SOCK, opcode, 0, NULL, fd);
+               return;
+       default:
+               DBG("Unhandled command, opcode 0x%x", opcode);
+               break;
+       }
+
+       ipc_send_rsp(io, HAL_SERVICE_ID_SOCK, HAL_STATUS_FAILED);
+}
+
 bool bt_socket_register(GIOChannel *io, const bdaddr_t *addr)
 {
        DBG("");
index b13e84c..2b3b940 100644 (file)
@@ -21,5 +21,8 @@
  *
  */
 
+void bt_sock_handle_cmd(GIOChannel *io, uint8_t opcode, void *buf,
+                                               uint16_t len);
+
 bool bt_socket_register(GIOChannel *io, const bdaddr_t *addr);
 void bt_socket_unregister(void);