/************************************************************************************************** * 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