main.c revision 29efa57d5a27b0cf5997381053be9cc48b2c2e80
1c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann/* 2c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * 3c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * BlueZ - Bluetooth protocol stack for Linux 4c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * 5e823c15e43a6f924779e466d434c51157002d9eeMarcel Holtmann * Copyright (C) 2004-2008 Marcel Holtmann <marcel@holtmann.org> 6c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * 7c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * 8c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * This program is free software; you can redistribute it and/or modify 9c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * it under the terms of the GNU General Public License as published by 10c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * the Free Software Foundation; either version 2 of the License, or 11c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * (at your option) any later version. 12c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * 13c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * This program is distributed in the hope that it will be useful, 14c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * but WITHOUT ANY WARRANTY; without even the implied warranty of 15c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * GNU General Public License for more details. 17c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * 18c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * You should have received a copy of the GNU General Public License 19c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * along with this program; if not, write to the Free Software 20c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 21c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann * 22c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann */ 23c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann 24c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann#ifdef HAVE_CONFIG_H 25c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann#include <config.h> 26c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann#endif 27c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann 28c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann#include <errno.h> 29c97480f11bdfdc3cbb867b8127074bcb6b047024Marcel Holtmann 303eb0a5cd951b680c89f92bce6dddce2da2539af0Johan Hedberg#include <dbus/dbus.h> 313eb0a5cd951b680c89f92bce6dddce2da2539af0Johan Hedberg 3229efa57d5a27b0cf5997381053be9cc48b2c2e80Marcel Holtmann#include "plugin.h" 333eb0a5cd951b680c89f92bce6dddce2da2539af0Johan Hedberg#include "dbus.h" 3474b978057e7b3f8cad2952c0fe50a17a118339adMarcel Holtmann#include "manager.h" 353eb0a5cd951b680c89f92bce6dddce2da2539af0Johan Hedberg 3629efa57d5a27b0cf5997381053be9cc48b2c2e80Marcel Holtmannstatic DBusConnection *conn; 37c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann 3829efa57d5a27b0cf5997381053be9cc48b2c2e80Marcel Holtmannstatic int input_init(void) 39c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann{ 4029efa57d5a27b0cf5997381053be9cc48b2c2e80Marcel Holtmann conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL); 4129efa57d5a27b0cf5997381053be9cc48b2c2e80Marcel Holtmann if (conn == NULL) 4229efa57d5a27b0cf5997381053be9cc48b2c2e80Marcel Holtmann return -EIO; 433eb0a5cd951b680c89f92bce6dddce2da2539af0Johan Hedberg 4429efa57d5a27b0cf5997381053be9cc48b2c2e80Marcel Holtmann if (input_manager_init(conn) < 0) { 4540ebcf393b790a4e6553e1314b29f0f34b3377a3Marcel Holtmann dbus_connection_unref(conn); 4629efa57d5a27b0cf5997381053be9cc48b2c2e80Marcel Holtmann return -EIO; 473eb0a5cd951b680c89f92bce6dddce2da2539af0Johan Hedberg } 483eb0a5cd951b680c89f92bce6dddce2da2539af0Johan Hedberg 4929efa57d5a27b0cf5997381053be9cc48b2c2e80Marcel Holtmann register_external_service(conn, "input", "Input service", ""); 50398f6814486536e5906c3723f23cdae9e3c4642aMarcel Holtmann 5129efa57d5a27b0cf5997381053be9cc48b2c2e80Marcel Holtmann return 0; 5229efa57d5a27b0cf5997381053be9cc48b2c2e80Marcel Holtmann} 533eb0a5cd951b680c89f92bce6dddce2da2539af0Johan Hedberg 5429efa57d5a27b0cf5997381053be9cc48b2c2e80Marcel Holtmannstatic void input_exit(void) 5529efa57d5a27b0cf5997381053be9cc48b2c2e80Marcel Holtmann{ 5629efa57d5a27b0cf5997381053be9cc48b2c2e80Marcel Holtmann input_manager_exit(); 57c6cd1ad500588247d4293b96db66d7a140ee81ecClaudio Takahasi 5840ebcf393b790a4e6553e1314b29f0f34b3377a3Marcel Holtmann dbus_connection_unref(conn); 59c761480865c6b65e370e2bba750c86c226a7fc3fMarcel Holtmann} 6029efa57d5a27b0cf5997381053be9cc48b2c2e80Marcel Holtmann 6129efa57d5a27b0cf5997381053be9cc48b2c2e80Marcel HoltmannBLUETOOTH_PLUGIN_DEFINE("input", input_init, input_exit) 62