mcu_hi3321_watch/tjd/ui/app/player/TjdUiAppPlayerBTImpl.h
2025-05-26 20:15:20 +08:00

63 lines
1.5 KiB
C++

/*----------------------------------------------------------------------------
* 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 <list>
#include <string>
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<HeadsetInfo> &GetHeadsetList() { return headsetList_; }
void ConnectHeadsetTimerProc();
void StartConnectHeadsetTimer();
void StopConnectHeadsetTimer();
private:
uint8_t scanHeadsetTimerCount_{0};
std::list<HeadsetInfo> headsetList_;
osTimerId_t scanHeadsetTimerId_{nullptr};
osTimerId_t connectHeadsetTimerId_{nullptr};
int selectDeviceIndex_{0};
bd_addr_t selectDeviceAddr_{};
};
} // namespace TJD
#endif