* @Author: luozheng 1732036298@qq.com
* @Date: 2024-08-05 15:20:03
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-09-26 14:21:11
+ * @LastEditTime: 2024-09-28 14:58:16
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/player/include/PlayersModel.h
*/
void set_phone_music_play_state(avrcp_key_operation_t notify);
void get_avrcp_ct_get_element_attributes(void);
void set_player_state(bool value);
+ bool get_player_state();
// /* -------------------------------------------------------------------------- */
std::unordered_map<uint16_t, std::pair<std::string,std::string>> &getIdToMusicNameMap(void);
std::string getRealMusicNameById(int id);
void showIdToMusicNameMapData(void);
// /* -------------------------------------------------------------------------- */
private:
+ bool phonePlayButtonState{false};
bool musicSourceFlag{false};//音乐来源标志:false:默认为手表音乐,true:手机音乐
int64_t playerCurrentTime_{0};
int64_t playerMusicDuration_{0};
return;\r
}\r
\r
- if(PlayersListGroup::GetInstance()->GetCase().IsEmpty() && !PlayersModel::GetInstance()->GetMusicSource()) //若当前歌曲列表为空且为本地音乐他跳转到音乐列表进行提示\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "current playersCaseList_ is empty!!");\r
- playersView->SetPlayerButtonState(UICheckBox::UICheckBoxState::UNSELECTED);\r
- playersView->ChangeView(PlayersView::MAIN_MUSICPLAYER_VIEW,PlayersView::MUSIC_LIST_VIEW);\r
- return;\r
- }\r
-\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "play_or_pause_Button OnClick");\r
uint8_t state = UICheckBox::UICheckBoxState::MAX_STATUS_NUM;\r
int32_t playerState;\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[PlayerButtonOnClick] calling phone");\r
return;\r
}\r
- /* -------------------------- 若ct或tg端是已连接状态且当前为手机音乐 ------------------------- */\r
- if(PlayersModel::GetInstance()->get_avrcp_ct_or_tg_is_connected() && PlayersModel::GetInstance()->GetMusicSource())\r
+\r
+ if( !PlayersModel::GetInstance()->GetMusicSource()) \r
{\r
- if (state == UICheckBox::UICheckBoxState::SELECTED) \r
+ if(PlayersListGroup::GetInstance()->GetCase().IsEmpty()) //若当前歌曲列表为空且为本地音乐他跳转到音乐列表进行提示\r
{\r
- PlayersModel::GetInstance()->set_phone_music_play_state(AVRCP_KEY_PLAY); //控制手机音乐播放\r
- } \r
- else if (state == UICheckBox::UICheckBoxState::UNSELECTED) \r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "current playersCaseList_ is empty!!");\r
+ playersView->SetPlayerButtonState(UICheckBox::UICheckBoxState::UNSELECTED);\r
+ playersView->ChangeView(PlayersView::MAIN_MUSICPLAYER_VIEW,PlayersView::MUSIC_LIST_VIEW);\r
+ return;\r
+ }\r
+ else\r
{\r
- PlayersModel::GetInstance()->set_phone_music_play_state(AVRCP_KEY_PAUSE);//控制手机音乐暂停\r
+ if (state == UICheckBox::UICheckBoxState::SELECTED) {\r
+ /* start play */\r
+ PlayersModel::GetInstance()->ConnectBtAndLocalPlay(connCtState, connTgState, playerState);\r
+ } else if (state == UICheckBox::UICheckBoxState::UNSELECTED) {\r
+ PlayersModel::GetInstance()->ConnectBtAndLocalPause(connCtState, connTgState);\r
+ }\r
+ PlayersModel::GetInstance()->SetCurrentIndex(PlayersModel::GetInstance()->GetCurrentIndex());\r
}\r
- return;\r
}\r
- /* -------------------------------------------------------------------------- */\r
- \r
- if (state == UICheckBox::UICheckBoxState::SELECTED) {\r
- /* start play */\r
- PlayersModel::GetInstance()->ConnectBtAndLocalPlay(connCtState, connTgState, playerState);\r
- } else if (state == UICheckBox::UICheckBoxState::UNSELECTED) {\r
- PlayersModel::GetInstance()->ConnectBtAndLocalPause(connCtState, connTgState);\r
+ else //手机音乐\r
+ {\r
+ /* -------------------------- 若ct或tg端是已连接状态且当前为手机音乐 ------------------------- */\r
+ if(PlayersModel::GetInstance()->get_avrcp_ct_or_tg_is_connected())\r
+ {\r
+ if (state == UICheckBox::UICheckBoxState::SELECTED) \r
+ {\r
+ PlayersModel::GetInstance()->set_phone_music_play_state(AVRCP_KEY_PLAY); //控制手机音乐播放\r
+ } \r
+ else if (state == UICheckBox::UICheckBoxState::UNSELECTED) \r
+ {\r
+ PlayersModel::GetInstance()->set_phone_music_play_state(AVRCP_KEY_PAUSE);//控制手机音乐暂停\r
+ }\r
+ return;\r
+ }\r
+ else\r
+ {\r
+ playersView->SetPlayerButtonState(UICheckBox::UICheckBoxState::UNSELECTED);\r
+ }\r
}\r
- /* -------------------------------------------------------------------------- */\r
- PlayersModel::GetInstance()->SetCurrentIndex(PlayersModel::GetInstance()->GetCurrentIndex());\r
}\r
/*下一首按钮被点击时调用*/\r
void ButtonOnClickListener::NextButtonOnClick()\r
{\r
PlayersView *playersView = PlayersView::GetInstance();\r
if (playersView != nullptr) {\r
- PlayersModel::GetInstance()->SetPlayButtonState(value);\r
playersView->SetPlayerButtonState(value ? UICheckBox::UICheckBoxState::SELECTED:UICheckBox::UICheckBoxState::UNSELECTED);\r
}\r
return;\r