static constexpr const char *PNG_ALIPAY_YSE_ICON = APP_RES_PATH "/alipay/yes.bin";
static constexpr const char *PNG_ALIPAY_NO_ICON = APP_RES_PATH "/alipay/no.bin";
/* ----------------------------------- 录音 ----------------------------------- */
- static constexpr const char *PNG_ANIMATOR1_IMAGE = APP_RES_PATH "/record/animator1.bin";
- static constexpr const char *PNG_ANIMATOR2_IMAGE = APP_RES_PATH "/record/animator2.bin";
static constexpr const char *PNG_RECORD1_IMAGE = APP_RES_PATH "/record/RECORD1.bin";
static constexpr const char *PNG_RECORD2_IMAGE = APP_RES_PATH "/record/RECORD2.bin";
static constexpr const char *PNG_RECORD3_IMAGE = APP_RES_PATH "/record/RECORD3.bin";
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-01-29 15:37:44
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-27 11:06:05
+ * @LastEditTime: 2024-08-26 14:28:20
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/compass/src/MainCompassView.cpp
*/
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-04-10 11:58:21
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-10 10:59:45
+ * @LastEditTime: 2024-08-26 17:39:08
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbView.cpp
*/
#include "dnotdisturb/include/DnotDisturbView.h"
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-08-21 11:54:00
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-24 10:15:32
+ * @LastEditTime: 2024-08-26 20:21:33
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dropdown/DropDownCardPage1.h
*/
#ifndef __DROPDOWN_CARD_PAGE1_H__
void ClearAll();
UIToggleButton *GetDropDownCardPage1_ToggleButton(int index);
+ void UpdateBTState(bool state);
+ void Updat4GState(bool state);
void UpdateDnotdisturbState(bool state);
void UpdateSleepModelState(bool state);
if (playerCoefficients == VOLUMEPLAYERS) {
BtAndLocalVolumeSet(volumeSettingView->sounding); /*蓝牙耳机音乐调节*/
- ConfigModel::GetInstance()->SetSystemVolume(volumeSettingView->sounding);/*将设置的音量保存到系统音量*/
}
if (playerCoefficients == VOLUMEPHONE || playerCoefficients == VOLUMEPHONENOTIFY) {
unsigned char volumeValue = (unsigned char) ((double) (volumeSettingView->sounding * CALL_VOLUME_MAX) / (VOLUME_MAX - VOLUME_MIN)); // 音量转换
SetSpeakerVolume(volumeValue);
- ConfigModel::GetInstance()->SetCallVolume(volumeSettingView->sounding);/*将设置的音量保存到通话音量*/
}
}
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-08-21 11:54:00
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-24 10:19:09
+ * @LastEditTime: 2024-08-26 20:29:37
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/src/dropdown/DropDownCardPage1.cpp
*/
#include "main/include/dropdown/DropDownCardPage1.h"
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DropDownCardPage1::OnClick %s ", view.GetViewId());
if (viewId == DROPDOWN_BT_TOGGLEBUTTON_VIEWID) // 蓝牙开关
{
- state = toggleButton[DropDownCardPage1::toggleButton_BT]->GetState();
- NativeAbility::GetInstance().EnterSlice(VIEW_CLASSIC_BLUETOOTH);
+ if (ConfigModel::GetInstance()->GetClassicBlueToothState() == false)
+ {
+ NativeAbility::GetInstance().EnterSlice(VIEW_CLASSIC_BLUETOOTH);
+ }
+ else
+ {
+ state = toggleButton[DropDownCardPage1::toggleButton_BT]->GetState();
+ UpdateBTState(state);
+ ConfigModel::GetInstance()->SetClassicBlueToothState(state);
+ }
}
else if (viewId == DROPDOWN_4G_TOGGLEBUTTON_VIEWID) // 4G开关
{
- state = toggleButton[DropDownCardPage1::toggleButton_4G]->GetState();
- if (state)
+ if (ConfigModel::GetInstance()->GetCat1_4Gability() == false)
{
- uapi_set4GCapability(true);
- ConfigModel::GetInstance()->SetCat1_4Gability(uapi_cat1_get_power_stat());
+ NativeAbility::GetInstance().EnterSlice(VIEW_NETWORKANDCALL);
}
else
{
-#if defined(A5133_DEMO_CLIENT) || defined(A5133_DEMO_SERVER)
- uapi_set4GCapability(true);
-#else
- uapi_set4GCapability(false);
-#endif
- ConfigModel::GetInstance()->SetCat1_4Gability(uapi_cat1_get_power_stat());
+ state = toggleButton[DropDownCardPage1::toggleButton_4G]->GetState();
+ Updat4GState(state);
+ ConfigModel::GetInstance()->SetCat1_4Gability(state);
}
}
else if (viewId == DROPDOWN_ALIPAY_TOGGLEBUTTON_VIEWID) // 支付宝
bool state_dnotdisturb = DnotDisturbModel::GetInstance().GetDoNotDisturbModeEnabled();
ToggleButtonConfig toggleButtonConfig[] = {
- {0, 0, 100, 100, DROPDOWN_BT_TOGGLEBUTTON_VIEWID, DROPDOWN_BT_IMAGE, DROPDOWN_BT_IMAGE, true, true},
- {110, 0, 100, 100, DROPDOWN_4G_TOGGLEBUTTON_VIEWID, DROPDOWN_4G_ON_IMAGE, DROPDOWN_4G_OFF_IMAGE, true, state_4g},
+ {0, 0, 100, 100, DROPDOWN_BT_TOGGLEBUTTON_VIEWID, state_bt ? DROPDOWN_BT_CONNECT_IMAGE : DROPDOWN_BT_DISCONNECT_IMAGE, state_bt ? DROPDOWN_BT_CONNECT_IMAGE : DROPDOWN_BT_DISCONNECT_IMAGE, true, state_bt},
+ {110, 0, 100, 100, DROPDOWN_4G_TOGGLEBUTTON_VIEWID, state_4g ? DROPDOWN_4G_ON_IMAGE : DROPDOWN_4G_OFF_IMAGE, state_4g ? DROPDOWN_4G_ON_IMAGE : DROPDOWN_4G_OFF_IMAGE, true, state_4g},
{220, 0, 100, 100, DROPDOWN_ALIPAY_TOGGLEBUTTON_VIEWID, DROPDOWN_ALIPAY_IMAGE, DROPDOWN_ALIPAY_IMAGE, true, true},
{330, 0, 100, 100, DROPDOWN_SAVEPOWER_TOGGLEBUTTON_VIEWID, state_savepower ? DROPDOWN_SAVEPOWER_ON_IMAGE : DROPDOWN_SAVEPOWER_OFF_IMAGE, state_savepower ? DROPDOWN_SAVEPOWER_ON_IMAGE : DROPDOWN_SAVEPOWER_OFF_IMAGE, true, state_savepower},
{55, 100, 100, 100, DROPDOWN_SLEEP_TOGGLEBUTTON_VIEWID, state_sleep ? DROPDOWN_SLEEP_ON_IMAGE : DROPDOWN_SLEEP_OFF_IMAGE, state_sleep ? DROPDOWN_SLEEP_ON_IMAGE : DROPDOWN_SLEEP_OFF_IMAGE, true, state_sleep},
return toggleButton[index];
}
+ void DropDownCardPage1::UpdateBTState(bool state)
+ {
+ if (toggleButton[DropDownCardPage1::toggleButton_BT] != nullptr)
+ {
+ const char *ImageSrc = state ? DROPDOWN_BT_CONNECT_IMAGE : DROPDOWN_BT_DISCONNECT_IMAGE;
+ toggleButton[DropDownCardPage1::toggleButton_BT]->SetImages(ImageSrc, ImageSrc);
+ }
+ }
+
+ void DropDownCardPage1::Updat4GState(bool state)
+ {
+ if (toggleButton[DropDownCardPage1::toggleButton_4G] != nullptr)
+ {
+ const char *ImageSrc = state ? DROPDOWN_4G_ON_IMAGE : DROPDOWN_4G_OFF_IMAGE;
+ toggleButton[DropDownCardPage1::toggleButton_4G]->SetImages(ImageSrc, ImageSrc);
+ }
+ }
+
void DropDownCardPage1::UpdateDnotdisturbState(bool state)
{
if (toggleButton[DropDownCardPage1::toggleButton_DNOTDISTURB] != nullptr)
if (toggleButton[DropDownCardPage1::toggleButton_SLEEP] != nullptr)
{
const char *ImageSrc = state ? DROPDOWN_SLEEP_ON_IMAGE : DROPDOWN_SLEEP_OFF_IMAGE;
- toggleButton[DropDownCardPage1::toggleButton_DNOTDISTURB]->SetImages(ImageSrc, ImageSrc);
+ toggleButton[DropDownCardPage1::toggleButton_SLEEP]->SetImages(ImageSrc, ImageSrc);
}
}
}
\ No newline at end of file
/*
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-04-23 09:59:32
- * @LastEditors: SnickerSun snickersun@163.com
- * @LastEditTime: 2024-08-26 19:45:23
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-08-26 19:31:45
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/networkandcall/src/NetworkAndCallPresenter.cpp
*/
#include "AppViewIDs.h"
#include <PlayerListDelSongView.h>\r
#include "ConfigModel.h"\r
#include "ctype.h"\r
+#include <custom_utils.h>\r
namespace OHOS {\r
static PlayerOnDragListener *g_pPlayerOnDragListener = nullptr;\r
static JumpView *g_pJumpView = nullptr;\r
return;\r
}\r
playersView->ChangeView(PlayersView::MAIN_MUSICPLAYER_VIEW, PlayersView::MUSIC_VOLUME_CONTROL_VIEW);\r
- int32_t volume = ConfigModel::GetInstance()->GetSystemVolume();\r
+ int32_t volume = uapi_systemVolumeGet();\r
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "current volume = %d", volume);\r
if( playersView->GetVolumeSettingView()->GetProgress()) {\r
playersView->GetVolumeSettingView()->GetProgress()->SetValue(volume);\r
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-07-18 14:55:27
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-24 14:48:41
+ * @LastEditTime: 2024-08-26 20:56:46
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp
*/
static void FuncKeyDoubleClickCallBack(void)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "FuncKeyDoubleClickCallBack");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FuncKeyDoubleClickCallBack");
RebootAndShutdownPresenter *rebootAndShutdownPresenter = RebootAndShutdownPresenter::GetInstance();
if (rebootAndShutdownPresenter != nullptr && true == rebootAndShutdownPresenter->GetIsShutDownImageAnimator())
}
uint16_t current_slice_id = OHOS::NativeAbility::GetInstance().GetCurSliceId();
- for (uint16_t i = 0; i < sizeof(intercept_slice_ids) / sizeof(intercept_slice_ids); i++)
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "current_slice_id = %d", current_slice_id);
+ for (uint16_t i = 0; i < sizeof(intercept_slice_ids) / sizeof(intercept_slice_ids[0]); i++)
{
if (intercept_slice_ids[i] == current_slice_id)
{
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-03-30 09:14:38\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-06-13 10:44:21\r
+ * @LastEditTime: 2024-08-26 09:44:39\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordDeleteView.h\r
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
*/\r
virtual ~RecordDeleteView();\r
static RecordDeleteView *GetInstance(void);\r
UIScrollView *RecordDeleteViewInit(void);\r
- void ClearAll(void);\r
+ void SetRecordDeleteName(const char * name);\r
\r
private:\r
UILabelExt *CreateRecordDeleteLabel(LabelConfig &labelconfig); // 设置标签\r
bool RecordDeleteScrollViewInit(void);\r
bool RecordDeleteLabelViewInit(void);\r
bool RecordDeleteButtonViewInit(void);\r
+ void ClearAll(void);\r
\r
UIScrollView *RecordDeleteViewScrollView{nullptr};\r
UILabelExt *TitleLabel{nullptr};\r
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-03-30 09:14:38\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-06-13 10:00:02\r
+ * @LastEditTime: 2024-08-26 16:10:38\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordListView.h\r
*/\r
#ifndef RECORD_LIST_VIEW_H\r
#include "record/include/RecordingListAdapter.h"\r
namespace OHOS\r
{\r
- static constexpr char *RECORDLISTSCROLLVIEW = "RecordListScrollView";\r
+ static constexpr const char *RECORDLISTSCROLLVIEW = "RecordListScrollView";\r
class RecordListView\r
{\r
\r
bool RecordListListViewInit(void);\r
void AddRecordingToList(const RecordingListItem &item);\r
void InitRecordingInfo(void);\r
- void UpdateVisibilityBasedOnRecordingList();\r
void ClearAll(void);\r
void IsVisibleLabel(bool value);\r
\r
RECORDER_RESPONSE_MAX,
};
+#define MAX_RECORDING_NUM 20
+ typedef struct
+ {
+ char recordingFileName[32]; // 录音文件名
+ char recordingDuration[16]; // 录音时长
+ char recordingTime[16]; // 录音时间
+ } RecordingInfo;
+
class RecordingPlayerInterruptListener;
class RecordingModel
{
void InitRecordingListItem();
std::vector<RecordingListItem> &GetRecordinglistItems();
std::string GetCurrentPlayRecordingName(void);
- int &GetRecordingListNum();
+ int GetRecordingListNum();
+ void SetRecordingListNum(int value);
std::string GetCleanFileName(const std::string &filePath);
void SearchFiles(const std::string &directory, std::vector<std::string> &fileNames, int &mp3FileCount);
- void KeepClickRecordingIndex(int index_);
- int &GetClickRecordingIndex(void);
+ void SetClickRecordingIndex(int index_);
+ int GetClickRecordingIndex(void);
std::vector<std::string> &GetFileNames(void);
- void KeepTotalRecordDuration(std::string time);
+ void SetTotalRecordDuration(std::string time);
std::string GetTotalRecordDuration(void) const;
- std::string Getyyyymmhhh_date(void) const;
+ RecordingInfo *GetRecordingInfo();
+ void SetRecordingInfo(RecordingInfo &info, int index);
+ void UpdateRecordingInfo(int index);
+ void SetRecordFileName(std::string name);
+ std::string GetRecordFileName(void);
+ std::string Getyyyymmhhh_date(void);
std::string &Getyyyymmhhh_dateAndTotalRecordDuration(void);
std::shared_ptr<RecordingPlayerInterruptListener> GetRecordingPlayerIntrptListener(void);
void ClearActivateAudioInterrupt(void);
std::shared_ptr<Player> GetPlayerCtr(void);
void SetAudioInitStatus(bool value);
/* ----------------------------------- 定时器 ---------------------------------- */
- void Recording_StartTimer(uint32_t interval);
+ void Recording_StartTimer(uint32_t interval = 1000);
void Recording_StopTimer(void);
char *DisplayRecordDuration(void);
const char *GetRecordDirectory() const;
+ static std::string recordTempDuration; // 录音时长
+ int RecordDataWriteToFile();
+ int RecordDataReadToFile();
private:
RecordingModel();
bool isStopAndReset{false}; // 判断是否是停止还是重置状态
bool audioInitStatus{false};
/* -------------------------------------------------------------------------- */
- std::vector<std::string> fileNames; // 文件名
+ std::vector<std::string> fileNames; // 文件名数组
int RecordingMp3FileCount = 0; // 录音MP3数量
const std::string directory = "/user/userdata/recording/"; // 录音目录
- std::vector<RecordingListItem> Recordings; // 存放录音信息的动态数组
+ const std::string recordInfoFile = "/user/userdata/recording/recordinfo.bin";
+ std::vector<RecordingListItem> Recordings{0}; // 存放录音信息的动态数组
std::string recordDuration; // 录音时长
- int index; // 保存被点击录音的下标
- char *yyyymmhhh_date; // 保存年月日时间
- std::string TotalRecordDuration; // 保存录音的总时长
- std::string RecordingTimeAndDuration; // 录音日期和录音时长
+ /* -------------------------------------------------------------------------- */
+ int index; // 保存被点击录音的下标
+ std::string recordFileName; // 录音文件名
+ char *yyyymmhhh_date; // 保存年月日时间
+ std::string TotalRecordDuration; // 保存录音的总时长
+ std::string RecordingTimeAndDuration; // 录音日期和录音时长
+ RecordingInfo recordingInfo[MAX_RECORDING_NUM] = {0};
+ /* -------------------------------------------------------------------------- */
};
}
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-02-27 09:16:51\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-06-13 11:23:15\r
+ * @LastEditTime: 2024-08-26 15:23:43\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingPresenter.h\r
*/\r
\r
\r
static RecordingPresenter *GetInstance();\r
int convertNumericDateTime(const char *numericDateTime, char *formattedDateTime);\r
- void deleteFile(const char *filepath);\r
\r
private:\r
// 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
bool OnDrag(UIView &view, const DragEvent &event) override;\r
bool OnDragEnd(UIView &view, const DragEvent &event) override;\r
bool OnKeyAct(UIView &view, const KeyEvent &event) override;\r
+ void StartRecord(void);\r
+ void StopRecord(void);\r
RecordingModel *p_RecordingModel{nullptr};\r
};\r
}\r
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-03-30 09:14:38\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-06-13 11:06:56\r
+ * @LastEditTime: 2024-08-24 16:01:13\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingView.h\r
*/\r
#ifndef RECORD_VIEW_H\r
UILabelExt *AttentionLabel{nullptr};\r
UIImageAnimatorView *RecordingViewImageAnimator{nullptr};\r
UIImageView *RECORD1_Image = nullptr;\r
+ UIImageView *pullUp_Image = nullptr;\r
};\r
} // namespace OHOS\r
\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::ClearAll");\r
RecordDeleteViewScrollView->RemoveAll();\r
-\r
- delete TitleLabel;\r
- TitleLabel = nullptr;\r
-\r
- delete AttentionLabel;\r
- AttentionLabel = nullptr;\r
-\r
- delete DeleteNameLabel;\r
- DeleteNameLabel = nullptr;\r
-\r
- delete RECORD_DELETE_ON_BUTTON;\r
- RECORD_DELETE_ON_BUTTON = nullptr;\r
-\r
- delete RECORD_DELETE_OFF_BUTTON;\r
- RECORD_DELETE_OFF_BUTTON = nullptr;\r
-\r
- delete RecordDeleteViewScrollView;\r
- RecordDeleteViewScrollView = nullptr;\r
+ if (TitleLabel)\r
+ {\r
+ delete TitleLabel;\r
+ TitleLabel = nullptr;\r
+ }\r
+ if (AttentionLabel)\r
+ {\r
+ delete AttentionLabel;\r
+ AttentionLabel = nullptr;\r
+ }\r
+ if (DeleteNameLabel)\r
+ {\r
+ delete DeleteNameLabel;\r
+ DeleteNameLabel = nullptr;\r
+ }\r
+ if (RECORD_DELETE_ON_BUTTON)\r
+ {\r
+ delete RECORD_DELETE_ON_BUTTON;\r
+ RECORD_DELETE_ON_BUTTON = nullptr;\r
+ }\r
+ if (RECORD_DELETE_OFF_BUTTON)\r
+ {\r
+ delete RECORD_DELETE_OFF_BUTTON;\r
+ RECORD_DELETE_OFF_BUTTON = nullptr;\r
+ }\r
+ if (RecordDeleteViewScrollView)\r
+ {\r
+ delete RecordDeleteViewScrollView;\r
+ RecordDeleteViewScrollView = nullptr;\r
+ }\r
}\r
}\r
\r
label->SetLineBreakMode(labelconfig.lineBreakMode); // 断行模式。\r
label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
+ label->SetRollSpeed(70);\r
\r
return label;\r
}\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::RecordDeleteLabelViewInit");\r
LabelConfig labelconfig = {\r
.left = 83,\r
- .top = 52,\r
+ .top = 50,\r
.width = 300,\r
.height = 35,\r
.fontSize = 30,\r
.lineHeigh = 35,\r
//.text = "删除录音",\r
.textId = STR_DELETE_RECORDING,\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
TitleLabel = CreateRecordDeleteLabel(labelconfig);\r
if (nullptr == TitleLabel)\r
.lineHeigh = 35,\r
//.text = "是否永久删除",\r
.textId = STR_DELETE_PERMANENTLY,\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
AttentionLabel = CreateRecordDeleteLabel(labelconfig);\r
if (nullptr == AttentionLabel)\r
AttentionLabel->SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff));\r
RecordDeleteViewScrollView->Add(AttentionLabel);\r
/* -------------------------------------------------------------------------- */\r
- labelconfig.top = 215;\r
- labelconfig.textId = STR_AUDIO_XX;\r
- DeleteNameLabel = CreateRecordDeleteLabel(labelconfig);\r
- if (nullptr == DeleteNameLabel)\r
+ if (DeleteNameLabel == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::DeleteNameLabel is nullptr!");\r
- return false;\r
+ DeleteNameLabel = new UILabelExt();\r
+ if (DeleteNameLabel == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::DeleteNameLabel is nullptr!");\r
+ return false;\r
+ }\r
}\r
+ DeleteNameLabel->SetPosition(0, 0, 360, 35); // 位置大小\r
+ DeleteNameLabel->SetStyle(STYLE_TEXT_FONT, 30); // 字体大小\r
+ DeleteNameLabel->SetStyle(STYLE_LINE_HEIGHT, 35); // 字体行高\r
+ DeleteNameLabel->SetText(""); // 内容\r
+ DeleteNameLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION); // 断行模式。\r
+ DeleteNameLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ DeleteNameLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
RecordDeleteViewScrollView->Add(DeleteNameLabel);\r
+ DeleteNameLabel->LayoutCenterOfParent(); // 与父视图中心对齐\r
\r
return true;\r
}\r
return RecordDeleteViewScrollView;\r
}\r
\r
+ void RecordDeleteView::SetRecordDeleteName(const char *name)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordDeleteViewInit::SetRecordDeleteName");\r
+ if (DeleteNameLabel)\r
+ {\r
+ DeleteNameLabel->SetText(name);\r
+ DeleteNameLabel->Invalidate();\r
+ }\r
+ }\r
}
\ No newline at end of file
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordGoingView::RecordGoingLabelViewInit");\r
LabelConfig labelconfig = {\r
.left = 83,\r
- .top = 52,\r
+ .top = 50,\r
.width = 300,\r
.height = 35,\r
.fontSize = 30,\r
.lineHeigh = 35,\r
//.text = "录音机",\r
.textId = STR_RECORDER,\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
\r
TitleLabel = CreateRecordGoingLabelExt(labelconfig);\r
.lineHeigh = 35,\r
//.text = "录音机",\r
.textId = STR_RECORDING,\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
RecordGoingLabel = CreateRecordGoingLabelExt(labelconfig);\r
if (nullptr == RecordGoingLabel)\r
.fontSize = 65,\r
.lineHeigh = 76,\r
.text = "00:00:00",\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
Timer = CreateRecordGoingLabel(labelconfig);\r
if (nullptr == Timer)\r
/*\r
* @Author: luozheng 1732036298@qq.com\r
- * @Date: 2024-02-27 09:16:52\r
+ * @Date: 2024-02-27 09:16:50\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-06-13 09:42:18\r
+ * @LastEditTime: 2024-08-27 14:38:37\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordListView.cpp\r
*/\r
\r
{\r
\r
static RecordListView *g_pRecordListView{nullptr};\r
-\r
RecordListView::RecordListView()\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListView::RecordListView");\r
\r
void RecordListView::ClearAll()\r
{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClearAll");\r
if (RecordListScrollView != nullptr)\r
{\r
// 首先移除所有子视图\r
RecordListScrollView->RemoveAll();\r
-\r
- // 释放各个资源\r
- delete RecordListViewAttentionLabel;\r
- RecordListViewAttentionLabel = nullptr;\r
-\r
- delete RecordListViewTitleLabel;\r
- RecordListViewTitleLabel = nullptr;\r
-\r
- delete p_RecordingListAdapter;\r
- p_RecordingListAdapter = nullptr;\r
-\r
+ if (RecordListViewAttentionLabel != nullptr)\r
+ {\r
+ delete RecordListViewAttentionLabel;\r
+ RecordListViewAttentionLabel = nullptr;\r
+ }\r
+ if (RecordListViewTitleLabel != nullptr)\r
+ {\r
+ delete RecordListViewTitleLabel;\r
+ RecordListViewTitleLabel = nullptr;\r
+ }\r
+ if (p_RecordingListAdapter != nullptr)\r
+ {\r
+ delete p_RecordingListAdapter;\r
+ p_RecordingListAdapter = nullptr;\r
+ }\r
// 释放点击监听器\r
if (UIView::OnClickListener *clicklister = recordList->GetOnClickListener())\r
{\r
delete clicklister;\r
clicklister = nullptr;\r
}\r
-\r
// 释放拖动监听器\r
if (UIView::OnDragListener *dragLister = RecordListScrollView->GetOnDragListener())\r
{\r
delete dragLister;\r
dragLister = nullptr;\r
}\r
-\r
if (clickListener != nullptr)\r
{\r
delete clickListener;\r
clickListener = nullptr;\r
}\r
-\r
// 最后释放 RecordListScrollView 及其子视图\r
- delete recordList;\r
- recordList = nullptr;\r
-\r
- delete RecordListScrollView;\r
- RecordListScrollView = nullptr;\r
+ if (recordList != nullptr)\r
+ {\r
+ delete recordList;\r
+ recordList = nullptr;\r
+ }\r
+ if (RecordListScrollView != nullptr)\r
+ {\r
+ delete RecordListScrollView;\r
+ RecordListScrollView = nullptr;\r
+ }\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClearAll");\r
}\r
}\r
\r
// 添加录音到list\r
void RecordListView::AddRecordingToList(const RecordingListItem &item)\r
{\r
- p_RecordingListAdapter->AddListItem(item);\r
+ if (p_RecordingListAdapter != nullptr)\r
+ {\r
+ p_RecordingListAdapter->AddListItem(item);\r
+ }\r
}\r
\r
// 把录音信息数据拿到存储到list中\r
void RecordListView::InitRecordingInfo(void)\r
{\r
std::vector<OHOS::RecordingListItem> &item = RecordingModel::GetInstance()->GetRecordinglistItems();\r
- for (int i = 0; i < RecordingModel::GetInstance()->GetRecordingListNum(); i++)\r
+ for (int i = 0; i < item.size(); i++)\r
{\r
AddRecordingToList(item[i]);\r
}\r
// 每次录音完将数据刷新显示到list\r
void RecordListView::RefreshRecordingListData(void)\r
{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListView::RefreshRecordingListData");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListView::RefreshRecordingListData");\r
RecordingModel::GetInstance()->InitRecordingListItem();\r
- p_RecordingListAdapter->ClearData();\r
- InitRecordingInfo();\r
- recordList->RefreshList();\r
- if (RecordingModel::GetInstance()->GetRecordingListNum() == 0)\r
- {\r
- IsVisibleLabel(true);\r
- }\r
- else\r
+ int num = RecordingModel::GetInstance()->GetRecordingListNum();\r
+ if (p_RecordingListAdapter != nullptr && recordList != nullptr)\r
{\r
- IsVisibleLabel(false);\r
+ if (num == 0)\r
+ {\r
+ IsVisibleLabel(true);\r
+ }\r
+ else\r
+ {\r
+ /* -------------------------------------------------------------------------- */\r
+ IsVisibleLabel(false);\r
+ /* -------------------------------------------------------------------------- */\r
+ if (num == 1)\r
+ {\r
+ recordList->SetHeight(120 * num);\r
+ }\r
+ else if (num == 2)\r
+ {\r
+ recordList->SetHeight(120 * num);\r
+ }\r
+ else\r
+ {\r
+ recordList->SetHeight(340);\r
+ }\r
+ p_RecordingListAdapter->ClearData();\r
+ InitRecordingInfo();\r
+ recordList->RefreshList();\r
+ recordList->Invalidate();\r
+ }\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListView::RefreshRecordingListData over!!");\r
}\r
return;\r
}\r
// 设置提醒标签是否可见\r
void RecordListView::IsVisibleLabel(bool value)\r
{\r
- if (value == true)\r
- {\r
- RecordListViewAttentionLabel->SetVisible(true);\r
- recordList->SetVisible(false); // 列表设置不可见\r
- RecordListScrollView->SetVerticalScrollState(false);\r
- }\r
- else\r
- {\r
- RecordListViewAttentionLabel->SetVisible(false);\r
- recordList->SetVisible(true); // 列表设置可见\r
- RecordListScrollView->SetVerticalScrollState(true);\r
- }\r
- }\r
-\r
- //根据录音列表中录音的数量来更新某个标签或视图的可见性。\r
- void RecordListView::UpdateVisibilityBasedOnRecordingList()\r
- {\r
- if (RecordingModel::GetInstance()->GetRecordingListNum() == 0)\r
- {\r
- IsVisibleLabel(true);\r
- }\r
- else\r
+ if (RecordListViewAttentionLabel && recordList)\r
{\r
- IsVisibleLabel(false);\r
+ if (value == true)\r
+ {\r
+ RecordListViewAttentionLabel->SetVisible(true);\r
+ recordList->SetVisible(false); // 列表设置不可见\r
+ }\r
+ else\r
+ {\r
+ RecordListViewAttentionLabel->SetVisible(false);\r
+ recordList->SetVisible(true); // 列表设置可见\r
+ }\r
}\r
}\r
\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListView::SetUpRecordListViewLabel");\r
LabelConfig labelconfig = {\r
.left = 83,\r
- .top = 52,\r
+ .top = 50,\r
.width = 300,\r
.height = 35,\r
.fontSize = 30,\r
.lineHeigh = 35,\r
- //.text = "录音列表",\r
- .textId = STR_RECORDING_LIST,\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .textId = STR_RECORDING_LIST, // 录音列表\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
\r
RecordListViewTitleLabel = CreateRecordListLabel(labelconfig);\r
}\r
\r
labelconfig = {\r
- .left = 33,\r
- .top = 273,\r
- .width = 400,\r
- .height = 30,\r
- .fontSize = 26,\r
- .lineHeigh = 30,\r
- //.text = "当前录音列表为空",\r
- .textId = STR_CRLEMPTY,\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .left = 53,\r
+ .top = 280,\r
+ .width = 360,\r
+ .height = 35,\r
+ .fontSize = 30,\r
+ .lineHeigh = 35,\r
+ .textId = STR_CRLEMPTY, // 当前录音列表为空\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
RecordListViewAttentionLabel = CreateRecordListLabel(labelconfig);\r
if (nullptr == RecordListViewAttentionLabel)\r
bool RecordListView::RecordListListViewInit(void)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListView::RecordListViewInit");\r
- p_RecordingListAdapter = new RecordingListAdapter();\r
- clickListener = static_cast<UIView::OnClickListener *>(new RecordListViewListener());\r
- p_RecordingListAdapter->SetItemClickListener(clickListener);\r
- recordList = new UIList();\r
+ if (p_RecordingListAdapter == nullptr)\r
+ {\r
+ p_RecordingListAdapter = new RecordingListAdapter();\r
+ if (p_RecordingListAdapter == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListView::p_RecordingListAdapter is nullptr!");\r
+ return false;\r
+ }\r
+ clickListener = static_cast<UIView::OnClickListener *>(new RecordListViewListener());\r
+ if (clickListener == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListView::clickListener is nullptr!");\r
+ return false;\r
+ }\r
+ p_RecordingListAdapter->SetItemClickListener(clickListener);\r
+ }\r
if (recordList == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListView::recordList is nullptr!");\r
- return false;\r
+ recordList = new UIList();\r
+ if (recordList == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListView::recordList is nullptr!");\r
+ return false;\r
+ }\r
}\r
- recordList->SetPosition(43, 120, 380, 300);\r
+ recordList->SetPosition(43, 120, 380, 340);\r
recordList->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
- recordList->SetSelectPosition(233);\r
recordList->SetThrowDrag(true); // 设置手指抬起屏幕后是否继续滚动。\r
recordList->SetTouchable(true);\r
recordList->SetDraggable(true);\r
recordList->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。\r
- recordList->SetReboundSize(50);\r
+ recordList->SetDragACCLevel(5);\r
+ recordList->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/\r
+ recordList->SetReboundSize(30);\r
+ recordList->SetScrollBlankSize(30);\r
recordList->SetIntercept(true); // 设置是否拦截输入事件。如果被截获,视图在本地处理后不会将输入事件传递给父视图。\r
- InitRecordingInfo();\r
recordList->SetAdapter(p_RecordingListAdapter);\r
- recordList->RefreshList();\r
RecordListScrollView->Add(recordList);\r
return true;\r
}\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListViewInit fail!!");\r
return nullptr;\r
}\r
-\r
- if (RecordingModel::GetInstance()->GetRecordingListNum() == 0)\r
- {\r
- IsVisibleLabel(true);\r
- }\r
- else\r
- {\r
- IsVisibleLabel(false);\r
- }\r
-\r
return RecordListScrollView;\r
}\r
}
\ No newline at end of file
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-02 20:10:18
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-13 11:41:18
+ * @LastEditTime: 2024-08-24 17:40:14
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingListitemView.cpp
*/
#include "record/include/RecordingListitemView.h"
RecordingListitemView::RecordingListitemView()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingListitemView::RecordingListitemView");
- SetPosition(43, 100, 380, 120);
+ SetPosition(0, 0, 380, 120);
SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
SetStyle(STYLE_BACKGROUND_OPA, 255);
SetTouchable(true);
#include "custom_utils.h"
#include <cmsis_os2.h>
#include <service/graphic_service.h>
+#include <cstring>
namespace OHOS
{
-
+ std::string RecordingModel::recordTempDuration = 0;
static MutexId g_mutex;
- RecordingModel::RecordingModel()
- {
- // g_mutex = MUTEX_InitValue();
- }
+ RecordingModel::RecordingModel() {}
- RecordingModel::~RecordingModel()
- {
- }
+ RecordingModel::~RecordingModel() {}
RecordingModel *RecordingModel::GetInstance(void)
{
{
char buffer[10]; // 足够存放 "00:00\0" 的字符数组
sprintf(buffer, "%02d:%02d", minutes, seconds);
- KeepTotalRecordDuration(buffer);
+ SetTotalRecordDuration(buffer);
}
else
{
char buffer[12]; // 足够存放 "00:00:00\0" 的字符数组
sprintf(buffer, "%02d:%02d:%02d", hours, minutes, seconds);
- KeepTotalRecordDuration(buffer);
+ SetTotalRecordDuration(buffer);
}
}
ret = PlayerCtr->GetDuration(DurationTime);
if (ret != -1)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%s,%d] GetDuration:%lld, ret:%d", __func__, __LINE__, DurationTime, ret);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetDuration:%ld, ret:%d", DurationTime, ret);
}
else
{
*/
void RecordingModel::PreviousPlayout(void)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PreviousPlayout, index %d.", GetClickRecordingIndex());
- if ((GetClickRecordingIndex() > GetRecordingListNum() - 1) || (GetClickRecordingIndex() < 0))
+ int index = GetClickRecordingIndex();
+ int num = GetRecordingListNum();
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PreviousPlayout before index %d.", index);
+ if ((index > num - 1) || (index < 0))
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "currentIndex err");
- KeepClickRecordingIndex(0);
+ SetClickRecordingIndex(0);
return;
}
- GetClickRecordingIndex()--; // 上一曲
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PreviousPlayout, index %d.", GetClickRecordingIndex());
- if (GetClickRecordingIndex() < 0)
- {
- KeepClickRecordingIndex(GetRecordingListNum() - 1);
- }
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PreviousPlayout, index %d.", GetClickRecordingIndex());
- RecordingPlayerInit(GetClickRecordingIndex());
+ SetClickRecordingIndex(--index < 0 ? num - 1 : index); // 如果从第一首录音设置上一首,那就跳到最后一首
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PreviousPlayout after index %d.", GetClickRecordingIndex());
SetCircleProgress(0);
}
*/
void RecordingModel::NextPlayout(void)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout, index %d.", GetClickRecordingIndex());
- if ((GetClickRecordingIndex() > GetRecordingListNum() - 1) || (GetClickRecordingIndex() < 0))
+ int index = GetClickRecordingIndex();
+ int num = GetRecordingListNum();
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout before index %d.", index);
+ if ((index > num - 1) || (index < 0))
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "currentIndex err");
- KeepClickRecordingIndex(0);
+ SetClickRecordingIndex(0);
return;
}
- GetClickRecordingIndex()++; // 下一曲
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout, index %d.", GetClickRecordingIndex());
- if (GetClickRecordingIndex() > GetRecordingListNum() - 1)
- {
- KeepClickRecordingIndex(0);
- }
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout, index %d.", GetClickRecordingIndex());
- RecordingPlayerInit(GetClickRecordingIndex());
+ SetClickRecordingIndex(++index > num - 1 ? 0 : index); // 如果从最后一首录音设置下一首,那就跳到第一首
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout after index %d.", GetClickRecordingIndex());
SetCircleProgress(0);
}
*/
void RecordingModel::InitRecordingListItem(void)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingModel::InitRecordingListItem");
- // 获取日期
- char *yyyymmhhh_date_new = uapi_get_local_yyyymmdd_date();
- if (yyyymmhhh_date_new == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get local date");
- return; // 或者进行适当的错误处理
- }
- // 释放之前分配的日期字符串内存(如果之前有)
- if (yyyymmhhh_date != nullptr)
- {
- free(yyyymmhhh_date);
- }
- // 更新日期字符串成员
- yyyymmhhh_date = yyyymmhhh_date_new;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingModel::InitRecordingListItem");
RecordingMp3FileCount = 0;
if (!fileNames.empty())
{
Recordings.clear();
}
SearchFiles(directory, fileNames, RecordingMp3FileCount);
+ RecordDataReadToFile();
if (RecordingMp3FileCount != 0)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Total .mp3 Files Count:%d\n", RecordingMp3FileCount);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Total .mp3 Files Count:%d", RecordingMp3FileCount);
for (const auto &filename : fileNames)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "File Name::%s\n", filename.c_str());
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "File Name::%s", filename.c_str());
}
// 对 Recordings 数组进行操作
for (int i = 0; i < RecordingMp3FileCount; i++)
{
- Recordings.push_back({i, fileNames[i].c_str(), "09:51", yyyymmhhh_date});
+ for (int j = 0; j < RecordingMp3FileCount; j++)
+ {
+ if (fileNames[i] == recordingInfo[j].recordingFileName)
+ {
+ Recordings.push_back({i, recordingInfo[j].recordingFileName, recordingInfo[j].recordingDuration, recordingInfo[j].recordingTime});
+ break;
+ }
+ }
}
}
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingModel::InitRecordingListItem over!!");
}
/*
/*
* @brief 获取录音数量
*/
- int &RecordingModel::GetRecordingListNum(void)
+ int RecordingModel::GetRecordingListNum(void)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingModel::GetRecordingListNum");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingModel::GetRecordingListNum %d", RecordingMp3FileCount);
return RecordingMp3FileCount;
}
+ void RecordingModel::SetRecordingListNum(int value)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingModel::GetRecordingListNum %d", value);
+ RecordingMp3FileCount = value;
+ }
+
/*
* @brief 保存被点击录音下标
*/
- void RecordingModel::KeepClickRecordingIndex(int index_)
+ void RecordingModel::SetClickRecordingIndex(int index_)
{
index = index_;
}
/*
* @brief 获取被点击录音下标
*/
- int &RecordingModel::GetClickRecordingIndex(void)
+ int RecordingModel::GetClickRecordingIndex(void)
{
return index;
}
}
/*
- * @brief 保存录音时长
+ * @brief 保存录音的总时长
*/
- void RecordingModel::KeepTotalRecordDuration(std::string time)
+ void RecordingModel::SetTotalRecordDuration(std::string time)
{
TotalRecordDuration = time;
}
/*
* @brief 获取录音年月日时间
*/
- std::string RecordingModel::Getyyyymmhhh_date(void) const
+ std::string RecordingModel::Getyyyymmhhh_date(void)
{
+ char *yyyymmhhh_date_new = uapi_get_local_yyyymmdd_date(); // 获取日期
+ if (yyyymmhhh_date_new == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get local date");
+ return ""; // 或者进行适当的错误处理
+ }
+ // 释放之前分配的日期字符串内存(如果之前有)
+ if (yyyymmhhh_date != nullptr)
+ {
+ free(yyyymmhhh_date);
+ }
+ // 更新日期字符串成员
+ yyyymmhhh_date = yyyymmhhh_date_new;
return yyyymmhhh_date;
}
+ RecordingInfo *RecordingModel::GetRecordingInfo()
+ {
+ return recordingInfo;
+ }
+
+ // 设置每首录音的信息
+ void RecordingModel::SetRecordingInfo(RecordingInfo &info, int index)
+ {
+ recordingInfo[index] = info;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recordingFileName = %s", recordingInfo[index].recordingFileName);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recordingDuration = %s", recordingInfo[index].recordingDuration);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recordingTime = %s", recordingInfo[index].recordingTime);
+ }
+
+ void RecordingModel::UpdateRecordingInfo(int index)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateRecordingInfo %s", recordingInfo[index].recordingFileName);
+ if (index < 0 || index > RecordingMp3FileCount)
+ {
+ return;
+ }
+ char *file_name = recordingInfo[index].recordingFileName;
+ std::string delete_filename = (directory + file_name).append(".mp3");
+ /* -------------------------------- 删除录音文件 -------------------------------- */
+ uapi_delete_files(delete_filename.c_str());
+ /* -------------------------------------------------------------------------- */
+ int i = 0;
+ for (i = index; i < (RecordingMp3FileCount - 1); i++)
+ {
+ strcpy(recordingInfo[i].recordingFileName, recordingInfo[i + 1].recordingFileName);
+ strcpy(recordingInfo[i].recordingDuration, recordingInfo[i + 1].recordingDuration);
+ strcpy(recordingInfo[i].recordingTime, recordingInfo[i + 1].recordingTime);
+
+ fileNames[i] = fileNames[i + 1];
+ }
+ RecordingMp3FileCount--;
+ RecordingInfo info = {0};
+ SetRecordingInfo(info, i);
+ fileNames[i].clear();
+ RecordDataWriteToFile();
+ }
+
+ // 设置当前的录音文件名,每次录音会更改
+ void RecordingModel::SetRecordFileName(std::string name)
+ {
+ recordFileName = name;
+ }
+
+ // 获取当前的录音文件名,每次录音会更改
+ std::string RecordingModel::GetRecordFileName(void)
+ {
+ return recordFileName;
+ }
+
/*
* @brief 获取年月日时间和录音时长
*/
std::string &RecordingModel::Getyyyymmhhh_dateAndTotalRecordDuration(void)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[RecordingModel] Getyyyymmhhh_dateAndTotalRecordDuration\n");
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[RecordingModel] Getyyyymmhhh_dateAndTotalRecordDuration");
std::string yyyymmhhh_date = RecordingModel::GetInstance()->Getyyyymmhhh_date();
std::string TotalRecordDuration = RecordingModel::GetInstance()->GetTotalRecordDuration();
// 去掉日期字符串末尾的换行符
{
return directory.c_str();
}
+
+ int RecordingModel::RecordDataWriteToFile()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataWriteToFile,%d", __LINE__, RecordingMp3FileCount);
+ if (0 == RecordingMp3FileCount)
+ {
+ return OHOS_FAILURE;
+ }
+
+ FILE *fp = fopen(recordInfoFile.c_str(), "wb+");
+ if (nullptr == fp)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataWriteToFile fail", __LINE__);
+ return OHOS_FAILURE;
+ }
+
+ size_t ret = fwrite(recordingInfo, sizeof(RecordingInfo), RecordingMp3FileCount, fp);
+ if (RecordingMp3FileCount != ret)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataWriteToFile fail", __LINE__);
+ }
+ fclose(fp);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataWriteToFile success", __LINE__);
+
+ return OHOS_SUCCESS;
+ }
+
+ int RecordingModel::RecordDataReadToFile()
+ {
+ if (0 == RecordingMp3FileCount)
+ {
+ return OHOS_FAILURE;
+ }
+ FILE *fp = fopen(recordInfoFile.c_str(), "rb");
+ if (fp == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataReadToFile", __LINE__);
+ return OHOS_FAILURE;
+ }
+ fread(recordingInfo, sizeof(RecordingInfo), RecordingMp3FileCount, fp);
+ fclose(fp);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataReadToFile success", __LINE__);
+ return OHOS_SUCCESS;
+ }
/* ----------------------------------- 定时器 ---------------------------------- */
// 声明定时器变量
osTimerId_t g_timer = NULL;
seconds = std::to_string(sec);
}
-#if 0
+#if 1
if (hour == 0)
{
- recordDuration = minute + ":" + seconds;
+ recordTempDuration = minute + ":" + seconds;
}
else
{
- recordDuration = hours + ":" + minute + ":" + seconds;
+ recordTempDuration = hours + ":" + minute + ":" + seconds;
}
-#endif
recordDuration = hours + ":" + minute + ":" + seconds;
+#endif
+
return (char *)recordDuration.c_str();
}
button->SetImageSrc(buttonconfig.ImageSrc, buttonconfig.ImageSrc);\r
button->SetImagePosition(20, 20);\r
button->SetStyle(STYLE_BORDER_RADIUS, 100);\r
- button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffff5a36, UIButton::PRESSED);\r
+ button->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);\r
button->SetOnClickListener(clickListener);\r
return button;\r
}\r
{\r
LabelConfig labelconfig = {\r
.left = 83,\r
- .top = 52,\r
+ .top = 50,\r
.width = 300,\r
.height = 35,\r
.fontSize = 30,\r
.lineHeigh = 35,\r
- .text = "录音3",\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .text = "",\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
\r
RecordingFileName = SetUpLabel(labelconfig);\r
labelconfig.top = 102;\r
labelconfig.fontSize = 28;\r
labelconfig.lineHeigh = 33;\r
- labelconfig.text = "2022.04.21 -20:57";\r
+ labelconfig.text = "";\r
RecordingTimeAndDuration = SetUpLabel(labelconfig);\r
if (nullptr == RecordingTimeAndDuration)\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingPlayerView::RecordingTimeAndDuration is nullptr!");\r
return false;\r
}\r
+ RecordingTimeAndDuration->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
return true;\r
}\r
\r
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-03-30 09:14:38\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-08-23 18:35:16\r
+ * @LastEditTime: 2024-08-27 17:48:39\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp\r
*/\r
\r
#include "string.h"\r
#include "record/include/RecordingPresenter.h"\r
#include <wearable_log.h>\r
-#include "../../../../../../drivers/peripheral/utils/custom_utils.h"\r
+#include "custom_utils.h"\r
#include "record/include/RecordingListitemView.h"\r
#include <service/graphic_service.h>\r
#include <unistd.h>\r
#include "record/include/RecordingModel.h"\r
+#include <cstring>\r
\r
namespace OHOS\r
{\r
p_RecordingModel->InitRecordingListItem();\r
p_RecordingModel->AudioInit();\r
Presenter<RecordingView>::OnStart();\r
- //ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);\r
+ // ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);\r
}\r
\r
void RecordingPresenter::OnPause(void)\r
{\r
Presenter<RecordingView>::OnStop();\r
p_RecordingModel->ClearRecordingPlayer();\r
- //ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);\r
+ StopRecord();\r
+\r
+ // ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);\r
}\r
\r
bool RecordingPresenter::OnDrag(UIView &view, const DragEvent &event)\r
\r
switch (event.GetDragDirection())\r
{\r
- case DragEvent::DIRECTION_LEFT_TO_RIGHT:\r
+ case DragEvent::DIRECTION_LEFT_TO_RIGHT: // 右滑退出\r
switch (currentView)\r
{\r
case RECORDINGVIEW:\r
NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
break;\r
case RECORDINGPLAYERVIEW:\r
- p_RecordingView->ChangeView(RECORDINGPLAYERVIEW, RECORDINGLISTVIEW);\r
+ p_RecordingView->ChangeView(RECORDINGPLAYERVIEW, RECORDINGLISTVIEW); // 录音播放视图(subView)->录音列表视图(subView)\r
break;\r
case RECORDINGDELETEVIEW:\r
- p_RecordingView->ChangeView(RECORDINGDELETEVIEW, RECORDINGPLAYERVIEW);\r
+ p_RecordingView->ChangeView(RECORDINGDELETEVIEW, RECORDINGPLAYERVIEW); // 录音删除视图(subView)->录音播放视图(subView)\r
break;\r
case RECORDINGVOLUMESETTINGVIEW:\r
- p_RecordingView->ChangeView(RECORDINGVOLUMESETTINGVIEW, RECORDINGPLAYERVIEW);\r
+ p_RecordingView->ChangeView(RECORDINGVOLUMESETTINGVIEW, RECORDINGPLAYERVIEW); // 声音设置视图(subView)->录音播放视图(subView)\r
break;\r
default:\r
break;\r
return 1; // 转换成功\r
}\r
\r
- /*\r
- * @brief 删除文件\r
- */\r
- void RecordingPresenter::deleteFile(const char *filepath)\r
+#ifdef __cplusplus\r
+ extern "C"\r
{\r
- if (std::remove(filepath) == 0)\r
+#endif\r
+ int32_t AudioCaptureSample(int32_t argc, const char *argv[]);\r
+\r
+#ifdef __cplusplus\r
+ };\r
+#endif\r
+\r
+ /*开始录音*/\r
+ void RecordingPresenter::StartRecord(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView StartRecord");\r
+ char *args[6] = {0};\r
+ const char *defaultArgs[6] = {"01", "mp3", "16000", "1", "16", nullptr}; // 默认参数数组\r
+ for (int i = 0; i < 5; ++i)\r
+ {\r
+ args[i] = (char *)malloc(16); // 分配内存\r
+ sprintf(args[i], "%s", defaultArgs[i]); // 设置默认参数值\r
+ }\r
+ args[5] = (char *)malloc(100); // 分配内存\r
+ /* -------------------------------------------------------------------------- */\r
+ int num = p_RecordingModel->GetRecordingListNum();\r
+ std::string recordfileNme;\r
+ if (num < 9)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Deleted file: %s successed!", filepath);\r
+ recordfileNme = "record_0" + std::to_string(num + 1);\r
}\r
else\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to delete file!");\r
+ recordfileNme = "record_" + std::to_string(num + 1);\r
+ }\r
+ p_RecordingModel->SetRecordFileName(recordfileNme);\r
+ sprintf(args[5], "%s%s.mp3", RecordingModel::GetInstance()->GetRecordDirectory(), recordfileNme.c_str());\r
+ /* ---------------------------------- 开始录音 ---------------------------------- */\r
+ AudioCaptureSample(6, (const char **)args);\r
+ /* --------------------------------- 跳转到录音界面 -------------------------------- */\r
+ view_->ChangeView(RECORDINGVIEW, RECORDGOINGVIEW);\r
+ p_RecordingModel->Recording_StartTimer();\r
+ RecordGoingView::GetInstance()->GetRecordingDurationLabel()->SetText("00:00:00");\r
+ /* ---------------------------------- 释放内存 ---------------------------------- */\r
+ for (int i = 0; i < 6; ++i)\r
+ {\r
+ free(args[i]);\r
}\r
}\r
\r
-#ifdef __cplusplus\r
- extern "C"\r
+ // 停止录音\r
+ void RecordingPresenter::StopRecord(void)\r
{\r
-#endif\r
- int32_t AudioCaptureSample(int32_t argc, const char *argv[]);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView StopRecord");\r
+ int32_t argc = 1;\r
+ uint8_t *argv = (uint8_t *)"stop";\r
+ AudioCaptureSample(argc, (const char **)&argv);\r
+ /* ---------------------------------- 停止定时器 --------------------------------- */\r
+ p_RecordingModel->Recording_StopTimer();\r
+ /* --------------------------------- 设置录音信息 --------------------------------- */\r
+ int index = p_RecordingModel->GetRecordingListNum(); // 保存录音的下标\r
+ std::string recordingFileName = p_RecordingModel->GetRecordFileName(); // 录音文件名\r
+ std::string yyymmhhh_date = RecordingModel::GetInstance()->Getyyyymmhhh_date(); // 保存录音年月日时间\r
+ std::string TotalRecordDuration = RecordingModel::recordTempDuration; // 录音的总时长\r
+ RecordingInfo info = {0};\r
+ strncpy_s(info.recordingFileName, 32, recordingFileName.c_str(), recordingFileName.length());\r
+ strncpy_s(info.recordingDuration, 16, TotalRecordDuration.c_str(), TotalRecordDuration.length());\r
+ strncpy_s(info.recordingTime, 16, yyymmhhh_date.c_str(), yyymmhhh_date.length());\r
+ p_RecordingModel->SetRecordingInfo(info, index);\r
+ p_RecordingModel->SetRecordingListNum(index + 1);\r
+ p_RecordingModel->RecordDataWriteToFile();\r
\r
-#ifdef __cplusplus\r
- };\r
-#endif\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView StopRecord over!!");\r
+ }\r
\r
bool RecordingPresenter::OnClick(UIView &view, const ClickEvent &event)\r
{\r
\r
if (strcmp(view.GetViewId(), RECORD_BUTTON) == 0)\r
{\r
- char *args[6] = {0};\r
- const char *defaultArgs[6] = {"01", "mp3", "16000", "1", "16", nullptr}; // 默认参数数组\r
-\r
- for (int i = 0; i < 5; ++i)\r
- {\r
- args[i] = (char *)malloc(25); // 分配内存\r
- sprintf(args[i], "%s", defaultArgs[i]); // 设置默认参数值\r
- }\r
- args[5] = (char *)malloc(100); // 分配内存\r
-\r
- char *numericDateTime = (char *)malloc(20);\r
- uapi_get_yyyymmddhhmmss_Date(numericDateTime); // 获取形如:19700101000641格式的日期时间\r
- char formattedDateTime[80];\r
- if (convertNumericDateTime(numericDateTime, formattedDateTime))\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Formatted DateTime: %s\n", formattedDateTime);\r
- sprintf(args[5], "%s%s.mp3", RecordingModel::GetInstance()->GetRecordDirectory(), formattedDateTime);\r
- }\r
- else\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to convert numeric date time\n", formattedDateTime);\r
- }\r
- /* ---------------------------------- 开始录音 ---------------------------------- */\r
- AudioCaptureSample(6, (const char **)args);\r
- /* --------------------------------- 跳转到录音界面 -------------------------------- */\r
- p_RecordingView->ChangeView(RECORDINGVIEW, RECORDGOINGVIEW);\r
- p_RecordingModel->Recording_StartTimer(1000);\r
- RecordGoingView::GetInstance()->GetRecordingDurationLabel()->SetText("00:00:00");\r
- /* ---------------------------------- 释放内存 ---------------------------------- */\r
- for (int i = 0; i < 6; ++i)\r
- {\r
- free(args[i]);\r
- }\r
- free(numericDateTime);\r
- /* -------------------------------------------------------------------------- */\r
+ StartRecord();\r
return true;\r
}\r
else if (strcmp(view.GetViewId(), RECORD_GOING_BUTTON_VIEWID) == 0)\r
{\r
- int32_t argc = 1;\r
- uint8_t *argv = (uint8_t *)"stop";\r
- AudioCaptureSample(argc, (const char **)&argv);\r
- p_RecordingView->ChangeView(RECORDGOINGVIEW, RECORDINGVIEW);\r
- p_RecordingModel->Recording_StopTimer();\r
+ StopRecord();\r
+ view_->ChangeView(RECORDGOINGVIEW, RECORDINGVIEW);\r
return true;\r
}\r
- else if (strcmp(view.GetViewId(), RECORD_DELETE_ON_BUTTON_VIEWID) == 0)\r
+ else if (strcmp(view.GetViewId(), RECORD_DELETE_ON_BUTTON_VIEWID) == 0) // 若点击的是录音删除按钮\r
{\r
- std::string fileName = RecordingModel::GetInstance()->GetRecordDirectory() + p_RecordingModel->GetFileNames()[p_RecordingModel->GetClickRecordingIndex()] + ".mp3";\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "fileName:%s\n", fileName.c_str());\r
- deleteFile(fileName.c_str());\r
- if (--p_RecordingModel->GetRecordingListNum() < 0)\r
- {\r
- p_RecordingModel->GetRecordingListNum() = 0;\r
- }\r
+ int index = p_RecordingModel->GetClickRecordingIndex();\r
+ // std::string delete_path = RecordingModel::GetInstance()->GetRecordDirectory();\r
+ // std::string delete_filename = p_RecordingModel->GetFileNames()[index] + ".mp3";\r
+ // std::string fileName = delete_path + delete_filename;\r
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "index = %d ", index);\r
+ // uapi_delete_files(fileName.c_str());//删除录音文件\r
+ p_RecordingModel->UpdateRecordingInfo(p_RecordingModel->GetRecordingListNum() - index - 1);\r
+\r
p_RecordingView->ChangeView(RECORDINGDELETEVIEW, RECORDINGVIEW);\r
return true;\r
}\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingModel GetInstance fail");\r
return false;\r
}\r
- p_RecordingModel->KeepClickRecordingIndex(index);\r
+ p_RecordingModel->SetClickRecordingIndex(index);\r
/* ------------------------ 录音播放初始化,包括录音文件名,录音时间和总时长 ------------------------ */\r
if (p_RecordingModel->RecordingPlayerInit(index) != OHOS_SUCCESS)\r
{\r
return true;\r
}\r
\r
- /*\r
- * @brief 播放按钮被点击\r
- */\r
void RecordingPlayerViewOnClickListener::PlayerButtonOnClick(void)\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingPlayerViewOnClickListener PlayerButtonOnClick");\r
return false;\r
}\r
\r
- if (strcmp(view.GetViewId(), RECORD_PLAY_PAUSE_CHECKBOX_VIEWID) == 0)\r
+ if (strcmp(view.GetViewId(), RECORD_PLAY_PAUSE_CHECKBOX_VIEWID) == 0) // 播放和暂停按钮被点击\r
{\r
PlayerButtonOnClick();\r
}\r
- else if (strcmp(view.GetViewId(), RECORD_PLAY_PROVE_BUTTON_VIEWID) == 0)\r
+ else if (strcmp(view.GetViewId(), RECORD_PLAY_PROVE_BUTTON_VIEWID) == 0) // 上一首按钮被点击\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recording player prove button being clicked!");\r
-\r
p_RecordingModel->PreviousPlayout();\r
-\r
p_RecordingPlayerView->ResetComponentStatus();\r
}\r
- else if (strcmp(view.GetViewId(), RECORD_PLAY_NEXT_BUTTON_VIEWID) == 0)\r
+ else if (strcmp(view.GetViewId(), RECORD_PLAY_NEXT_BUTTON_VIEWID) == 0) // 下一首按钮被点击\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recording player next button being clicked!");\r
-\r
p_RecordingModel->NextPlayout();\r
-\r
p_RecordingPlayerView->ResetComponentStatus();\r
}\r
- else if (strcmp(view.GetViewId(), RECORD_PLAY_DELETE_BUTTON_VIEWID) == 0)\r
+ else if (strcmp(view.GetViewId(), RECORD_PLAY_DELETE_BUTTON_VIEWID) == 0) // 删除按钮被点击\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recording player delete button being clicked!");\r
p_RecordingView->ChangeView(RECORDINGPLAYERVIEW, RECORDINGDELETEVIEW);\r
}\r
- else if (strcmp(view.GetViewId(), RECORD_PLAY_VOLUME_BUTTON_VIEWID) == 0)\r
+ else if (strcmp(view.GetViewId(), RECORD_PLAY_VOLUME_BUTTON_VIEWID) == 0) // 音量按钮被点击\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recording player volume button being clicked!");\r
p_RecordingView->ChangeView(RECORDINGPLAYERVIEW, RECORDINGVOLUMESETTINGVIEW);\r
}\r
return true;\r
#include "../include/RecordingModel.h"\r
namespace OHOS\r
{\r
- static ImageAnimatorInfo RecordingViewImageAnimatorInfo[2] = {\r
- {PNG_ANIMATOR1_IMAGE, {213, 400}, 40, 40, IMG_SRC_FILE_PATH},\r
- {PNG_ANIMATOR2_IMAGE, {213, 400}, 40, 40, IMG_SRC_FILE_PATH},\r
- };\r
-\r
static RecordingView *g_pRecordView{nullptr};\r
-\r
RecordingView::RecordingView()\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::RecordingView");\r
g_pRecordView = this;\r
}\r
-\r
RecordingView::~RecordingView()\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::~RecordingView");\r
g_pRecordView = nullptr;\r
}\r
+ void RecordingView::ClearAll(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::~RecordingView");\r
+ if (container_ != nullptr)\r
+ {\r
+ container_->RemoveAll();\r
+ if (RecordingViewScrollView[RECORDINGVIEW] != nullptr)\r
+ {\r
+ RecordingViewScrollView[RECORDINGVIEW]->RemoveAll();\r
+\r
+ if (RecordingViewTitleLabel != nullptr)\r
+ {\r
+ delete RecordingViewTitleLabel;\r
+ RecordingViewTitleLabel = nullptr;\r
+ }\r
+ if (RecordingViewButton != nullptr)\r
+ {\r
+ delete RecordingViewButton;\r
+ RecordingViewButton = nullptr;\r
+ }\r
+ if (AttentionLabel != nullptr)\r
+ {\r
+ delete AttentionLabel;\r
+ AttentionLabel = nullptr;\r
+ }\r
+ if (RECORD1_Image != nullptr)\r
+ {\r
+ delete RECORD1_Image;\r
+ RECORD1_Image = nullptr;\r
+ }\r
+ if (pullUp_Image != nullptr)\r
+ {\r
+ delete pullUp_Image;\r
+ pullUp_Image = nullptr;\r
+ }\r
+ delete RecordingViewScrollView[RECORDINGVIEW];\r
+ RecordingViewScrollView[RECORDINGVIEW] = nullptr;\r
+ }\r
+ if (p_RecordListView != nullptr)\r
+ {\r
+ delete p_RecordListView;\r
+ p_RecordListView = nullptr;\r
+ }\r
+ if (p_RecordGoingView != nullptr)\r
+ {\r
+ delete p_RecordGoingView;\r
+ p_RecordGoingView = nullptr;\r
+ }\r
+ if (p_RecordingPlayerView != nullptr)\r
+ {\r
+ delete p_RecordingPlayerView;\r
+ p_RecordingPlayerView = nullptr;\r
+ }\r
+ if (p_RecordDeleteView != nullptr)\r
+ {\r
+ delete p_RecordDeleteView;\r
+ p_RecordDeleteView = nullptr;\r
+ }\r
+ if (p_RecordingVolumeSettingView != nullptr)\r
+ {\r
+ delete p_RecordingVolumeSettingView;\r
+ p_RecordingVolumeSettingView = nullptr;\r
+ }\r
+ for (int i = RECORDINGVIEW; i < MAX_RECORDINGVIEWID; i++)\r
+ {\r
+ RecordingViewScrollView[i] = nullptr;\r
+ }\r
+ delete container_;\r
+ container_ = nullptr;\r
+ }\r
+ }\r
\r
RecordingView *RecordingView::GetInstance()\r
{\r
RecordingViewScrollView[thisView] = p_RecordListView->RecordListViewInit();\r
container_->Add(RecordingViewScrollView[thisView]);\r
}\r
- else\r
+ if (p_RecordListView)\r
{\r
- RecordListView::GetInstance()->RefreshRecordingListData();\r
+ p_RecordListView->RefreshRecordingListData();\r
}\r
return true;\r
}\r
RecordingViewScrollView[thisView] = p_RecordDeleteView->RecordDeleteViewInit();\r
container_->Add(RecordingViewScrollView[thisView]);\r
}\r
+ std::string name = RecordingModel::GetInstance()->GetCurrentPlayRecordingName();\r
+ p_RecordDeleteView->SetRecordDeleteName(name.c_str());\r
return true;\r
}\r
\r
Draw();\r
}\r
\r
- void RecordingView::ClearAll(void)\r
- {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::~RecordingView");\r
- if (container_ != nullptr)\r
- {\r
- container_->RemoveAll();\r
- delete container_;\r
- container_ = nullptr;\r
- }\r
-\r
- if (RecordingViewScrollView[RECORDINGVIEW] != nullptr)\r
- {\r
- RecordingViewScrollView[RECORDINGVIEW]->RemoveAll();\r
- delete RecordingViewScrollView[RECORDINGVIEW];\r
- RecordingViewScrollView[RECORDINGVIEW] = nullptr;\r
- }\r
-\r
- RecordingViewImageAnimator->Stop();\r
- delete RecordingViewImageAnimator;\r
- RecordingViewImageAnimator = nullptr;\r
-\r
- delete RecordingViewTitleLabel;\r
- RecordingViewTitleLabel = nullptr;\r
-\r
- delete RecordingViewButton;\r
- RecordingViewButton = nullptr;\r
-\r
- delete AttentionLabel;\r
- AttentionLabel = nullptr;\r
-\r
- delete RECORD1_Image;\r
- RECORD1_Image = nullptr;\r
-\r
- if (p_RecordListView != nullptr)\r
- {\r
- delete p_RecordListView;\r
- p_RecordListView = nullptr;\r
- }\r
- if (p_RecordGoingView != nullptr)\r
- {\r
- delete p_RecordGoingView;\r
- p_RecordGoingView = nullptr;\r
- }\r
- if (p_RecordingPlayerView != nullptr)\r
- {\r
- delete p_RecordingPlayerView;\r
- p_RecordingPlayerView = nullptr;\r
- }\r
-\r
- if (p_RecordDeleteView != nullptr)\r
- {\r
- delete p_RecordDeleteView;\r
- p_RecordDeleteView = nullptr;\r
- }\r
-\r
- if (p_RecordingVolumeSettingView != nullptr)\r
- {\r
- delete p_RecordingVolumeSettingView;\r
- p_RecordingVolumeSettingView = nullptr;\r
- }\r
- }\r
-\r
UIButton *RecordingView::SetTheButton(ButtonConfig &buttonconfig, UIView::OnClickListener *clickListener)\r
{\r
UIButton *button = new UIButton();\r
bool RecordingView::RecordingLabelViewInit(void)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::RecordingLabelViewInit");\r
- RecordingViewTitleLabel = new UILabelExt();\r
if (RecordingViewTitleLabel == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingViewTitleLabel new fail!");\r
- return false;\r
+ RecordingViewTitleLabel = new UILabelExt();\r
+ if (RecordingViewTitleLabel == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingViewTitleLabel new fail!");\r
+ return false;\r
+ }\r
}\r
- RecordingViewTitleLabel->SetPosition(83, 52, 300, 35);\r
+ RecordingViewTitleLabel->SetPosition(83, 50, 300, 35);\r
RecordingViewTitleLabel->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
RecordingViewTitleLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
RecordingViewTitleLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
- // RecordingViewTitleLabel->SetText("录音机");\r
- RecordingViewTitleLabel->SetTextId(STR_RECORDER);\r
- RecordingViewTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
+ RecordingViewTitleLabel->SetTextId(STR_RECORDER); // 录音机\r
+ RecordingViewTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
RecordingViewTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
RecordingViewTitleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
/* -------------------------------------------------------------------------- */\r
- AttentionLabel = new UILabelExt();\r
if (AttentionLabel == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AttentionLabel new fail!");\r
- return false;\r
+ AttentionLabel = new UILabelExt();\r
+ if (AttentionLabel == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AttentionLabel new fail!");\r
+ return false;\r
+ }\r
}\r
AttentionLabel->SetPosition(53, 330, 360, 35);\r
AttentionLabel->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
AttentionLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
AttentionLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
- // AttentionLabel->SetText("点击开始录音");\r
- AttentionLabel->SetTextId(STR_CLICK_TO_RECORD);\r
- AttentionLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
+ AttentionLabel->SetTextId(STR_CLICK_TO_RECORD); // 点击开始录音\r
+ AttentionLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
AttentionLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
AttentionLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
\r
bool RecordingView::RecordingImageViewInit(void)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::RecordingImageViewInit");\r
- RECORD1_Image = new UIImageView();\r
if (RECORD1_Image == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RECORD1_Image new fail!");\r
- return false;\r
+ RECORD1_Image = new UIImageView();\r
+ if (RECORD1_Image == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RECORD1_Image new fail!");\r
+ return false;\r
+ }\r
}\r
RECORD1_Image->SetPosition(158, 129, 150, 150);\r
RECORD1_Image->SetStyle(STYLE_BORDER_RADIUS, 10);\r
RECORD1_Image->SetSrc(PNG_RECORD1_IMAGE);\r
-\r
- return true;\r
- }\r
-\r
- bool RecordingView::RecordingImageAnimatorViewInit(void)\r
- {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::RecordingImageAnimatorViewInit");\r
- RecordingViewImageAnimator = new UIImageAnimatorView();\r
- if (RecordingViewImageAnimator == nullptr)\r
+ /* -------------------------------------------------------------------------- */\r
+ if (pullUp_Image == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingViewImageAnimator new fail!");\r
- return false;\r
+ pullUp_Image = new UIImageView();\r
+ if (pullUp_Image == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "pullUp_Image new fail!");\r
+ return false;\r
+ }\r
}\r
- RecordingViewImageAnimator->SetPosition(213, 400, 40, 40);\r
- RecordingViewImageAnimator->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
- RecordingViewImageAnimator->SetImageAnimatorSrc(RecordingViewImageAnimatorInfo, 2, 200);\r
- RecordingViewImageAnimator->SetTimeOfPause(200);\r
- RecordingViewImageAnimator->SetRepeatTimes(1);\r
- RecordingViewImageAnimator->SetReverse(true);\r
- RecordingViewImageAnimator->Start();\r
+ pullUp_Image->SetPosition(213, 400, 40, 40);\r
+ pullUp_Image->SetAutoEnable(false);\r
+ pullUp_Image->SetResizeMode(UIImageView::CONTAIN);\r
+ pullUp_Image->SetSrc("/user/res/Sleep/up.bin");\r
\r
return true;\r
}\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::RecordingViewInit");\r
// 如果其中任何一个初始化函数返回 false(即初始化失败),则会打印错误日志并返回空指针。\r
if (!RecordingScrollViewInit() || !RecordingLabelViewInit() ||\r
- !RecordingButtonViewInit() || !RecordingImageViewInit() || !RecordingImageAnimatorViewInit())\r
+ !RecordingButtonViewInit() || !RecordingImageViewInit())\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingViewInit fail!!");\r
return;\r
RecordingViewScrollView[RECORDINGVIEW]->Add(RECORD1_Image);\r
RecordingViewScrollView[RECORDINGVIEW]->Add(RecordingViewButton);\r
RecordingViewScrollView[RECORDINGVIEW]->Add(AttentionLabel);\r
- RecordingViewScrollView[RECORDINGVIEW]->Add(RecordingViewImageAnimator);\r
+ RecordingViewScrollView[RECORDINGVIEW]->Add(pullUp_Image);\r
container_->Add(RecordingViewScrollView[RECORDINGVIEW]);\r
}\r
\r
View<RecordingPresenter>::OnStart();\r
SetContainerView(new UIViewGroup());\r
container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
- // container_->SetOnDragListener(presenter_);\r
container_->SetTouchable(true);\r
container_->SetDraggable(true);\r
\r
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-13 17:38:18
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-13 11:21:31
+ * @LastEditTime: 2024-08-26 18:16:06
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingVolumeSettingView.cpp
*/
#include "record/include/RecordingVolumeSettingView.h"
#include "record/include/RecordingPresenter.h"
-
+#include "wearable_log.h"
+#include "ConfigModel.h"
namespace OHOS
{
return nullptr;
}
RecordingVolumeSettingViewScrollView = p_SoundAndVibrationVolumeSettingView->SetUpVolumeProcess();
- UIView::OnDragListener * volumeDragListener = static_cast<UIView::OnDragListener *>(RecordingPresenter::GetInstance());
+ UIView::OnDragListener *volumeDragListener = static_cast<UIView::OnDragListener *>(RecordingPresenter::GetInstance());
if (volumeDragListener == nullptr)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingPresenter GetInstance fail");
return nullptr;
}
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "volume:%d", AudioManager::GetInstance().GetVolume(AUDIO_STREAM_MUSIC));
p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(AudioManager::GetInstance().GetVolume(AUDIO_STREAM_MUSIC));
initViewStatus = true;
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-04-19 18:59:49
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-22 18:35:35
+ * @LastEditTime: 2024-08-26 18:27:45
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationVolumeSettingC.h
*/
#ifndef SOUND_AND_VIBRATION_VOLUME_SETTINGC_H
#include <stdbool.h>
void SystemVolumeSet(int16_t sounding);
+ int SystemVolumeGet(void);
void CallVolumeSet(int16_t sounding);
+ int CallVolumeGet(void);
// void VibationModeSet(int value);
void SilentModelSet(bool isopen);
#ifdef __cplusplus
#include "phoneservice/include/PhoneAudio.h"\r
#include "phoneservice/include/PhoneService.h"\r
#include "ConfigModel.h"\r
+#include <custom_utils.h>\r
namespace OHOS\r
{\r
\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolumeView::p_SoundAndVibrationVolumeSettingView is nullptr!");\r
return false;\r
}\r
- int callVolume = ConfigModel::GetInstance()->GetCallVolume();\r
+ int callVolume = uapi_callVolumeGet();\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolume = %d", callVolume);\r
p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(callVolume);\r
\r
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-04-19 10:08:31
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-01 09:55:37
+ * @LastEditTime: 2024-08-26 18:54:00
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationVolumeSettingPresenter.cpp
*/
#include "soundandvibration/include/SoundAndVibrationVolumeSettingPresenter.h"
void VoumeProcessSliderEventListener::ChangeVolumeValue(uint8_t status, uint8_t value)
{
FindAndApplyStrategy(status, value);
-
- SoundAndVibrationVolumeSettingView *view = SoundAndVibrationVolumeSettingView::GetInstance();
- if (view)
- {
- if (view->GetVolumeType() == SYSTEM_VOLUME)
- {
- ConfigModel::GetInstance()->SetSystemVolume(value);
- }
- else if (view->GetVolumeType() == CALL_VOLUME)
- {
- ConfigModel::GetInstance()->SetCallVolume(value);
- }
- }
}
// 滑块变化事件处理
Audio::AudioManager::GetInstance().SetVolume(AUDIO_STREAM_MUSIC, sounding); // 系统音量设置
}
+ int SystemVolumeGet(void)
+ {
+ return Audio::AudioManager::GetInstance().GetVolume(AUDIO_STREAM_MUSIC);
+ }
+
/*
* @brief 通话音量设置
*/
void CallVolumeSet(int16_t sounding)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolumeSet %d", sounding);
- // PhoneAudioSetVolume(sounding); // 通话音量音量设置
- // SetSpeakerVolume(sounding);
Audio::AudioManager::GetInstance().SetVolume(AUDIO_STREAM_VOICE_CALL_BT_SCO, sounding); // 系统音量设置
}
- // /*
- // * @brief 震动模式设置
- // */
- // void VibationModeSet(int value)
- // {
- // custom_VibratorFunc_int(value);
- // }
+ int CallVolumeGet(void)
+ {
+ return Audio::AudioManager::GetInstance().GetVolume(AUDIO_STREAM_VOICE_CALL_BT_SCO);
+ }
/*
* @brief 静音模式设置
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-06-12 11:44:04\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-07-23 16:58:58\r
+ * @LastEditTime: 2024-08-26 18:56:26\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SystemVolumeView.cpp\r
*/\r
#include "soundandvibration/include/SystemVolumeView.h"\r
#include "wearable_log.h"\r
#include <audio_manager.h>\r
#include "ConfigModel.h"\r
+#include <custom_utils.h>\r
/*\r
系统音量:\r
通话,提醒,查找手表的音量\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolumeView::p_SoundAndVibrationVolumeSettingView is nullptr!");\r
return false;\r
}\r
- int systemVolume = ConfigModel::GetInstance()->GetSystemVolume();\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemVolume = %d", systemVolume);\r
- p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(systemVolume);\r
+ int SystemVolume = uapi_systemVolumeGet();\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemVolume = %d", SystemVolume);\r
+ p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(SystemVolume);\r
\r
return true;\r
}\r
}
void Set_SystemVolume(int value) //设置系统音量
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->SetSystemVolume(value);
uapi_systemVolumeSet(value);
#ifdef FD230
SendMsgToUIService(UI_UPDATE_SYSTEM_VOLUME,0,nullptr,0);
int Get_SystemVolume(void) //获取系统音量
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- return p_ConfigModel->GetSystemVolume();
+ return uapi_systemVolumeGet();
}
void Set_CallVolume(int value) //设置通话音量
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->SetCallVolume(value);
uapi_callVolumeSet(value);
#ifdef FD230
SendMsgToUIService(UI_UPDATE_CALL_VOLUME,0,nullptr,0);
int Get_CallVolume(void) //获取通话音量
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- return p_ConfigModel->GetCallVolume();
+ return uapi_callVolumeGet();
}
uint8_t ble_is_ready(void)
+++ /dev/null
-version https://git-lfs.github.com/spec/v1
-oid sha256:48cee7cf0d85cf1a537ba3c456e9dcfc6f2b439863e5106211519e57ca6d18fd
-size 1144
+++ /dev/null
-version https://git-lfs.github.com/spec/v1
-oid sha256:389beb90ee0bfe28a4969e4d2ba0aee17fb8f6b524356611c00ad2127254d199
-size 4504
CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE, //运动目标距离
CONFIGMODEL_ITEM_DNOTDISTURB,//勿扰模式
CONFIGMODEL_ITEM_MESSAGE_UNREAD,//未读状态
- CONFIGMODEL_ITEM_SYSTEM_VOLUME,//系统音量
- CONFIGMODEL_ITEM_CALL_VOLUME,//通话音量
CONFIGMODEL_ITEM_VOLTE_CALL,//VoLTE通话
CONFIGMODEL_ITEM_MOTIONRECOGNITION,//运动识别
CONFIGMODEL_ITEM_HFP, //通话蓝牙开关
/* ----------------------------- 声音与震动相关set与get ----------------------------- */
- void SetSystemVolume(int value);
- int GetSystemVolume(void);
-
- void SetCallVolume(int value);
- int GetCallVolume(void);
-
void SetDmpFactoryStatus(int state);
int GetDmpFactoryStatus(void);
{ConfigDataType::DATATYPE_INT, "goal_distance", "8" },// CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE, //运动目标距离 8.0(km)
{ConfigDataType::DATATYPE_BOOL, "dnotdisturb", "false" },// CONFIGMODEL_ITEM_DNOTDISTURB //勿扰模式默认关闭
{ConfigDataType::DATATYPE_BOOL, "unread", "false"},//CONFIGMODEL_ITEM_MESSAGE_UNREAD//未读状态默认未读
- {ConfigDataType::DATATYPE_INT, "system_volume", "100" },// CONFIGMODEL_ITEM_SYSTEM_VOLUME //
- {ConfigDataType::DATATYPE_INT, "call_volume", "100" },// CONFIGMODEL_ITEM_CALL_VOLUME //
{ConfigDataType::DATATYPE_BOOL, "voltecall", "true" },// CONFIGMODEL_ITEM_VOLTE_CALL #默认是开启VOLTE
{ConfigDataType::DATATYPE_BOOL, "motion_recognition", "false" },// CONFIGMODEL_ITEM_MOTIONRECOGNITION
{ConfigDataType::DATATYPE_BOOL, "hfp", "true" },// CONFIGMODEL_ITEM_HFP
/*
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-04-17 09:32:03
- * @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2024-08-19 10:16:53
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-08-26 19:20:26
* @FilePath: /FD230/code/sdk/drivers/peripheral/config/include/ConfigModelC.h
*/
#ifndef _CONFIG_MODEL_C_H_
*/
void cm_initializeRaiseToWake(void);
-/*
- * @brief 初始化系统音量和通话音量
- */
-void cm_initializeVolume(void);
-
/*
* @brief 初始化震动模式
*/
return get_configData_int(CONFIGMODEL_ITEM_SCREEN_BRIGHTNESS_VALUE);
}
- //设置系统音量
- void ConfigModel::SetSystemVolume(int value)
- {
- set_condigData_Int(CONFIGMODEL_ITEM_SYSTEM_VOLUME,value);
- //uapi_systemVolumeSet(value);
- }
-
- //获取系统音量
- int ConfigModel::GetSystemVolume(void)
- {
- return get_configData_int(CONFIGMODEL_ITEM_SYSTEM_VOLUME);
- }
-
- //设置通话音量
- void ConfigModel::SetCallVolume(int value)
- {
- set_condigData_Int(CONFIGMODEL_ITEM_CALL_VOLUME,value);
- //uapi_callVolumeSet(value);
- }
-
- //获取通话音量
- int ConfigModel::GetCallVolume(void)
- {
- return get_configData_int(CONFIGMODEL_ITEM_CALL_VOLUME);
- }
-
//设置运动识别是否开启
void ConfigModel::SetMotionRecognition(bool state)
{
}
}
-void cm_initializeVolume(void)
-{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cm_initializeVolume");
- int systemVolume = OHOS::ConfigModel::GetInstance()->GetSystemVolume();
- int callVolume = OHOS::ConfigModel::GetInstance()->GetCallVolume();
- uapi_systemVolumeSet(systemVolume);
- uapi_callVolumeSet(callVolume);
-}
-
void cm_initializeVibrationModel(void)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cm_initializeVibrationModel");
cm_initScreenBrightness();
cm_initializeScreenDuration();
cm_initializeRaiseToWake();
- cm_initializeVolume();
cm_initializeVibrationModel();
cm_initializeSilentModel();
// cm_initializeVoLTECall();
#endif
}
+/*系统声音获取*/
+int uapi_systemVolumeGet(void)
+{
+ return SystemVolumeGet();
+}
+
//通话音量设置
void uapi_callVolumeSet(int16_t sounding)
{
#endif
}
-// //震动强度设置
-// void uapi_vibrationModeSet(int value)
-// {
-// #ifdef FD230
-// VibationModeSet(value);
-// #endif
-// }
+//通话音量获取
+int uapi_callVolumeGet(void)
+{
+ return CallVolumeGet();
+}
+
//设置是否静音
void uapi_setSilentMode(bool isopen)
int32_t uapi_get_screen_state(void);
void uapi_systemVolumeSet(int16_t sounding);
+int uapi_systemVolumeGet(void);
void uapi_callVolumeSet(int16_t sounding);
+int uapi_callVolumeGet(void);
// void uapi_vibrationModeSet(int value);
void uapi_setSilentMode(bool isopen);
void uapi_set4GCapability(bool isopen);