Compare commits

...

8 Commits

Author SHA1 Message Date
bucket bac43db4ff the fix in question 2026-04-01 19:38:36 +02:00
bucket 745b7c43c4 Translations and fixed streamer window 2026-02-26 21:40:22 +01:00
bucket 2be692e55c QOL changes
added opening the source url, and opening playlist folders, fixed ugly icons
2026-02-26 21:20:48 +01:00
Bucket Of Chicken 38655756e3 first steps for opening the source url on songs 2025-08-25 04:35:16 +02:00
Bucket Of Chicken f5a8e811ff fixed up and down keys not working 2025-08-25 02:39:35 +02:00
Bucket Of Chicken 8a6c01dce9 fixed streamer window wrongfully appearing 2025-08-25 02:36:56 +02:00
Bucket Of Chicken 65bcb540be Merge branch 'main' of https://github.com/realbucketofchicken/Simplaudio 2025-08-10 07:42:58 +02:00
Bucket Of Chicken 1af6294a3f Update readme.md 2025-08-10 07:40:02 +02:00
36 changed files with 161 additions and 74 deletions
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=1.0
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=1 roughness/mode=1
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
@@ -38,7 +38,7 @@ func get_mp3_metadata(stream: AudioStreamMP3) -> MusicMetadata:
return meta return meta
var v = "ID3v2.%d.%d" % [header[3], header[4]] var v = "ID3v2.%d.%d" % [header[3], header[4]]
if v == "ID3v2.4.0" or v == "ID3v2.3.0": if v == "ID3v2.4.0" or v == "ID3v2.3.0" or v == "ID3v2.2.0":
var flags = header[5] var flags = header[5]
var _unsync = flags & 0x80 > 0 var _unsync = flags & 0x80 > 0
var extended = flags & 0x40 > 0 var extended = flags & 0x40 > 0
@@ -66,15 +66,18 @@ func get_mp3_metadata(stream: AudioStreamMP3) -> MusicMetadata:
match frame_id: match frame_id:
"TBPM", 'TBP': "TBPM", 'TBP':
meta.bpm = int(get_string_from_data(data, idx, size)) meta.bpm = int(get_string_from_data(data, idx, size))
"TIT2": "TIT2","TT2":
print("a " + str(Array(data.slice(idx, idx + 3)).hash())) print("a " + str(Array(data.slice(idx, idx + 3)).hash()))
print([1, 0xff, 0xfe].hash()) print([1, 0xff, 0xfe].hash())
meta.title = get_string_from_data(data, idx, size) meta.title = get_string_from_data(data, idx, size)
"TALB", 'TAL': "TALB", 'TAL':
meta.album = get_string_from_data(data, idx, size) meta.album = get_string_from_data(data, idx, size)
"COMM": "COMM","COM":
meta.comments = get_string_from_data(data, idx, size) var string:String = get_string_from_data(data, idx, size)
"TYER": print("got comment " + string)
if string:
meta.comments = string
"TYER","TYE":
meta.year = int(get_string_from_data(data, idx, size)) meta.year = int(get_string_from_data(data, idx, size))
"TPE1", 'TP1': "TPE1", 'TP1':
meta.artist = get_string_from_data(data, idx, size) meta.artist = get_string_from_data(data, idx, size)
+1 -6
View File
@@ -232,11 +232,6 @@ script = ExtResource("1_ubs1p")
LoopPressed = ExtResource("2_iolk5") LoopPressed = ExtResource("2_iolk5")
LoopNotPressed = ExtResource("5_c2g63") LoopNotPressed = ExtResource("5_c2g63")
[node name="OSMediaIntigration" type="Control" parent="."]
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="WallpaperManager" type="Node2D" parent="." node_paths=PackedStringArray("Daytime", "Evening", "Nighttime")] [node name="WallpaperManager" type="Node2D" parent="." node_paths=PackedStringArray("Daytime", "Evening", "Nighttime")]
script = ExtResource("4_y372l") script = ExtResource("4_y372l")
Daytime = NodePath("../Daytime") Daytime = NodePath("../Daytime")
@@ -921,7 +916,7 @@ offset_left = -64.0
offset_top = -23.0 offset_top = -23.0
grow_horizontal = 0 grow_horizontal = 0
grow_vertical = 0 grow_vertical = 0
text = "v1.6.2" text = "v1.6.3"
horizontal_alignment = 2 horizontal_alignment = 2
[node name="SettingsButton" type="Button" parent="."] [node name="SettingsButton" type="Button" parent="."]
+8 -5
View File
@@ -64,7 +64,7 @@ layout_mode = 2
custom_minimum_size = Vector2(70, 0) custom_minimum_size = Vector2(70, 0)
layout_mode = 2 layout_mode = 2
focus_mode = 0 focus_mode = 0
text = "Play" text = "PLAY"
[node name="OptionsDropdown" type="MenuButton" parent="HSplitContainer/HBoxContainer"] [node name="OptionsDropdown" type="MenuButton" parent="HSplitContainer/HBoxContainer"]
modulate = Color(0.724643, 0.724643, 0.724643, 1) modulate = Color(0.724643, 0.724643, 0.724643, 1)
@@ -72,10 +72,13 @@ custom_minimum_size = Vector2(20.505, 0)
layout_mode = 2 layout_mode = 2
icon = ExtResource("2_im6ur") icon = ExtResource("2_im6ur")
expand_icon = true expand_icon = true
item_count = 2 item_count = 3
popup/item_0/text = "Change Directory" popup/item_0/text = "Open Directory"
popup/item_1/text = "Delete" popup/item_0/id = 2
popup/item_1/id = 1 popup/item_1/text = "Change Directory"
popup/item_1/id = 0
popup/item_2/text = "DELETE"
popup/item_2/id = 1
[node name="FileDialog" type="FileDialog" parent="."] [node name="FileDialog" type="FileDialog" parent="."]
title = "Open a Directory" title = "Open a Directory"
+12
View File
@@ -66,6 +66,18 @@ texture = ExtResource("2_haeb5")
expand_mode = 3 expand_mode = 3
stretch_mode = 5 stretch_mode = 5
[node name="TextureRect2" type="TextureRect" parent="ColorRect"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
texture = ExtResource("3_j8vo6")
expand_mode = 3
stretch_mode = 6
[node name="TextureRect" type="TextureRect" parent="ColorRect"] [node name="TextureRect" type="TextureRect" parent="ColorRect"]
layout_mode = 1 layout_mode = 1
anchors_preset = 15 anchors_preset = 15
+27 -22
View File
@@ -1,33 +1,39 @@
[gd_scene load_steps=3 format=3 uid="uid://ctqcbjrmxaqsk"] [gd_scene load_steps=4 format=3 uid="uid://ctqcbjrmxaqsk"]
[ext_resource type="Script" uid="uid://c3aaxhp0oim08" path="res://Scripts/search_item.gd" id="1_j4126"] [ext_resource type="Script" uid="uid://c3aaxhp0oim08" path="res://Scripts/search_item.gd" id="1_j4126"]
[ext_resource type="Texture2D" uid="uid://dwvy6crqhardn" path="res://Icons/Dropdown.png" id="2_hicj1"] [ext_resource type="Texture2D" uid="uid://dwvy6crqhardn" path="res://Icons/Dropdown.png" id="2_hicj1"]
[ext_resource type="Script" uid="uid://dd38vqi4220tx" path="res://Scripts/SongSource.cs" id="3_ftuau"]
[node name="SearchItem" type="Control"] [node name="SearchItem" type="Control" node_paths=PackedStringArray("soung_source")]
custom_minimum_size = Vector2(0, 30) custom_minimum_size = Vector2(0, 30)
layout_mode = 3 layout_mode = 3
anchors_preset = 14 anchors_preset = 10
anchor_top = 0.5
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 0.5
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 4 size_flags_vertical = 4
script = ExtResource("1_j4126") script = ExtResource("1_j4126")
soung_source = NodePath("Node")
[node name="HBoxContainer" type="HBoxContainer" parent="."] [node name="HBoxContainer" type="HBoxContainer" parent="."]
custom_minimum_size = Vector2(700, 32) custom_minimum_size = Vector2(200, 32)
layout_mode = 1 layout_mode = 1
anchors_preset = 4 anchors_preset = 15
anchor_top = 0.5 anchor_right = 1.0
anchor_bottom = 0.5 anchor_bottom = 1.0
offset_top = -16.0 grow_horizontal = 2
offset_right = 700.0
offset_bottom = 16.0
grow_vertical = 2 grow_vertical = 2
alignment = 1 alignment = 1
[node name="Songname" type="Button" parent="HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
focus_mode = 0
flat = true
alignment = 0
text_overrun_behavior = 1
clip_text = true
[node name="Dropdown" type="Button" parent="HBoxContainer"] [node name="Dropdown" type="Button" parent="HBoxContainer"]
custom_minimum_size = Vector2(20, 0) custom_minimum_size = Vector2(20, 0)
layout_mode = 2 layout_mode = 2
@@ -38,17 +44,16 @@ flat = true
icon_alignment = 1 icon_alignment = 1
expand_icon = true expand_icon = true
[node name="Songname" type="Button" parent="HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
focus_mode = 0
flat = true
alignment = 0
[node name="PopupMenu" type="PopupMenu" parent="."] [node name="PopupMenu" type="PopupMenu" parent="."]
item_count = 1 size = Vector2i(116, 100)
item_count = 2
item_0/text = "DELETE" item_0/text = "DELETE"
item_0/id = 0 item_0/id = 0
item_1/text = "OPEN SOURCE"
item_1/id = 1
[node name="Node" type="Node" parent="."]
script = ExtResource("3_ftuau")
[connection signal="pressed" from="HBoxContainer/Dropdown" to="." method="_on_dropdown_pressed"]
[connection signal="pressed" from="HBoxContainer/Songname" to="." method="_on_songname_pressed"] [connection signal="pressed" from="HBoxContainer/Songname" to="." method="_on_songname_pressed"]
[connection signal="pressed" from="HBoxContainer/Dropdown" to="." method="_on_dropdown_pressed"]
+16
View File
@@ -0,0 +1,16 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using ATL;
using Godot;
public partial class SongSource : Node{
public String TryGetSongUrl(String path){
Track theTrack = new(path);
if (theTrack.AdditionalFields.TryGetValue("comment", out string value)){
return value;
}
return "";
}
}
+1
View File
@@ -0,0 +1 @@
uid://dd38vqi4220tx
+7 -3
View File
@@ -1,5 +1,6 @@
class_name MainScene class_name MainScene
extends Control extends Control
static var instance:MainScene
@onready var file_dialog: FileDialog = $FileDialog @onready var file_dialog: FileDialog = $FileDialog
@onready var music_player: AudioStreamPlayer = $MusicPlayer @onready var music_player: AudioStreamPlayer = $MusicPlayer
@onready var randomize_list: Button = $RandomizeList @onready var randomize_list: Button = $RandomizeList
@@ -83,6 +84,7 @@ var LoadingSaveFailed:bool = true
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready() -> void: func _ready() -> void:
instance = self
playing_now.visible = false playing_now.visible = false
get_tree().root.min_size = Vector2(850,492) get_tree().root.min_size = Vector2(850,492)
current_progress.drag_ended.connect(SongDragStopped) current_progress.drag_ended.connect(SongDragStopped)
@@ -169,7 +171,9 @@ func _ready() -> void:
play_all.button_pressed = true play_all.button_pressed = true
if data.has("UsingPlayingNow"): if data.has("UsingPlayingNow"):
UsingPlayingNow = data["UsingPlayingNow"] UsingPlayingNow = data["UsingPlayingNow"]
settings_menu_child.now_playing_window_button.button_pressed = true if UsingPlayingNow:
print("!!! using stereamer window !!!")
settings_menu_child.now_playing_window_button.button_pressed = true
if data.has("OverriddenLocale"): if data.has("OverriddenLocale"):
TranslationServer.set_locale(data["OverriddenLocale"]) TranslationServer.set_locale(data["OverriddenLocale"])
overridden_locale = data["OverriddenLocale"] overridden_locale = data["OverriddenLocale"]
@@ -539,9 +543,9 @@ func _process(_delta: float) -> void:
#time_listening_song.text = str(music_player.get_playback_position()) #time_listening_song.text = str(music_player.get_playback_position())
if Input.is_key_pressed(KEY_DOWN): if Input.is_action_pressed("ui_down"):
volume_slider.value -= 1*_delta *50 volume_slider.value -= 1*_delta *50
if Input.is_key_pressed(KEY_UP): if Input.is_action_pressed("ui_up"):
volume_slider.value += 1*_delta *50 volume_slider.value += 1*_delta *50
if CurrentLenght == 0: if CurrentLenght == 0:
+6 -4
View File
@@ -18,14 +18,16 @@ func _ready() -> void:
CorrectlyName() CorrectlyName()
options_dropdown.get_popup().id_pressed.connect(dropdown_pressed) options_dropdown.get_popup().id_pressed.connect(dropdown_pressed)
func dropdown_pressed(Idx:int): func dropdown_pressed(Id:int):
match options_dropdown.get_popup().get_item_text(Idx): match Id:
"Change Directory": 0:
_on_select_directory_pressed() _on_select_directory_pressed()
"Delete": 1:
confirmation.show() confirmation.show()
"Rename": "Rename":
pass pass
2:
OS.shell_open(PlaylistLocation)
Parent.SaveEverything() Parent.SaveEverything()
func Delete(): func Delete():
+11 -2
View File
@@ -6,6 +6,7 @@ var songidx:int
@onready var songname: Button = $HBoxContainer/Songname @onready var songname: Button = $HBoxContainer/Songname
@onready var dropdown: Button = $HBoxContainer/Dropdown @onready var dropdown: Button = $HBoxContainer/Dropdown
@onready var popup_menu: PopupMenu = $PopupMenu @onready var popup_menu: PopupMenu = $PopupMenu
@export var soung_source: Node
signal PlayPressed signal PlayPressed
@@ -16,8 +17,16 @@ func _ready() -> void:
popup_menu.index_pressed.connect(popupPressed) popup_menu.index_pressed.connect(popupPressed)
func popupPressed(idx:int): func popupPressed(idx:int):
if idx == 0: match idx:
DeletePressed.emit(songidx) 0:
DeletePressed.emit(songidx)
1:
var songdir = MainScene.instance.CurrentDir + "/" + MainScene.instance.textSongs[songidx]
var source:String = soung_source.TryGetSongUrl(songdir)
print("Source: "+source)
if source:
OS.shell_open(source)
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void: func _process(delta: float) -> void:
+2 -1
View File
@@ -190,6 +190,7 @@ func _on_reset_bg_pressed() -> void:
func _on_now_playing_window_button_toggled(toggled_on: bool) -> void: func _on_now_playing_window_button_toggled(toggled_on: bool) -> void:
print("!!! PLAYING NOW TOGGLED TO ",toggled_on)
Parent.UsingPlayingNow = toggled_on Parent.UsingPlayingNow = toggled_on
Parent.SaveEverything() Parent.SaveEverything()
print("!!! PLAYING NOW IS ",Parent.UsingPlayingNow)
+3 -1
View File
@@ -114,7 +114,9 @@ func _on_download_request_completed(result: int, response_code: int, headers: Pa
for file in files: for file in files:
var actualfile = file.replace("Linux/","").replace("Windows/","").replace("Android/","") var actualfile = file.replace("Linux/","").replace("Windows/","").replace("Android/","")
print("FILE: " + actualfile) print("FILE: " + actualfile)
var FileAcess:FileAccess = FileAccess.open(GetLocalPath() + actualfile,FileAccess.WRITE_READ) print("dir: "+actualfile.rsplit("/")[0])
DirAccess.open(GetLocalPath()).make_dir(actualfile.rsplit("/")[0])
var FileAcess:FileAccess = FileAccess.open(GetLocalPath() + actualfile,FileAccess.WRITE)
if FileAcess != null: if FileAcess != null:
var downloadedfile = unzipper.read_file(file) var downloadedfile = unzipper.read_file(file)
+9
View File
@@ -0,0 +1,9 @@
<Project Sdk="Godot.NET.Sdk/4.4.0">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<EnableDynamicLoading>true</EnableDynamicLoading>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="z440.atl.core" Version="7.3.0" />
</ItemGroup>
</Project>
+19
View File
@@ -0,0 +1,19 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Simplaudio", "Simplaudio.csproj", "{135675D8-011A-46FC-B4A1-B2D21C2CF78E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
ExportDebug|Any CPU = ExportDebug|Any CPU
ExportRelease|Any CPU = ExportRelease|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{135675D8-011A-46FC-B4A1-B2D21C2CF78E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{135675D8-011A-46FC-B4A1-B2D21C2CF78E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{135675D8-011A-46FC-B4A1-B2D21C2CF78E}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
{135675D8-011A-46FC-B4A1-B2D21C2CF78E}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
{135675D8-011A-46FC-B4A1-B2D21C2CF78E}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
{135675D8-011A-46FC-B4A1-B2D21C2CF78E}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
EndGlobalSection
EndGlobal
+6 -6
View File
@@ -1,12 +1,12 @@
# Simplaudio # Simplaudio
a simple music player that just works a simple music player
the v1.x versions are built on a bad codebase, i am working on 2.0 every now and then but it will take a bit for it to be finished the v1.x versions are built on a bad codebase, i am working on fixing it every now and then
the music player is very functual though
## Translations ## Translations
I would apprechiate if you could help out with translations, I would apprechiate if you could help out with translations,
if you want to help you can find a .csv under the folder called "translation" if you want to help you can find a .csv under the folder called "translation",
create a fork of the repo and modify the translations.csv file with a program like excel or libreoffice calc to include your language create a fork of the repo and modify the translations.csv file with a program like excel or libreoffice calc to include your language.
then create a pull request including your translations
After that create a pull request including your translations.
I will then merge the translations(annoy me if i forget) I will then merge the translations(annoy me if i forget)
+1
View File
@@ -0,0 +1 @@
,bucket,cachyos-x8664,26.02.2026 21:32,file:///home/bucket/.var/app/org.libreoffice.LibreOffice/config/libreoffice/4;
+7 -2
View File
@@ -14,7 +14,7 @@ UPDATE,Update,Updaten
SETTINGS,SETTINGS,EINSTELLUNGEN SETTINGS,SETTINGS,EINSTELLUNGEN
INTIGRATIONS,INTIGRATIONS,INTIGRATIONEN INTIGRATIONS,INTIGRATIONS,INTIGRATIONEN
DRPC,discord rich presense,Discord aktivitäten DRPC,discord rich presense,Discord aktivitäten
DRPC_NOTE,NOTE: After disableing a restart is needed,Nach deaktivieren neustarten DRPC_NOTE,NOTE: After disableing simplaudio needs a restart,Nach dem deaktivieren muss Simplaudio neugestartet werden
LOOKS,LOOKS,AUSEHEN LOOKS,LOOKS,AUSEHEN
BS_SELECT,Select Background,Hintergrund auswählen BS_SELECT,Select Background,Hintergrund auswählen
RESET_BG,Reset,Zurücksetzen RESET_BG,Reset,Zurücksetzen
@@ -72,7 +72,7 @@ UPD_ERR_CLT,a client error occurred,ein client error ist passiert
UPDT_OUT_END, Is Out!, Ist raus! UPDT_OUT_END, Is Out!, Ist raus!
IMPORTANT,(Important),(Wichtig) IMPORTANT,(Important),(Wichtig)
UPD_UPDATING,Updating…,Updated… UPD_UPDATING,Updating…,Updated…
UPD_ERR_CODE,DOWNLOAD FAILED ERROR CODE: ,DOWLOAD FEHLER CODE: UPD_ERR_CODE,DOWNLOAD FAILED ERROR CODE: ,"DOWLOAD FEHLER, CODE: "
UPD_UNZIP_PANT,unzipping…,entpacken… UPD_UNZIP_PANT,unzipping…,entpacken…
SONG_SEARCH,Search…,Suchen… SONG_SEARCH,Search…,Suchen…
FOLDER_SELECT,Select Current Folder,Wähle einen ordner aus FOLDER_SELECT,Select Current Folder,Wähle einen ordner aus
@@ -84,3 +84,8 @@ DL_LIST,Download Playlist,Playliste Herunterladen
DL_DIALOG,Do you want to download the song or the Entire playlist?,Willst du die playlist herunterladen? DL_DIALOG,Do you want to download the song or the Entire playlist?,Willst du die playlist herunterladen?
LANGUAGE,Language:,Sprache: LANGUAGE,Language:,Sprache:
SELECT,Select ,Auswählen SELECT,Select ,Auswählen
OPEN SOURCE,open source,Quelle oeffnen
Change Directory,Change Directory,Ordner Aendern
Open Directory,Open Directory,Ordner Oeffnen
PLAY,Play,Abspielen
use Up/Down arrow keys to adjust,use Up/Down arrow keys to adjust,Bentzte die Hoch/Runter pfeiltasten zum aendern
1 key en de
14 DRPC discord rich presense Discord aktivitäten
15 DRPC_NOTE NOTE: After disableing a restart is needed NOTE: After disableing simplaudio needs a restart Nach deaktivieren neustarten Nach dem deaktivieren muss Simplaudio neugestartet werden
16 LOOKS LOOKS AUSEHEN
17 BS_SELECT Select Background Hintergrund auswählen
18 RESET_BG Reset Zurücksetzen
19 SETTINGS_SOUND SOUND SETTINGS AUDIO EINSTELLUNGEN
20 PITCH_SPEED pitch/speed Ton höhe/geschwindigkeit
72 DL_SONG Download Song Nur Lied Herunterladen
73 DL_LIST Download Playlist Playliste Herunterladen
74 DL_DIALOG Do you want to download the song or the Entire playlist? Willst du die playlist herunterladen?
75 LANGUAGE Language: Sprache:
76 SELECT Select Auswählen
77 OPEN SOURCE open source Quelle oeffnen
78 Change Directory Change Directory Ordner Aendern
84
85
86
87
88
89
90
91
Binary file not shown.
Binary file not shown.