/*---------------------------------------------------------------------------- * Copyright (c) TJD Technologies Co., Ltd. 2025. All rights reserved. * * Description: TjdUiAppPlayerBTImpl.h * * Author: luziquan@ss-tjd.com * * Create: 2025-01-03 *--------------------------------------------------------------------------*/ #ifndef TJD_UI_APP_PLAYER_BT_IMPL_H #define TJD_UI_APP_PLAYER_BT_IMPL_H #include "bts_def.h" #include "cmsis_os2.h" #include #include namespace TJD { // 蓝牙耳机信息 struct HeadsetInfo { std::string name; bd_addr_t bdAddr; int32_t rssi; bool isPaired; bool isConnect; }; class TjdUiAppPlayerBTImpl { public: TjdUiAppPlayerBTImpl(); virtual ~TjdUiAppPlayerBTImpl(); static TjdUiAppPlayerBTImpl *GetInstance(void); void SetConnectDeviceAddr(bd_addr_t index) { selectDeviceAddr_ = index; } bd_addr_t &GetConnectDeviceAddr() { return selectDeviceAddr_; } void ScanHeadsetTimerProc(); void StartScanHeadsetTimer(); void StopScanHeadsetTimer(); HeadsetInfo *GetHeadsetInfo(bd_addr_t targetAddr); std::list &GetHeadsetList() { return headsetList_; } void ConnectHeadsetTimerProc(); void StartConnectHeadsetTimer(); void StopConnectHeadsetTimer(); private: uint8_t scanHeadsetTimerCount_{0}; std::list headsetList_; osTimerId_t scanHeadsetTimerId_{nullptr}; osTimerId_t connectHeadsetTimerId_{nullptr}; int selectDeviceIndex_{0}; bd_addr_t selectDeviceAddr_{}; }; } // namespace TJD #endif