KLingo Project Documentation
1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
UVoiceRecording.cpp
이 파일의 문서화 페이지로 가기
1
// Copyright (c) 2025 Doppleddiggong. All rights reserved. Unauthorized copying, modification, or distribution of this file, via any medium is strictly prohibited. Proprietary and confidential.
2
7
#include "
UVoiceRecording.h
"
8
9
#include "
UBroadcastManager.h
"
10
#include "
UCircularProgressBar.h
"
11
#include "Components/Image.h"
12
13
void
UVoiceRecording::InitWidget
()
14
{
15
// 브로드캐스트 매니저에 이벤트 등록
16
if
(
auto
EventManager = UBroadcastManager::Get(GetWorld()))
17
{
18
EventManager->OnAudioCapture.RemoveDynamic(
this
, &
UVoiceRecording::OnAudioCapture
);
19
EventManager->OnAudioCapture.AddDynamic(
this
, &
UVoiceRecording::OnAudioCapture
);
20
21
EventManager->OnAudioSpectrum.RemoveDynamic(
this
, &
UVoiceRecording::OnAudioSpectrum
);
22
EventManager->OnAudioSpectrum.AddDynamic(
this
, &
UVoiceRecording::OnAudioSpectrum
);
23
}
24
25
StartRecordingColor
= FColor::FromHex(TEXT(
"CEF97CFF"
));
26
StopRecordingColor
= FColor::FromHex(TEXT(
"A3A3A3FF"
));
27
}
28
29
void
UVoiceRecording::NativeTick
(
const
FGeometry& MyGeometry,
float
InDeltaTime)
30
{
31
Super::NativeTick(MyGeometry, InDeltaTime);
32
33
UpdateSpectrumVisual
(InDeltaTime);
34
}
35
36
void
UVoiceRecording::UpdateSpectrumVisual
(
float
DeltaTime)
37
{
38
if
( !
Image_Symbol
->IsVisible())
39
return
;
40
41
const
float
Delta = FMath::Max(DeltaTime, 0.0f);
42
const
float
TargetValue =
SpectrumDisplayValue
;
43
const
float
CurrentValue =
CircularProgressBar
->Percent;
44
const
float
InterpSpeed = TargetValue > CurrentValue ?
SpectrumRiseSpeed
:
SpectrumDecaySpeed
;
45
const
float
NewPercent = FMath::FInterpConstantTo(CurrentValue, TargetValue, Delta, InterpSpeed);
46
CircularProgressBar
->SetPercent(FMath::Clamp(NewPercent, 0.0f, 1.0f));
47
48
// Image_Symbol 스케일 업데이트
49
const
float
Scale = FMath::Lerp(1.0f, 1.75f, NewPercent);
50
Image_Symbol
->SetRenderScale(FVector2D(Scale, Scale));
51
}
52
53
void
UVoiceRecording::OnAudioCapture
(
bool
bRecording)
54
{
55
Image_Symbol
->SetColorAndOpacity(bRecording ?
StartRecordingColor
:
StopRecordingColor
);
56
57
if
( bRecording ==
false
)
58
{
59
SpectrumDisplayValue
= 0.0f;
60
CircularProgressBar
->SetPercent(0.0f);
61
}
62
}
63
64
void
UVoiceRecording::OnAudioSpectrum
(
float
Spectrum)
65
{
66
SpectrumDisplayValue
= Spectrum;
67
}
UBroadcastManager.h
UCircularProgressBar.h
UVoiceRecording.h
UVoiceRecording::StartRecordingColor
FLinearColor StartRecordingColor
Definition
UVoiceRecording.h:62
UVoiceRecording::CircularProgressBar
TObjectPtr< class UCircularProgressBar > CircularProgressBar
Definition
UVoiceRecording.h:44
UVoiceRecording::NativeTick
virtual void NativeTick(const FGeometry &MyGeometry, float InDeltaTime) override
Definition
UVoiceRecording.cpp:29
UVoiceRecording::Image_Symbol
TObjectPtr< class UImage > Image_Symbol
원형 프로그레스바 위젯
Definition
UVoiceRecording.h:41
UVoiceRecording::SpectrumRiseSpeed
float SpectrumRiseSpeed
스펙트럼 상승 속도
Definition
UVoiceRecording.h:52
UVoiceRecording::SpectrumDisplayValue
float SpectrumDisplayValue
스펙트럼 표시 값
Definition
UVoiceRecording.h:60
UVoiceRecording::StopRecordingColor
FLinearColor StopRecordingColor
Definition
UVoiceRecording.h:63
UVoiceRecording::SpectrumDecaySpeed
float SpectrumDecaySpeed
스펙트럼 감쇠 속도
Definition
UVoiceRecording.h:48
UVoiceRecording::UpdateSpectrumVisual
void UpdateSpectrumVisual(float DeltaTime)
스펙트럼 시각화 업데이트
Definition
UVoiceRecording.cpp:36
UVoiceRecording::OnAudioSpectrum
void OnAudioSpectrum(float Spectrum)
오디오 스펙트럼 데이터 수신 이벤트
Definition
UVoiceRecording.cpp:64
UVoiceRecording::OnAudioCapture
void OnAudioCapture(bool bRecording)
오디오 캡처 상태 변경 이벤트
Definition
UVoiceRecording.cpp:53
UVoiceRecording::InitWidget
void InitWidget()
위젯 초기화
Definition
UVoiceRecording.cpp:13
Source
Onepiece
UI
Private
UVoiceRecording.cpp
생성시간 : 금 1월 9 2026 00:25:57, 프로젝트명 : KLingo Project Documentation, 생성자 :
1.9.8