63 lines
1.5 KiB
C++
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 |