118 bool dial(
const char* number,
const char* name =
nullptr);
153 void simulateMedia(
const char* title,
const char* artist,
bool playing);
155 void simulateNotification(
const char* title,
const char* message,
const char* app =
"Messages");
168 void addNotification(
const char* title,
const char* message,
const char* app, uint32_t uid,
bool canDismissRemotely =
false);
174 static void onSourceMedia(
bool playing,
const char* title,
const char* artist,
void* user);
177 static void onSourceNotification(
const char* title,
const char* message,
const char* app, uint32_t uid,
bool canDismissRemotely,
void* user);
182 void* incomingQueue_{
nullptr};
183 void* timeSyncQueue_{
nullptr};
Definition event_bus.h:48
Definition bluetooth.h:20
virtual bool isAdvertising() const
Definition bluetooth.h:40
virtual bool isConnected() const =0
virtual uint32_t nextWakeDelayMs(uint32_t nowMs) const
Definition bluetooth.h:46
Definition companion_source.h:49
virtual const char * sourceId() const =0
virtual CompanionCapabilities capabilities() const =0
virtual bool isAvailable() const =0
Definition bluetooth_manager.h:48
bool dismissNotification(size_t index)
Definition bluetooth_manager.cpp:446
static void onSourceMedia(bool playing, const char *title, const char *artist, void *user)
Definition bluetooth_manager.cpp:418
bool mediaNext()
Request the next media item.
Definition bluetooth_manager.cpp:281
const char * getDeviceName() const
Return the local BLE device name.
Definition bluetooth_manager.cpp:135
const char * getCallerNumber() const
Return the current caller number, if provided by the source.
Definition bluetooth_manager.h:104
const AppNotification & getNotification(size_t index) const
Return a notification entry by index.
Definition bluetooth_manager.cpp:438
bool canHangup() const
Definition bluetooth_manager.h:71
char currentNumber_[20]
Definition bluetooth_manager.h:193
bool mediaPause()
Request media pause.
Definition bluetooth_manager.cpp:273
uint32_t nextWakeDelayMs(uint32_t nowMs) const
Definition bluetooth_manager.h:90
void receive(const events::Event &event)
Definition bluetooth_manager.cpp:297
hal::CompanionCapabilities companionCapabilities() const
Return the active source's current capabilities.
Definition bluetooth_manager.h:79
void(*)(void *user) WakeCallback
Definition bluetooth_manager.h:50
const RecentCall & getRecentCall(size_t index) const
Return a recent-call entry by index.
Definition bluetooth_manager.cpp:202
uint32_t dismissedUids_[MAX_DISMISSED_UIDS]
Definition bluetooth_manager.h:204
AppNotification notifications_[MAX_NOTIFS]
Definition bluetooth_manager.h:201
bool notificationsReady() const
Definition bluetooth_manager.h:73
bool isConnected() const
Definition bluetooth_manager.cpp:131
bool initialized_
Definition bluetooth_manager.h:210
const char * getCallerName() const
Return the current caller name, if provided by the source.
Definition bluetooth_manager.h:102
void addNotification(const char *title, const char *message, const char *app, uint32_t uid, bool canDismissRemotely=false)
Add or update a notification entry.
Definition bluetooth_manager.cpp:463
void clearNotifications()
Clear all retained notifications and dismissed UID state.
Definition bluetooth_manager.cpp:493
char currentCaller_[32]
Definition bluetooth_manager.h:192
events::EventBus & bus_
Definition bluetooth_manager.h:189
void restartAdvertising()
Definition bluetooth_manager.cpp:143
bool dial(const char *number, const char *name=nullptr)
Definition bluetooth_manager.cpp:169
static void onSourceNotification(const char *title, const char *message, const char *app, uint32_t uid, bool canDismissRemotely, void *user)
Definition bluetooth_manager.cpp:497
CallState getCallState() const
Return normalized call state.
Definition bluetooth_manager.h:100
bool mediaPlaying_
Definition bluetooth_manager.h:207
static constexpr size_t MAX_DISMISSED_UIDS
Definition bluetooth_manager.h:203
uint32_t callStartMs_
Definition bluetooth_manager.h:194
void apply(const events::Event &event)
Definition bluetooth_manager.cpp:342
const char * getMediaArtist() const
Return the latest companion artist name.
Definition bluetooth_manager.h:136
hal::IBluetooth & ble_
Definition bluetooth_manager.h:187
char mediaTitle_[32]
Definition bluetooth_manager.h:208
static constexpr size_t MAX_NOTIFS
Definition bluetooth_manager.h:200
static BluetoothManager & instance()
Return the installed process-wide Bluetooth manager.
Definition bluetooth_manager.cpp:51
bool mediaPrevious()
Request the previous media item.
Definition bluetooth_manager.cpp:285
bool isPlaying() const
Return whether the latest companion media state is playing.
Definition bluetooth_manager.h:132
static void onSourceCall(hal::CompanionCallAction action, const char *caller, const char *number, void *user)
Definition bluetooth_manager.cpp:410
CallState callState_
Definition bluetooth_manager.h:191
bool isAdvertising() const
Return BLE advertising state.
Definition bluetooth_manager.h:88
bool mediaPlay()
Request media playback.
Definition bluetooth_manager.cpp:269
bool dialRecent(size_t index=0)
Definition bluetooth_manager.cpp:195
size_t notifCount_
Definition bluetooth_manager.h:202
bool mediaReady() const
Definition bluetooth_manager.h:75
size_t getRecentCallCount() const
Return the number of retained recent-call entries.
Definition bluetooth_manager.h:124
static void setInstance(BluetoothManager *inst)
Install the process-wide Bluetooth manager.
Definition bluetooth_manager.cpp:61
size_t getNotificationCount() const
Return the number of retained notification entries.
Definition bluetooth_manager.h:159
bool rejectCall()
Definition bluetooth_manager.cpp:160
const char * getDeviceAddress() const
Return the local BLE address.
Definition bluetooth_manager.cpp:139
size_t dismissedCount_
Definition bluetooth_manager.h:205
hal::ICompanionSource & source_
Definition bluetooth_manager.h:188
size_t recentCount_
Definition bluetooth_manager.h:198
bool bleConnected() const
Return BLE transport link state.
Definition bluetooth_manager.h:83
WakeCallback wakeCallback_
Definition bluetooth_manager.h:185
void simulateNotification(const char *title, const char *message, const char *app="Messages")
Inject a notification event for host simulation.
Definition bluetooth_manager.cpp:434
bool acceptCall()
Definition bluetooth_manager.cpp:155
bool canDial() const
Definition bluetooth_manager.h:69
const char * companionSourceId() const
Return the active source's stable machine-readable identifier.
Definition bluetooth_manager.h:77
const char * getMediaTitle() const
Return the latest companion track title.
Definition bluetooth_manager.h:134
void simulateIncomingCall(const char *name, const char *number)
Inject an incoming call event for host simulation.
Definition bluetooth_manager.cpp:289
char mediaArtist_[32]
Definition bluetooth_manager.h:209
RecentCall recents_[MAX_RECENTS]
Definition bluetooth_manager.h:197
static void onSourceAvailability(bool available, void *user)
Definition bluetooth_manager.cpp:428
void tick()
Definition bluetooth_manager.cpp:318
bool hangupCall()
Definition bluetooth_manager.cpp:165
uint32_t getCallDurationSec() const
Return elapsed seconds for the current active call.
Definition bluetooth_manager.cpp:149
void simulateMedia(const char *title, const char *artist, bool playing)
Inject media metadata and state for host simulation.
Definition bluetooth_manager.cpp:293
bool mediaToggle()
Request media play/pause toggle.
Definition bluetooth_manager.cpp:277
void * wakeUserData_
Definition bluetooth_manager.h:186
bool companionSourceAvailable() const
Return whether the active source is available.
Definition bluetooth_manager.h:81
void addRecentCall(const char *name, const char *number)
Definition bluetooth_manager.cpp:210
static constexpr size_t MAX_RECENTS
Definition bluetooth_manager.h:196
void setWakeCallback(WakeCallback callback, void *user)
Definition bluetooth_manager.h:67
static void onBleConnection(bool connected, void *user)
Definition bluetooth_manager.cpp:423
Result< void > init()
Initialize the transport, source, and event callbacks.
Definition bluetooth_manager.cpp:68
CompanionCallAction
Definition companion_source.h:13
CallState
Definition bluetooth_manager.h:12
Definition application.h:10
Definition companion_source.h:31
bool hangup
Definition companion_source.h:36
bool notifications
Definition companion_source.h:32
bool dial
Definition companion_source.h:37
bool media
Definition companion_source.h:33
Definition bluetooth_manager.h:30
uint32_t uid
Definition bluetooth_manager.h:34
char message[64]
Definition bluetooth_manager.h:32
char title[32]
Definition bluetooth_manager.h:31
uint32_t timestampEpoch
Definition bluetooth_manager.h:35
char app[20]
Definition bluetooth_manager.h:33
bool canDismissRemotely
Definition bluetooth_manager.h:36
Definition bluetooth_manager.h:20
uint32_t timestampEpoch
Definition bluetooth_manager.h:26
char number[20]
Definition bluetooth_manager.h:24
char name[32]
Definition bluetooth_manager.h:22