From c6d4286764e0a7eafb734dfe2665f51d16ad6da0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=BD=AD=E7=A3=8A?= <1624952103@qq.com> Date: Fri, 27 Sep 2024 10:52:00 +0000 Subject: [PATCH] Merge #1040 into sdk602patch0626 from refs/changes/1040/head MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Code review from 彭磊 * refs/changes/1040/head: (7 commits squashed) - 修改黑曜表盘配置 - 同步默认表盘更新 - Merge branch 'sdk602patch0626' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626 - Merge branch 'sdk602patch0626' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626 - Merge branch 'sdk602patch0626' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626 - Merge branch 'sdk602patch0626' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626 - 优化睡眠文件读写,优化A2DP音量映射 Signed-off-by: aliyun6865282430 <1624952103@qq.com> Reviewed-by: snickersun@163.com Merged-by: snickersun@163.com CR-link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/1040 --- .../src/AlarmClockTimerConfig.cpp | 11 +++ .../nativeui/sleep/include/SleepModel.h | 1 + .../nativeui/sleep/src/SleepModel.cpp | 75 +++++++++++++++++-- .../audiomanager/cpp/audio_manager.cpp | 5 +- 4 files changed, 84 insertions(+), 8 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp b/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp index 0f7de9809..195a336da 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp @@ -422,6 +422,12 @@ extern "C" // uapi_dev_runtime_set_sleep_status(0); // do_cywee_service_check_msg(CYWEE_SERVICE_CMD_GET_SLEEP_DATA, NULL); + bool ret = OHOS::sleep_mutex_init(); + if(!ret) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sleep_mutex_init failed !!! "); + } + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "起床啦! curTime.tm_hour:%d curTime.tm_min:%d curTime.tm_sec:%d ", curTime.tm_hour, curTime.tm_min, curTime.tm_sec); if (curTime.tm_hour == wake_time_hour && curTime.tm_min == wake_time_min && curTime.tm_sec == 0) @@ -453,6 +459,11 @@ extern "C" // 进入睡眠检测模式并退出小睡检测模式 else if (is_time_range(curTime, sleep_time_hour, sleep_time_min, wake_time_hour, wake_time_min) && (uapi_dev_runtime_get_sleep_monitoring_status() == 0)) { + bool ret = OHOS::sleep_mutex_init(); + if(!ret) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sleep_mutex_init failed !!! "); + } int cmd = 1; uapi_dev_runtime_set_sleep_status(0); // 清零睡眠状态 uapi_dev_runtime_set_absolute_static_status(0); // 清零绝对静止状态 diff --git a/code/sdk/application/wearable/fd230app/nativeui/sleep/include/SleepModel.h b/code/sdk/application/wearable/fd230app/nativeui/sleep/include/SleepModel.h index b628dd617..a0114443d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/sleep/include/SleepModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/sleep/include/SleepModel.h @@ -70,6 +70,7 @@ namespace OHOS #pragma pack() bool save_nap_data(NAP_T *data); + bool sleep_mutex_init(void); uint32_t read_sleep_nap_data(char *data, uint32_t size, FILE *fp); void set_nap_data(NAP_T *data); void set_sleep_data(SLEEP_T *data); diff --git a/code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepModel.cpp index 2bca0fc3c..968502854 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepModel.cpp @@ -2,7 +2,7 @@ * @Author: penglei 1624952103@qq.com * @Date: SLEPPNOTIFY24-06-26 19:36:48 * @LastEditors: penglei 1624952103@qq.com - * @LastEditTime: 2024-09-23 18:21:49 + * @LastEditTime: 2024-09-27 18:44:18 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepModel.cpp * @Description: * @@ -59,7 +59,28 @@ namespace OHOS static uint32_t sleep_update_timestamp = 0; static uint32_t nap_update_timestamp = 0; - /*获取最新睡眠时间戳*/ + static uint8_t sleep_mutex_installed = 0; + static osal_mutex sleep_mutex; + + bool sleep_mutex_init(void) + { + if(sleep_mutex_installed == 1) + return true; + + if(sleep_mutex_installed == 0) + { + errcode_t ret = osal_mutex_init(&sleep_mutex); + if (ret != ERRCODE_SUCC) + { + PRINT("sleep_mutex lock fail! ret=0x%x\n", ret); + return false; + } + sleep_mutex_installed = 1; + } + return true; + } + + /*获取最新睡眠时间戳*/ uint32_t get_sleep_update_timestamp(void) { if(nap_update_timestamp<=sleep_update_timestamp) @@ -68,8 +89,17 @@ namespace OHOS return nap_update_timestamp; } + bool save_nap_data(NAP_T *data) { + errcode_t ret; + ret = osal_mutex_lock(&sleep_mutex); + if (ret != ERRCODE_SUCC) + { + PRINT(" sleep_mutex lock fail! ret=0x%x\n", ret); + return false; + } + struct stat info; char dir_path[64] = {0}; char file_path[64] = {0}; @@ -81,6 +111,7 @@ namespace OHOS { if (mkdir("user/userdata/sleep", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) != 0) { + osal_mutex_unlock(&sleep_mutex); return false; // Failed to create folder } } @@ -90,11 +121,12 @@ namespace OHOS if (mkdir(dir_path, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) != 0) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mkdir fail %s", dir_path); + osal_mutex_unlock(&sleep_mutex); return false; // Failed to create folder } } uint32_t creationTime; - int ret = uapi_get_timestampe_ss(&creationTime); + uapi_get_timestampe_ss(&creationTime); sprintf_s(file_path, 64, NAP_PATH, day, creationTime); @@ -103,6 +135,7 @@ namespace OHOS if (fp == NULL) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "save_nap_sleep_data fopen fail"); + osal_mutex_unlock(&sleep_mutex); return false; } @@ -135,6 +168,9 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "save_nap_sleep_data succ"); fclose(fp); + + osal_mutex_unlock(&sleep_mutex); + return true; } @@ -241,7 +277,14 @@ namespace OHOS bool save_sleep_data(SLEEP_T *data) { - + errcode_t ret; + ret = osal_mutex_lock(&sleep_mutex); + if (ret != ERRCODE_SUCC) + { + PRINT(" sleep_mutex lock fail! ret=0x%x\n", ret); + return false; + } + if(access(time_file_path, F_OK) == -1) { memset(time_file_path,0,sizeof(time_file_path)); @@ -253,6 +296,7 @@ namespace OHOS if (fp == NULL) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "save_sleep_data fopen fail"); + osal_mutex_unlock(&sleep_mutex); return false; } @@ -331,6 +375,7 @@ namespace OHOS if(fp == NULL) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "save_sleep_data fopen fail"); + osal_mutex_unlock(&sleep_mutex); return false; } // if(data->wake_up_timestamp != 0) @@ -345,6 +390,7 @@ namespace OHOS if(fp == NULL) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "save_sleep_data fopen fail"); + osal_mutex_unlock(&sleep_mutex); return false; } fwrite(data->sleep_status, sizeof(SLEEP_STATE_T), data->status_num, fp); @@ -377,6 +423,9 @@ namespace OHOS } fclose(fp); + + osal_mutex_unlock(&sleep_mutex); + return true; } @@ -393,6 +442,16 @@ namespace OHOS bool read_sleep_data(SLEEP_T *data) { + errcode_t ret; + + ret = osal_mutex_lock(&sleep_mutex); + + if (ret != ERRCODE_SUCC) + { + PRINT(" sleep_mutex lock fail! ret=0x%x\n", ret); + return false; + } + char day[12] = {0}; uapi_get_YYMMDD_Time(day, '\0'); @@ -403,6 +462,7 @@ namespace OHOS if (fp == NULL) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "read_sleep_data fopen fail"); + osal_mutex_unlock(&sleep_mutex); return false; } @@ -413,6 +473,7 @@ namespace OHOS if (sleep_type == 0) { fclose(fp); + osal_mutex_unlock(&sleep_mutex); return false; } @@ -438,9 +499,11 @@ namespace OHOS sleep_update_timestamp = wake_up_timestamp; fclose(fp); - + + osal_mutex_unlock(&sleep_mutex); + return true; - } +} void set_sleep_data(SLEEP_T *data) { diff --git a/code/sdk/middleware/services/media/foundation/audiomanager/frameworks/audiomanager/cpp/audio_manager.cpp b/code/sdk/middleware/services/media/foundation/audiomanager/frameworks/audiomanager/cpp/audio_manager.cpp index 9d77c17b2..89c167962 100755 --- a/code/sdk/middleware/services/media/foundation/audiomanager/frameworks/audiomanager/cpp/audio_manager.cpp +++ b/code/sdk/middleware/services/media/foundation/audiomanager/frameworks/audiomanager/cpp/audio_manager.cpp @@ -44,7 +44,8 @@ bool AudioManager::SetVolume(AudioStreamType streamType, int32_t volume) { CHK_NULL_RETURN(impl_, false, "impl_ is nullptr"); - if(streamType == AUDIO_STREAM_MUSIC) + + if(streamType == AUDIO_STREAM_MUSIC || streamType == AUDIO_STREAM_A2DP_MUSIC) { if(volume == 0) volume = 0; @@ -72,7 +73,7 @@ int32_t AudioManager::GetVolume(AudioStreamType streamType) CHK_NULL_RETURN(impl_, AUDIO_ERROR, "impl_ is nullptr"); int32_t volume = impl_->GetVolume(streamType); - if(streamType == AUDIO_STREAM_MUSIC) + if(streamType == AUDIO_STREAM_MUSIC || streamType == AUDIO_STREAM_A2DP_MUSIC) { if(volume == 0) return 0; -- 2.17.1