WIP: waveform visualization
This commit is contained in:
@@ -6,21 +6,46 @@ namespace AudioEditor;
|
||||
[GlobalClass]
|
||||
public partial class ProjectController : Node
|
||||
{
|
||||
[Signal] public delegate void AudioClipDroppedEventHandler(Vector2 atPosition, string clipName, double startTime, double endTime);
|
||||
[Signal] public delegate void AudioClipDroppedEventHandler(Vector2 atPosition, string path, string clipName, double startTime, double endTime);
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
GetWindow().FilesDropped += FilesDropped;
|
||||
}
|
||||
|
||||
public void CreateAudioClipPreview(Control audioClip)
|
||||
{
|
||||
// GD.Print(audioClip.Clas());
|
||||
var path = audioClip.Get("clip_path").AsString();
|
||||
|
||||
if (string.IsNullOrEmpty(path))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!AudioFileAnalyzer.Instance.TryGetFromCache(path, out WaveformInfo waveformInfo))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (audioClip.HasNode("%Waveform"))
|
||||
{
|
||||
var waveform = audioClip.GetNode<Waveform>("%Waveform");
|
||||
waveform.SetWaveformInfo(waveformInfo);
|
||||
}
|
||||
}
|
||||
|
||||
private void FilesDropped(string[] files)
|
||||
{
|
||||
var mousePosition = GetViewport().GetMousePosition();
|
||||
|
||||
var fileName = Path.GetFileName(files[0]);
|
||||
var path = files[0];
|
||||
var fileName = Path.GetFileName(path);
|
||||
|
||||
GD.Print(fileName);
|
||||
AudioFileAnalyzer.Instance.AnalyzeFile(path, out WaveformInfo waveformInfo);
|
||||
|
||||
EmitSignal(SignalName.AudioClipDropped, mousePosition, fileName, 0, 10 * 1000);
|
||||
GD.Print(path);
|
||||
|
||||
EmitSignal(SignalName.AudioClipDropped, mousePosition, path, fileName, 0, waveformInfo.Length.TotalMilliseconds);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user