~ubuntu-branches/ubuntu/oneiric/bluez/oneiric-proposed

« back to all changes in this revision

Viewing changes to src/adapter.c

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2011-08-01 16:07:29 UTC
  • mfrom: (1.1.35 upstream)
  • Revision ID: james.westby@ubuntu.com-20110801160729-s7bv7bh6u4o5vhlc
Tags: 4.96-0ubuntu1
New upstream version

Show diffs side-by-side

added added

removed removed

Lines of Context:
146
146
        guint off_timer;
147
147
 
148
148
        GSList *powered_callbacks;
 
149
        GSList *pin_callbacks;
149
150
 
150
151
        GSList *loaded_drivers;
151
152
};
1876
1877
        device_set_temporary(device, FALSE);
1877
1878
        adapter->devices = g_slist_append(adapter->devices, device);
1878
1879
 
1879
 
        device_probe_drivers(device, uuids);
1880
1880
        list = device_services_from_record(device, uuids);
1881
1881
        if (list)
1882
1882
                device_register_services(connection, device, list, ATT_PSM);
1883
1883
 
 
1884
        device_probe_drivers(device, uuids);
 
1885
 
1884
1886
        g_slist_free_full(uuids, g_free);
1885
1887
}
1886
1888
 
2051
2053
                uuids = g_slist_append(uuids, prim->uuid);
2052
2054
        }
2053
2055
 
2054
 
        device_probe_drivers(device, uuids);
2055
2056
        device_register_services(connection, device, services, -1);
2056
2057
 
 
2058
        device_probe_drivers(device, uuids);
 
2059
 
2057
2060
        g_slist_free(uuids);
2058
2061
}
2059
2062
 
2573
2576
        g_slist_free(adapter->devices);
2574
2577
 
2575
2578
        unload_drivers(adapter);
 
2579
        g_slist_free(adapter->pin_callbacks);
2576
2580
 
2577
2581
        /* Return adapter to down state if it was not up on init */
2578
2582
        adapter_ops->restore_powered(adapter->dev_id);
2579
 
 
2580
 
        btd_adapter_unref(adapter);
2581
2583
}
2582
2584
 
2583
2585
uint16_t adapter_get_dev_id(struct btd_adapter *adapter)
3423
3425
        if (adapter->off_timer)
3424
3426
                return 0;
3425
3427
 
 
3428
        adapter->global_mode = MODE_OFF;
 
3429
 
3426
3430
        if (adapter->connections == NULL)
3427
3431
                return adapter_ops->set_powered(adapter->dev_id, FALSE);
3428
3432
 
3435
3439
        return 0;
3436
3440
}
3437
3441
 
 
3442
void btd_adapter_register_pin_cb(struct btd_adapter *adapter,
 
3443
                                                        btd_adapter_pin_cb_t cb)
 
3444
{
 
3445
        adapter->pin_callbacks = g_slist_prepend(adapter->pin_callbacks, cb);
 
3446
}
 
3447
 
 
3448
void btd_adapter_unregister_pin_cb(struct btd_adapter *adapter,
 
3449
                                                        btd_adapter_pin_cb_t cb)
 
3450
{
 
3451
        adapter->pin_callbacks = g_slist_remove(adapter->pin_callbacks, cb);
 
3452
}
 
3453
 
 
3454
ssize_t btd_adapter_get_pin(struct btd_adapter *adapter, struct btd_device *dev,
 
3455
                                                                char *pin_buf)
 
3456
{
 
3457
        GSList *l;
 
3458
        btd_adapter_pin_cb_t cb;
 
3459
        bdaddr_t sba, dba;
 
3460
        ssize_t ret;
 
3461
 
 
3462
        for (l = adapter->pin_callbacks; l != NULL; l = g_slist_next(l)) {
 
3463
                cb = l->data;
 
3464
                ret = cb(adapter, dev, pin_buf);
 
3465
                if (ret > 0)
 
3466
                        return ret;
 
3467
        }
 
3468
 
 
3469
        adapter_get_address(adapter, &sba);
 
3470
        device_get_address(dev, &dba);
 
3471
 
 
3472
        return read_pin_code(&sba, &dba, pin_buf);
 
3473
}
 
3474
 
3438
3475
int btd_register_adapter_ops(struct btd_adapter_ops *ops, gboolean priority)
3439
3476
{
3440
3477
        if (ops->setup == NULL)