Skip to content

Commit

Permalink
Initialise emit before constructing CBCentralManager (#14)
Browse files Browse the repository at this point in the history
  • Loading branch information
geovie authored Nov 12, 2018
1 parent 49c4c57 commit af4418e
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 10 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "noble-mac",
"description": "Noble (Node.js Bluetooth LE) bindings using CoreBluetooth API",
"version": "0.0.1",
"version": "0.0.2",
"author": "[email protected]",
"license": "MIT",
"repository": {
Expand Down
4 changes: 2 additions & 2 deletions src/ble_manager.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@
#include "callbacks.h"

@interface BLEManager : NSObject <CBCentralManagerDelegate, CBPeripheralDelegate> {
@public Emit emit;
Emit emit;
bool pendingRead;
}
@property (strong) CBCentralManager *centralManager;
@property dispatch_queue_t dispatchQueue;
@property NSMutableDictionary *peripherals;

- (instancetype)init;
- (instancetype)init: (const Napi::Value&) receiver with: (const Napi::Function&) callback;
- (void)scan: (NSArray<NSString*> *)serviceUUIDs allowDuplicates: (BOOL)allowDuplicates;
- (void)stopScan;
- (BOOL)connect:(NSString*) uuid;
Expand Down
4 changes: 3 additions & 1 deletion src/ble_manager.mm
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@
#include "objc_cpp.h"

@implementation BLEManager
- (instancetype)init {
- (instancetype)init: (const Napi::Value&) receiver with: (const Napi::Function&) callback {
if (self = [super init]) {
pendingRead = false;
// wrap cb before creating the CentralManager as it may call didUpdateState immediately
self->emit.Wrap(receiver, callback);
self.dispatchQueue = dispatch_queue_create("CBqueue", 0);
self.centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:self.dispatchQueue];
self.peripherals = [NSMutableDictionary dictionaryWithCapacity:10];
Expand Down
8 changes: 4 additions & 4 deletions src/callbacks.h
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#pragma once

#pragma once

#include <napi.h>
#include "peripheral.h"

class ThreadSafeCallback;

class ThreadSafeCallback;

class Emit {
public:
Expand Down
3 changes: 1 addition & 2 deletions src/noble_mac.mm
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,7 @@

Napi::Value NobleMac::Init(const Napi::CallbackInfo& info) {
Napi::Function emit = info.This().As<Napi::Object>().Get("emit").As<Napi::Function>();
manager = [[BLEManager alloc] init];
manager->emit.Wrap(info.This(), emit);
manager = [[BLEManager alloc] init:info.This() with:emit];
return Napi::Value();
}

Expand Down

0 comments on commit af4418e

Please sign in to comment.