mcu_hi3321_watch/tjd/ble/protocol/ble_music_server.h
2025-05-26 20:15:20 +08:00

113 lines
3.3 KiB
C

/**************************************************************************************************
* Copyright (c) Fenda Technologies Co., Ltd. 2020-2021. All rights reserved.
* Description: 音乐接口函数
* Author: ball.caojianguang
* Create: 2020-5-21
************************************************************************************************/
#ifndef _USER_MUSIC_SERVER_H_
#define _USER_MUSIC_SERVER_H_
#include "stdint.h"
#include "ble_protocol.h"
#include "ble_music_server.h"
typedef enum {
MUSIC_STATE_UNCONN = 0, //手机未连接
MUSIC_STATE_DISABLE, //音乐功能未开启
MUSIC_STATE_GETTING, //正在获取
MUSIC_STATE_EMPTY, //无播放歌曲
MUSIC_STATE_PLAYING, //播放中
MUSIC_STATE_PAUSE //暂停中
} MusicPlayState;
typedef struct {
char musicName[128]; //音乐名称
char artistName[128]; //歌手名称
uint8_t volume; //音量大小
uint8_t maxVol; //最大音量
MusicPlayState playState; //音乐播放状态
} MusicPlayInfo_t;
//音乐相关自定义数据类型
enum {
MUSIC_CTRL = 1, //0x01
MUSIC_CTRL_MAX,
};
//音乐播放控制命令
typedef enum {
//VICE_MUSIC_OFF = 0, //禁止控制APP音乐播放功能
//VICE_MUSIC_ON = 1, //打开APP音乐控制功能
DVICE_MUSIC_PLAY = 1, //播放
DEVICE_MUSIC_POUSE, //暂停
DEVICE_MUSIC_PRE, //上一首
DEVICE_MUSIC_NEXT, //下一首
DEVICE_MUSIC_INCREASE, //音量+
DEVICE_MUSIC_DECREASE, //音量-
DEVICE_STOP_REPORT = 100, //设备终止音乐上报
DEVICE_MUSIC_TYPE_MAX,
} DeviceMusicContrlInfo_t;
//音乐播放状态
enum {
MUISC_INFO_TYPE = 0x01,
MUSIC_INFO_TYPE_MAX,
};
//音乐信息
enum {
SINGER_NAME_TYPE = 0x01,
SONG_NAME_TYPE,
PLAY_STATE_TYPE,
MUSIC_INFO_MAX_TYPE,
};
//手机音量信息
enum {
MAX_VOLUME_TYPE = 0x01,
CURRENT_VOLUME_TYPE,
VOLUME_TYPE_MAX,
};
//音乐质量上报或者下载
enum {
MUSIC_CONTROL_TYPE = 0x01,
MUSIC_CONTROL_MAX_TYPE,
};
extern uint8_t app_playState;
//音乐播放信息
void BLE_DeviceMusicContrlSwitch(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void AppMusicPlayStatusNotify(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void AppDeviceMusicContrlACK(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_DeviceRequestPlayStatusACK(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_DeviceRequestMusicPlayStatusUpload(void);
void BLE_DeviceMusicContrlCmdUpload(uint8_t music_cmd);
/********************************
* 音乐--4.14 命令ID
**********************************/
enum {
MUSIC_CONTROL_SWITCH_ID = 1, //4.14.1
DEVICE_REQ_MUSIC_STATUS_ID = 2, //4.14.2
APP_SEND_MUSIC_INFO_ID = 3, //4.14.3
CONTROL_MUSIC_COMMAND_UPLOAD_ID, //4.14.4
APP_SYNCH_COMMAND_ID, //4.14.5
APP_SEND_PHONE_VOLUME_ID, //4.14.6
MUSIC_SERVERE_MAX_ID,
};
extern const p_func_t MusicServerFunc[MUSIC_SERVERE_MAX_ID];
extern MusicPlayInfo_t musicPlayInfo;
#endif