#include "bt-service-gatt.h"
#include "bt-service-util.h"
#include "bt-service-core-device.h"
+#include "bt-service-battery-monitor.h"
#include <oal-hardware.h>
#include <oal-manager.h>
typedef struct {
char *sender;
+ uid_t uid;
+ pid_t pid;
GSList *filter_list;
gboolean is_scanning;
} bt_adapter_le_scanner_t;
return BLUETOOTH_ERROR_NONE;
}
-int _bt_start_le_scan(const char *sender)
+int _bt_start_le_scan(const char *sender, uid_t uid, pid_t pid)
{
bt_adapter_le_scanner_t *scanner;
int ret;
retv_if(scanner == NULL, BLUETOOTH_ERROR_INTERNAL);
scanner->sender = g_strdup(sender);
+ scanner->uid = uid;
+ scanner->pid = pid;
scanner_list = g_slist_append(scanner_list, scanner);
}
if (!scanner)
return;
- if (scanner->is_scanning)
- _bt_stop_le_scan(sender);
+ _bt_bm_remove_scan_app(SCAN_LE, scanner->uid, scanner->pid);
+
+ if (scanner->is_scanning) {
+ /* Free 'scanner' into the function */
+ if (_bt_stop_le_scan(sender) != BLUETOOTH_ERROR_NOT_IN_OPERATION)
+ return;
+ }
scanner_list = g_slist_remove(scanner_list, scanner);
- g_free(scanner->sender);
- g_free(scanner);
+ __bt_free_le_scanner(scanner);
}
int _bt_service_le_init(void)