* ble-glue: add on connect \ disconnect, on send \ received callbacks * bt: rework service with furi-hal-bt and callbacks * bt: update battery level on connect * ble-glue: set one callback with parameters * bt: rework callbacks, remove unused API * ble-glue: remove dead code * furi-hal-bt: add documentation * ble-glue: apply changes for f7 target * bt: rename RpcInstance -> Rpc * ble: add disconnection reason * ble: don't open bt record from GAP * bt: fix RPC session close * Assets: separate targets for icons and protobuf Co-authored-by: あく <alleteam@gmail.com>
		
			
				
	
	
		
			47 lines
		
	
	
		
			771 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			771 B
		
	
	
	
		
			C
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
#include <stdint.h>
 | 
						|
#include <stdbool.h>
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
typedef enum {
 | 
						|
    BleEventTypeConnected,
 | 
						|
    BleEventTypeDisconnected,
 | 
						|
    BleEventTypeStartAdvertising,
 | 
						|
    BleEventTypeStopAdvertising,
 | 
						|
    BleEventTypePinCodeShow,
 | 
						|
} BleEventType;
 | 
						|
 | 
						|
typedef union {
 | 
						|
    uint32_t pin_code;
 | 
						|
} BleEventData;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
    BleEventType type;
 | 
						|
    BleEventData data;
 | 
						|
} BleEvent;
 | 
						|
 | 
						|
typedef void(*BleEventCallback) (BleEvent event, void* context);
 | 
						|
 | 
						|
typedef enum {
 | 
						|
    GapStateIdle,
 | 
						|
    GapStateAdvFast,
 | 
						|
    GapStateAdvLowPower,
 | 
						|
    GapStateConnected,
 | 
						|
} GapState;
 | 
						|
 | 
						|
bool gap_init(BleEventCallback on_event_cb, void* context);
 | 
						|
 | 
						|
void gap_start_advertising();
 | 
						|
 | 
						|
void gap_stop_advertising();
 | 
						|
 | 
						|
GapState gap_get_state();
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 |