80 lines
2.6 KiB
C++
80 lines
2.6 KiB
C++
/*
|
|
* Copyright (c) CompanyNameMagicTag 2022-2022. All rights reserved.
|
|
* Description: voice assistant
|
|
* Author: CompanyName
|
|
* Create: 2022-01-18
|
|
*/
|
|
|
|
#ifndef TJD_VOCASSIST_MODEL_H
|
|
#define TJD_VOCASSIST_MODEL_H
|
|
|
|
#include "smart_voice_service.h"
|
|
#include "TjdUiAppVoiceAssistantView.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
void VoiceFunction(SmartVoiceEventType type, td_void *data, td_s32 size);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
namespace TJD {
|
|
typedef enum {
|
|
ONE_ROAD_AND_INCOMING,
|
|
ONE_OR_MORE_ROAD_AND_OTHER_STATUS,
|
|
OTHER_STATUS
|
|
} PhoneStatus;
|
|
|
|
typedef enum {
|
|
DISABLE,
|
|
ENABLE
|
|
} EnableChoice;
|
|
|
|
// enum SwitchApp {
|
|
// SWITCH_TO_XIAOYI,
|
|
// SWITCH_TO_MAKECALL,
|
|
// SWITCH_TO_CUTCALL,
|
|
// PRE_SONG,
|
|
// NEXT_SONG,
|
|
// INCREASE_VOLUME,
|
|
// DECREASE_VOLUME,
|
|
// SWITCH_TO_PLAYER,
|
|
// PAUSE_PLAYBACK,
|
|
// RESUME_PLAYBACK,
|
|
// SWITCH_TO_UNKNOWN,
|
|
// SWITCH_TO_VOCASSIST,
|
|
// };
|
|
|
|
class TjdUiVocassistModel {
|
|
public:
|
|
TjdUiVocassistModel();
|
|
virtual ~TjdUiVocassistModel();
|
|
static TjdUiVocassistModel *GetInstance(void);
|
|
void Init(); // 初始化语音识别服务
|
|
void UnInit(); // 结束语音识别服务
|
|
|
|
int GetPhoneDetailStatus(); // 获取来电时的状态
|
|
// int GetToggleFlag(); // 获取语音图标到波形变换的转换标志位
|
|
// void SetToggleFlag(int val); // 设置语音图标到波形变换的转换标志位
|
|
int GetRegFlag(); // 获取识别出的命令操作标志位
|
|
void SetRegFlag(int val); // 设置识别出的命令操作标志位
|
|
// int GetExitStatus(); // 获取退出语音助手状态标志位
|
|
// void SetExitStatus(int val); // 设置退出语音助手状态标志位
|
|
int GetConnectFlag(); // 获取连接动画标志位
|
|
void SetConnectFlag(int flag); // 设置连接动画标志位
|
|
bool GetHasOneCmd();
|
|
void SetHasOneCmd(bool fg);
|
|
|
|
private:
|
|
// int toggleFg{ALREADY_OPEN_VOCASSIST_IMAGE}; // 记录语音图标和波形标志位
|
|
int regFlag{SWITCH_TO_UNKNOWN}; // 命令操作标志位
|
|
// int exitStatus{INTERRUPT_EXIT}; // 判断是否因太长时间未操作退出语音助手
|
|
// int imgConnectFlag{CONNECT_TO_VOCASSIST}; // 记录动画标志位
|
|
bool hasOneCmd{false}; // 每次只执行一条命令
|
|
};
|
|
}
|
|
|
|
#endif
|
|
|