WIP: waveform visualization
This commit is contained in:
@@ -10,6 +10,8 @@ signal on_selected
|
||||
signal on_deselected
|
||||
signal on_double_click
|
||||
|
||||
var clip_path: String
|
||||
|
||||
var timeline: Timeline
|
||||
|
||||
var dragging: bool
|
||||
|
||||
@@ -20,6 +20,8 @@ extends Container
|
||||
|
||||
@export var audio_clip_scene: PackedScene
|
||||
|
||||
signal clip_added(clip: Control)
|
||||
|
||||
func format_time_ms_hours(ms: float) -> String:
|
||||
var total_seconds = ms / 1000
|
||||
var hours = int(total_seconds / 3600)
|
||||
@@ -141,21 +143,24 @@ func local_x_to_timeline(x: float) -> float:
|
||||
return (x + time_offset) / get_pixels_per_unit() * time_interval
|
||||
|
||||
|
||||
func clip_dropped(at_position: Vector2, clip_name: String, clip_start_time: float, clip_end_time: float):
|
||||
func clip_dropped(at_position: Vector2, path: String, clip_name: String, clip_start_time: float, clip_end_time: float):
|
||||
var local_position = at_position - global_position
|
||||
var timeline_position = local_x_to_timeline(local_position.x)
|
||||
|
||||
var track_idx = get_track_idx_by_y(at_position.y)
|
||||
add_audio_clip(clip_name, track_idx, timeline_position + clip_start_time, timeline_position + clip_end_time)
|
||||
add_audio_clip(path, clip_name, track_idx, timeline_position + clip_start_time, timeline_position + clip_end_time)
|
||||
pass
|
||||
|
||||
func add_audio_clip(clip_name: String, track_idx: int, clip_start_time: float, clip_end_time: float):
|
||||
func add_audio_clip(path: String, clip_name: String, track_idx: int, clip_start_time: float, clip_end_time: float):
|
||||
var audio_clip = audio_clip_scene.instantiate() as AudioClip
|
||||
audio_clip.clip_path = path
|
||||
audio_clip.clip_name = clip_name
|
||||
audio_clip.track_idx = track_idx
|
||||
audio_clip.start_time = clip_start_time
|
||||
audio_clip.end_time = clip_end_time
|
||||
|
||||
add_child(audio_clip)
|
||||
|
||||
clip_added.emit(audio_clip)
|
||||
queue_redraw()
|
||||
pass
|
||||
Reference in New Issue
Block a user