Merge #1040 into sdk602patch0626 from refs/changes/1040/head 1041/target/1
author彭磊 <1624952103@qq.com>
Fri, 27 Sep 2024 10:52:00 +0000 (10:52 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Fri, 27 Sep 2024 10:52:00 +0000 (10:52 +0000)
Code review from 彭磊

* refs/changes/1040/head: (7 commits squashed)

  - 修改黑曜表盘配置

  - 同步默认表盘更新

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - 优化睡眠文件读写,优化A2DP音量映射

Signed-off-by: aliyun6865282430 <1624952103@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/1040
code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp
code/sdk/application/wearable/fd230app/nativeui/sleep/include/SleepModel.h
code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepModel.cpp
code/sdk/middleware/services/media/foundation/audiomanager/frameworks/audiomanager/cpp/audio_manager.cpp

index 0f7de98..195a336 100644 (file)
@@ -422,6 +422,12 @@ extern "C"
                 // uapi_dev_runtime_set_sleep_status(0);\r
                 //  do_cywee_service_check_msg(CYWEE_SERVICE_CMD_GET_SLEEP_DATA, NULL);\r
 \r
+                bool ret = OHOS::sleep_mutex_init();\r
+                if(!ret)\r
+                {\r
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sleep_mutex_init failed !!! ");\r
+                }\r
+\r
                 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);\r
 \r
                 if (curTime.tm_hour == wake_time_hour && curTime.tm_min == wake_time_min && curTime.tm_sec == 0)\r
@@ -453,6 +459,11 @@ extern "C"
             // 进入睡眠检测模式并退出小睡检测模式\r
             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))\r
             {\r
+                bool ret = OHOS::sleep_mutex_init();\r
+                if(!ret)\r
+                {\r
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sleep_mutex_init failed !!! ");\r
+                }\r
                 int cmd = 1;\r
                 uapi_dev_runtime_set_sleep_status(0);           // 清零睡眠状态\r
                 uapi_dev_runtime_set_absolute_static_status(0); // 清零绝对静止状态\r
index b628dd6..a011444 100644 (file)
@@ -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);
index 2bca0fc..9685028 100644 (file)
@@ -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)
     {
index 9d77c17..89c1679 100755 (executable)
@@ -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;