11import { Store , Logic , Theme , DeviceType , Icons , SettingRecorder } from "../../def.slint" ;
22import { Fps , Resolution } from "../../../store.slint" ;
3- import { SettingDetail , SettingDetailInner , SettingDetailInnerVbox , SettingDetailLabel , LineInput , ConfirmBtn , Label , SettingDetailSwitch , Select } from "../../../base/widgets.slint" ;
3+ import { SettingDetail , SettingDetailInner , RadioBtn , SettingDetailInnerVbox , SettingDetailLabel , LineInput , ConfirmBtn , Label , SettingDetailSwitch , Select } from "../../../base/widgets.slint" ;
44
55export component Recorder inherits SettingDetail {
66 callback confirmed ();
@@ -10,6 +10,7 @@ export component Recorder inherits SettingDetail {
1010 private property <bool > include-cursor ;
1111 private property <bool > enable-preview ;
1212 private property <bool > enable-denoise ;
13+ private property <bool > real-time-denoise ;
1314 private property <bool > convert-input-wav-to-mono ;
1415 private property <Fps > fps ;
1516 private property <Resolution > resolution ;
@@ -25,6 +26,7 @@ export component Recorder inherits SettingDetail {
2526 include-cursor: root .include-cursor,
2627 enable-preview: root .enable-preview,
2728 enable-denoise: root .enable-denoise,
29+ real-time-denoise: root .real-time-denoise,
2830 convert-input-wav-to-mono: root .convert-input-wav-to-mono,
2931 fps: root .fps,
3032 resolution: root .resolution,
@@ -37,6 +39,7 @@ export component Recorder inherits SettingDetail {
3739 root .include-cursor = setting.include-cursor;
3840 root .enable-preview = setting.enable-preview;
3941 root .enable-denoise = setting.enable-denoise;
42+ root .real-time-denoise = setting.real-time-denoise;
4043 root .convert-input-wav-to-mono = setting.convert-input-wav-to-mono;
4144 root .fps = setting.fps;
4245 root .resolution = setting.resolution;
@@ -102,19 +105,6 @@ export component Recorder inherits SettingDetail {
102105 }
103106 }
104107
105- SettingDetailInnerVbox {
106- SettingDetailSwitch {
107- icon : Icons.denoise-light;
108- text : self .checked ? Logic.tr("Enabled microphone denoise" ) : Logic.tr("Disabled microphone denoise" );
109- checked : root .enable-denoise;
110-
111- toggled => {
112- root .enable-denoise = self .checked;
113- Logic.set-setting-recorder (root .get());
114- }
115- }
116- }
117-
118108 SettingDetailInnerVbox {
119109 include-cursor-swicth := SettingDetailSwitch {
120110 icon : Icons.cursor-light;
@@ -154,5 +144,44 @@ export component Recorder inherits SettingDetail {
154144 }
155145 }
156146 }
147+
148+ SettingDetailInnerVbox {
149+ spacing : Theme.spacing * 2 ;
150+
151+ SettingDetailSwitch {
152+ icon : Icons.denoise-light;
153+ text : self .checked ? Logic.tr("Enabled microphone noise reduction" ) : Logic.tr("Disabled microphone noise reduction" );
154+ checked : root .enable-denoise;
155+
156+ toggled => {
157+ root .enable-denoise = self .checked;
158+ Logic.set-setting-recorder (root .get());
159+ }
160+ }
161+
162+ if root .enable-denoise: HorizontalLayout {
163+ HorizontalLayout {
164+ width : 50% ;
165+
166+ RadioBtn {
167+ text : Logic.tr("Real-time noise reduction" );
168+ checked : root .real-time-denoise;
169+ check => {
170+ root .real-time-denoise = true ;
171+ Logic.set-setting-recorder (root .get());
172+ }
173+ }
174+ }
175+
176+ RadioBtn {
177+ text : Logic.tr("Post-processing noise reduction" );
178+ checked : !root .real-time-denoise;
179+ check => {
180+ root .real-time-denoise = false ;
181+ Logic.set-setting-recorder (root .get());
182+ }
183+ }
184+ }
185+ }
157186 }
158187}
0 commit comments