Files
tgcc/core/main_scene_ui/audio_player.gd
2026-06-06 14:19:27 +00:00

54 lines
2.1 KiB
GDScript

extends Control
@export var radio: Radio
@onready var track_label: Label = $%TrackLabel
@onready var prev_track_icon_button: Button = $%PrevTrackIconButton
@onready var play_pause_icon_button: Button = $%PlayPauseIconButton
@onready var next_track_icon_button: Button = $%NextTrackIconButton
@onready var increase_volume_icon_button: Button = $%IncreaseVolumeIconButton
@onready var decrease_volume_icon_button: Button = $%DecreaseVolumeIconButton
func _ready() -> void:
prev_track_icon_button.pressed.connect(_on_prev_track_icon_button_pressed)
play_pause_icon_button.pressed.connect(_on_play_pause_icon_button_pressed)
next_track_icon_button.pressed.connect(_on_next_track_icon_button_pressed)
increase_volume_icon_button.pressed.connect(_on_increase_volume_icon_button_pressed)
decrease_volume_icon_button.pressed.connect(_on_decrease_volume_icon_button_pressed)
if radio:
radio.track_changed.connect(_on_radio_track_changed)
if radio.stream and radio.stream.resource_path:
track_label.text = radio.stream.resource_path.get_file().get_basename().capitalize()
play_pause_icon_button.image = play_pause_icon_button.images[1]
else:
track_label.text = "Unknown Track"
func _on_radio_track_changed(track_name: String) -> void:
track_label.text = track_name
play_pause_icon_button.image = play_pause_icon_button.images[1]
func _on_prev_track_icon_button_pressed() -> void:
if radio:
radio.prev_track()
func _on_play_pause_icon_button_pressed() -> void:
if radio:
if radio.stream:
radio.toggle_pause()
else:
radio.next_track()
var play_pause_index = 0 if radio.stream_paused else 1
play_pause_icon_button.image = play_pause_icon_button.images[play_pause_index]
func _on_next_track_icon_button_pressed() -> void:
if radio:
radio.next_track()
func _on_increase_volume_icon_button_pressed() -> void:
var current_vol = AudioManager.get_audio_bus_volume("Music", 1.0)
AudioManager.set_audio_bus_volume("Music", current_vol + 0.1)
func _on_decrease_volume_icon_button_pressed() -> void:
var current_vol = AudioManager.get_audio_bus_volume("Music", 1.0)
AudioManager.set_audio_bus_volume("Music", current_vol - 0.1)