From d5659049e977c5cf4fa14b6a6c36bbfc33fca68d Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Sun, 3 Mar 2024 16:51:47 +0800 Subject: [PATCH] =?utf8?q?=E5=BD=95=E9=9F=B3=E7=95=8C=E9=9D=A2=E4=BF=AE?= =?utf8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/record/include/RecordingModel.h | 2 + .../record/src/RecordGoingPresenter.cpp | 3 +- .../record/src/RecordingPresenter.cpp | 34 +++++++++++--- .../drivers/peripheral/utils/custom_utils.c | 44 ++++++++++++++++++- .../drivers/peripheral/utils/custom_utils.h | 4 ++ 5 files changed, 78 insertions(+), 9 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingModel.h b/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingModel.h index 8eda2b773..4d95a1db0 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingModel.h @@ -69,11 +69,13 @@ namespace OHOS uint8_t GetRecordingListNum() const; std::string GetCleanFileName(const std::string &filePath); void SearchFiles(const std::string &directory, std::vector &fileNames, int &mp3FileCount); + private: RecordingModel(); RecordingModel(const RecordingModel &) = delete; RecordingModel &operator=(const RecordingModel &) = delete; virtual ~RecordingModel(); + private: int64_t DurationTime{0}; // 播放时长,单位ms bool PlayButtonState{false}; // 播放按钮状态 diff --git a/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordGoingPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordGoingPresenter.cpp index 3620773b9..3c198c33e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordGoingPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordGoingPresenter.cpp @@ -2,7 +2,7 @@ #include "NativeAbility.h" #include "string.h" #include "record/include/RecordGoingPresenter.h" - +#include "custom_utils.h" namespace OHOS { @@ -29,7 +29,6 @@ namespace OHOS void RecordGoingPresenter::OnStart() { - Presenter::OnStart(); } diff --git a/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp index ff460be22..919ea0eed 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp @@ -5,6 +5,7 @@ #include "record/include/RecordingPresenter.h" #include "record/include/RecordingModel.h" #include +#include "custom_utils.h" namespace OHOS { @@ -33,6 +34,7 @@ namespace OHOS // 初始化录音信息 RecordingModel::GetInstance()->InitRecordingListItem(); Presenter::OnStart(); + ScreenControl(1); } void RecordingPresenter::OnPause(void) @@ -48,8 +50,8 @@ namespace OHOS void RecordingPresenter::OnStop(void) { - Presenter::OnStop(); + ScreenControl(0); } bool RecordingPresenter::OnDrag(UIView &view, const DragEvent &event) @@ -106,16 +108,36 @@ namespace OHOS bool RecordingPresenter::OnClick(UIView &view, const ClickEvent &event) { - // 将参数保存到数组中 - const char *args[] = {"01", "mp3", "16000", "1", "16", "/user/res/record/recording/record.mp3"}; - int argc = sizeof(args) / sizeof(args[0]); - // 根据控件id查找是哪个控件触发了点击回调 if (strcmp(view.GetViewId(), RECORD_BUTTON) == 0) { + // 将参数保存到数组中 + char *args[6] = {0}; //{"01", "mp3", "16000", "1", "16", "/user/res/record/recording/recordyyyymmddhhmmss.mp3"}; + int argc = 6; + args[0] = (char *)malloc(25); + args[1] = (char *)malloc(25); + args[2] = (char *)malloc(25); + args[3] = (char *)malloc(25); + args[4] = (char *)malloc(25); + args[5] = (char *)malloc(100); + + sprintf(args[0], "01"); + sprintf(args[1], "mp3"); + sprintf(args[2], "16000"); + sprintf(args[3], "1"); + sprintf(args[4], "16"); + uapi_get_recordfilename(args[5]); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Recording...."); - AudioCaptureSample(argc, args); + AudioCaptureSample(argc, (const char **)args); NativeAbility::GetInstance().ChangeSlice(VIEW_RECORD_GOING); + + free(args[0]); + free(args[1]); + free(args[2]); + free(args[3]); + free(args[4]); + free(args[5]); + return true; } return true; diff --git a/code/sdk/drivers/peripheral/utils/custom_utils.c b/code/sdk/drivers/peripheral/utils/custom_utils.c index 6424c1d04..210913aa9 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils.c +++ b/code/sdk/drivers/peripheral/utils/custom_utils.c @@ -21,7 +21,7 @@ #include "pwm_porting.h" #include "pinctrl.h" #include "errcode.h" - +#include "power_display_service.h" #define SUPPORT_NV @@ -283,6 +283,48 @@ errcode_t uapi_set_time_from_cat1(char* cat1time) return ERRCODE_SUCC; } + +errcode_t uapi_get_recordfilename(char *date) +{ + if(date != NULL) + { + time_t rawtime; + struct tm* timeinfo; + time(&rawtime); + timeinfo = localtime(&rawtime); + + sprintf(date,"/user/res/record/recording/recording%04d%02d%02d%02d%02d%02d.mp3", + timeinfo->tm_year + 1900, + timeinfo->tm_mon + 1, + timeinfo->tm_mday, + timeinfo->tm_hour, + timeinfo->tm_min, + timeinfo->tm_sec); + } + return ERRCODE_SUCC; +} + +void ScreenControl(uint8_t turnOnFlag) +{ + const power_display_svr_api_t *display_api = power_display_svr_get_api(); + if(turnOnFlag) + { + const power_display_svr_api_t *display_api = power_display_svr_get_api(); + if (display_api->get_screen_state() != SCREEN_ON) + { + display_api->turn_on_screen(); + } + //当设置的值是-1 的时候,设置屏幕常亮 + display_api->set_screen_set_keepon_timeout(-1); + } + else + { + display_api->set_screen_set_keepon_timeout(0); + } +} + + + #include "bts_le_gap.h" errcode_t uapi_get_btaddr(uint8_t *buf_btaddr, uint32_t *len_btaddr) diff --git a/code/sdk/drivers/peripheral/utils/custom_utils.h b/code/sdk/drivers/peripheral/utils/custom_utils.h index 8f7fa5add..4b45e5503 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils.h +++ b/code/sdk/drivers/peripheral/utils/custom_utils.h @@ -30,6 +30,10 @@ errcode_t uapi_get_timestampe_ms(uint64_t *tm); /**根据cat1获取的时间字串设置时间*/ errcode_t uapi_set_time_from_cat1(char* cat1time); +/**获取日期*/ +errcode_t uapi_get_recordfilename(char *date); + +void ScreenControl(uint8_t turnOnFlag); errcode_t uapi_get_btaddr(uint8_t *buf_btaddr, uint32_t *len_btaddr); /** -- 2.17.1