summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlok Barsode <alok.barsode@azingo.com>2008-07-25 21:35:36 +0530
committerLuiz Augusto von Dentz <luiz.dentz@indt.org.br>2008-07-29 10:53:46 -0300
commit490926952610cc3415335871d3a8a60a7566451b (patch)
tree44fee3336f19c335e6bb0b480ae29080aabdac39
parent1946813bd002a64a37feb7044d7b1eb88992c2f6 (diff)
Adding adapter_set_scan_mode and adapter_get_scan_mode.
Signed-off-by: Alok Barsode <alok.barsode@azingo.com>
-rw-r--r--hcid/adapter.c25
-rw-r--r--hcid/adapter.h4
-rw-r--r--hcid/dbus-hci.c8
3 files changed, 26 insertions, 11 deletions
diff --git a/hcid/adapter.c b/hcid/adapter.c
index 32b9039f..cb2eba0a 100644
--- a/hcid/adapter.c
+++ b/hcid/adapter.c
@@ -368,7 +368,7 @@ static DBusMessage *set_mode(DBusConnection *conn, DBusMessage *msg,
{
struct adapter *adapter = data;
uint8_t scan_enable;
- uint8_t current_scan = adapter->scan_enable;
+ uint8_t current_scan = adapter->scan_mode;
bdaddr_t local;
gboolean limited;
int err, dd;
@@ -560,7 +560,7 @@ static DBusMessage *set_discoverable_timeout(DBusConnection *conn,
adapter->discov_timeout_id = 0;
}
- if ((timeout != 0) && (adapter->scan_enable & SCAN_INQUIRY))
+ if ((timeout != 0) && (adapter->scan_mode & SCAN_INQUIRY))
adapter->discov_timeout_id = g_timeout_add(timeout * 1000,
discov_timeout_handler,
adapter);
@@ -2223,9 +2223,9 @@ static void adapter_up(struct adapter *adapter, int dd)
adapter->discov_timeout = get_discoverable_timeout(adapter->dev_id);
adapter->discov_type = DISCOVER_TYPE_NONE;
- adapter->scan_enable = get_startup_scan(adapter->dev_id);
+ adapter->scan_mode = get_startup_scan(adapter->dev_id);
hci_send_cmd(dd, OGF_HOST_CTL, OCF_WRITE_SCAN_ENABLE,
- 1, &adapter->scan_enable);
+ 1, &adapter->scan_mode);
adapter->mode = get_startup_mode(adapter->dev_id);
if (adapter->mode == MODE_LIMITED)
@@ -2474,7 +2474,7 @@ int adapter_stop(struct adapter *adapter)
DBUS_TYPE_STRING, &mode);
adapter->up = 0;
- adapter->scan_enable = SCAN_DISABLED;
+ adapter->scan_mode = SCAN_DISABLED;
adapter->mode = MODE_OFF;
adapter->discov_active = 0;
adapter->pdiscov_active = 0;
@@ -2597,7 +2597,7 @@ gboolean discov_timeout_handler(void *data)
struct adapter *adapter = data;
struct hci_request rq;
int dd;
- uint8_t scan_enable = adapter->scan_enable;
+ uint8_t scan_enable = adapter->scan_mode;
uint8_t status = 0;
gboolean retval = TRUE;
uint16_t dev_id = adapter->dev_id;
@@ -2665,3 +2665,16 @@ void adapter_remove_discov_timeout(struct adapter *adapter)
g_source_remove(adapter->discov_timeout_id);
adapter->discov_timeout_id = 0;
}
+
+void adapter_set_scan_mode(struct adapter *adapter, uint8_t scan_mode)
+{
+ if (!adapter)
+ return;
+
+ adapter->scan_mode = scan_mode;
+}
+
+uint8_t adapter_get_scan_mode(struct adapter *adapter)
+{
+ return adapter->scan_mode;
+}
diff --git a/hcid/adapter.h b/hcid/adapter.h
index 98eaf8fe..27da5cfa 100644
--- a/hcid/adapter.h
+++ b/hcid/adapter.h
@@ -105,7 +105,7 @@ struct adapter {
char address[18]; /* adapter Bluetooth Address */
guint discov_timeout_id; /* discoverable timeout id */
uint32_t discov_timeout; /* discoverable time(msec) */
- uint8_t scan_enable; /* scan mode: SCAN_DISABLED, SCAN_PAGE, SCAN_INQUIRY */
+ uint8_t scan_mode; /* scan mode: SCAN_DISABLED, SCAN_PAGE, SCAN_INQUIRY */
uint8_t mode; /* off, connectable, discoverable, limited */
uint8_t global_mode; /* last valid global mode */
int discov_active; /* standard discovery active: includes name resolution step */
@@ -181,3 +181,5 @@ const gchar *adapter_get_address(struct adapter *adapter);
void adapter_free(struct adapter *adapter);
void adapter_set_discov_timeout(struct adapter *adapter, guint interval);
void adapter_remove_discov_timeout(struct adapter *adapter);
+void adapter_set_scan_mode(struct adapter *adapter, uint8_t scan_mode);
+uint8_t adapter_get_scan_mode(struct adapter *adapter);
diff --git a/hcid/dbus-hci.c b/hcid/dbus-hci.c
index f4e5b884..e499aca2 100644
--- a/hcid/dbus-hci.c
+++ b/hcid/dbus-hci.c
@@ -261,14 +261,14 @@ DBusMessage *new_authentication_return(DBusMessage *msg, uint8_t status)
}
}
-static void adapter_mode_changed(struct adapter *adapter, uint8_t scan_enable)
+static void adapter_mode_changed(struct adapter *adapter, uint8_t scan_mode)
{
const char *mode;
const gchar *path = adapter_get_path(adapter);
- adapter->scan_enable = scan_enable;
+ adapter_set_scan_mode(adapter, scan_mode);
- switch (scan_enable) {
+ switch (scan_mode) {
case SCAN_DISABLED:
mode = "off";
adapter->mode = MODE_OFF;
@@ -1683,7 +1683,7 @@ void hcid_dbus_setscan_enable_complete(bdaddr_t *local)
adapter_remove_discov_timeout(adapter);
- if (adapter->scan_enable != rp.enable)
+ if (adapter_get_scan_mode(adapter) != rp.enable)
adapter_mode_changed(adapter, rp.enable);
failed: