diff --git a/README.md b/README.md index a63446b..cd6e0be 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ -# wavelet +# audrey -A description of this project. +a native navidrome/subsonic player with all of the right features and none of the wrong ones diff --git a/data/eu.callcc.Wavelet.gschema.xml b/data/eu.callcc.Wavelet.gschema.xml deleted file mode 100644 index 9fe5bab..0000000 --- a/data/eu.callcc.Wavelet.gschema.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/data/eu.callcc.Wavelet.service.in b/data/eu.callcc.Wavelet.service.in deleted file mode 100644 index 97369b5..0000000 --- a/data/eu.callcc.Wavelet.service.in +++ /dev/null @@ -1,3 +0,0 @@ -[D-BUS Service] -Name=eu.callcc.Wavelet -Exec=@bindir@/wavelet --gapplication-service diff --git a/data/eu.callcc.Wavelet.desktop.in b/data/eu.callcc.audrey.desktop.in similarity index 71% rename from data/eu.callcc.Wavelet.desktop.in rename to data/eu.callcc.audrey.desktop.in index 9ce746d..91310db 100644 --- a/data/eu.callcc.Wavelet.desktop.in +++ b/data/eu.callcc.audrey.desktop.in @@ -1,7 +1,7 @@ [Desktop Entry] -Name=wavelet -Exec=wavelet -Icon=eu.callcc.Wavelet +Name=audrey +Exec=audrey +Icon=eu.callcc.audrey Terminal=false Type=Application Categories=Utility; diff --git a/data/eu.callcc.audrey.gschema.xml b/data/eu.callcc.audrey.gschema.xml new file mode 100644 index 0000000..ba0ae72 --- /dev/null +++ b/data/eu.callcc.audrey.gschema.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/data/eu.callcc.Wavelet.metainfo.xml.in b/data/eu.callcc.audrey.metainfo.xml.in similarity index 94% rename from data/eu.callcc.Wavelet.metainfo.xml.in rename to data/eu.callcc.audrey.metainfo.xml.in index 200bd74..92263bd 100644 --- a/data/eu.callcc.Wavelet.metainfo.xml.in +++ b/data/eu.callcc.audrey.metainfo.xml.in @@ -1,10 +1,10 @@ - eu.callcc.Wavelet + eu.callcc.audrey CC0-1.0 AGPL-3.0-or-later - Wavelet + audrey Keep the summary shorter, between 10 and 35 characters

No description

@@ -33,10 +33,10 @@ https://example.org/contribute - wavelet + audrey - eu.callcc.Wavelet.desktop + eu.callcc.audrey.desktop diff --git a/data/eu.callcc.audrey.service.in b/data/eu.callcc.audrey.service.in new file mode 100644 index 0000000..82322dd --- /dev/null +++ b/data/eu.callcc.audrey.service.in @@ -0,0 +1,3 @@ +[D-BUS Service] +Name=eu.callcc.audrey +Exec=@bindir@/audrey --gapplication-service diff --git a/data/icons/hicolor/scalable/apps/eu.callcc.Wavelet.svg b/data/icons/hicolor/scalable/apps/eu.callcc.audrey.svg similarity index 100% rename from data/icons/hicolor/scalable/apps/eu.callcc.Wavelet.svg rename to data/icons/hicolor/scalable/apps/eu.callcc.audrey.svg diff --git a/data/icons/hicolor/symbolic/apps/eu.callcc.Wavelet-symbolic.svg b/data/icons/hicolor/symbolic/apps/eu.callcc.audrey-symbolic.svg similarity index 100% rename from data/icons/hicolor/symbolic/apps/eu.callcc.Wavelet-symbolic.svg rename to data/icons/hicolor/symbolic/apps/eu.callcc.audrey-symbolic.svg diff --git a/data/icons/meson.build b/data/icons/meson.build index f1fbc64..a2752b5 100644 --- a/data/icons/meson.build +++ b/data/icons/meson.build @@ -1,4 +1,4 @@ -application_id = 'eu.callcc.Wavelet' +application_id = 'eu.callcc.audrey' scalable_dir = 'hicolor' / 'scalable' / 'apps' install_data( diff --git a/data/meson.build b/data/meson.build index 0edc8a6..ccc00ff 100644 --- a/data/meson.build +++ b/data/meson.build @@ -1,6 +1,6 @@ desktop_file = i18n.merge_file( - input: 'eu.callcc.Wavelet.desktop.in', - output: 'eu.callcc.Wavelet.desktop', + input: 'eu.callcc.audrey.desktop.in', + output: 'eu.callcc.audrey.desktop', type: 'desktop', po_dir: '../po', install: true, @@ -13,8 +13,8 @@ if desktop_utils.found() endif appstream_file = i18n.merge_file( - input: 'eu.callcc.Wavelet.metainfo.xml.in', - output: 'eu.callcc.Wavelet.metainfo.xml', + input: 'eu.callcc.audrey.metainfo.xml.in', + output: 'eu.callcc.audrey.metainfo.xml', po_dir: '../po', install: true, install_dir: get_option('datadir') / 'metainfo' @@ -24,7 +24,7 @@ appstreamcli = find_program('appstreamcli', required: false, disabler: true) test('Validate appstream file', appstreamcli, args: ['validate', '--no-net', '--explain', appstream_file]) -install_data('eu.callcc.Wavelet.gschema.xml', +install_data('eu.callcc.audrey.gschema.xml', install_dir: get_option('datadir') / 'glib-2.0' / 'schemas' ) @@ -37,8 +37,8 @@ test('Validate schema file', service_conf = configuration_data() service_conf.set('bindir', get_option('prefix') / get_option('bindir')) configure_file( - input: 'eu.callcc.Wavelet.service.in', - output: 'eu.callcc.Wavelet.service', + input: 'eu.callcc.audrey.service.in', + output: 'eu.callcc.audrey.service', configuration: service_conf, install_dir: get_option('datadir') / 'dbus-1' / 'services' ) diff --git a/meson.build b/meson.build index 28eca06..b8247d6 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ -project('wavelet', ['c', 'vala'], - version: '0.1.0', # WAVELET_VERSION +project('audrey', ['c', 'vala'], + version: '0.1.0', # AUDREY_VERSION meson_version: '>= 1.0.0', default_options: [ 'warning_level=0', 'werror=false', ], ) @@ -13,7 +13,7 @@ srcdir = meson.project_source_root() / 'src' config_h = configuration_data() config_h.set_quoted('PACKAGE_VERSION', meson.project_version ()) -config_h.set_quoted('GETTEXT_PACKAGE', 'wavelet') +config_h.set_quoted('GETTEXT_PACKAGE', 'audrey') config_h.set_quoted('LOCALEDIR', get_option('prefix') / get_option('localedir')) configure_file(output: 'config.h', configuration: config_h) diff --git a/po/POTFILES.in b/po/POTFILES.in index 015ca7c..9ca1808 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,8 +1,8 @@ # List of source files containing translatable strings. # Please keep this file sorted alphabetically. -data/eu.callcc.Wavelet.desktop.in -data/eu.callcc.Wavelet.metainfo.xml.in -data/eu.callcc.Wavelet.gschema.xml +data/eu.callcc.audrey.desktop.in +data/eu.callcc.audrey.metainfo.xml.in +data/eu.callcc.audrey.gschema.xml src/main.vala src/window.vala src/window.ui diff --git a/po/meson.build b/po/meson.build index 97abaf9..951cb98 100644 --- a/po/meson.build +++ b/po/meson.build @@ -1 +1 @@ -i18n.gettext('wavelet', preset: 'glib') +i18n.gettext('audrey', preset: 'glib') diff --git a/src/api.vala b/src/api.vala index f6e9827..7e9f709 100644 --- a/src/api.vala +++ b/src/api.vala @@ -3,9 +3,9 @@ errordomain SubsonicError { ERROR, } -public delegate void Wavelet.SongCallback (Song song); +public delegate void SongCallback (Song song); -public class Wavelet.Artist : Object, Json.Serializable { +public class Artist : Object, Json.Serializable { public string index; public string id; public string name { get; private set; } @@ -38,7 +38,7 @@ public class Wavelet.Artist : Object, Json.Serializable { } } -public class Wavelet.Album : Object { +public class Album : Object { public string id; public string name; @@ -53,7 +53,7 @@ public class Wavelet.Album : Object { } } -public class Wavelet.Song : Object { +public class Song : Object { public string id { get; private set; } public string title { get; private set; } public string album { get; private set; } @@ -89,7 +89,7 @@ public class Wavelet.Song : Object { } } -public struct Wavelet.API.PlayQueue { +public struct API.PlayQueue { public string current; public int64 position; public DateTime changed; @@ -128,7 +128,7 @@ public struct Wavelet.API.PlayQueue { } } -public class Wavelet.Subsonic : Object { +public class Subsonic : Object { public ListStore artist_list; public ListStore album_list; public ListStore song_list; @@ -139,10 +139,10 @@ public class Wavelet.Subsonic : Object { public Subsonic.with_password (string url, string username, string password) { this.url = url; - this.parameters = @"u=$(Uri.escape_string(username))&p=$(Uri.escape_string(password))&v=1.16.1&c=eu.callcc.Wavelet"; + this.parameters = @"u=$(Uri.escape_string(username))&p=$(Uri.escape_string(password))&v=1.16.1&c=eu.callcc.audrey"; this.session = new Soup.Session (); - this.session.user_agent = "Wavelet/0.1.0 (Linux)"; // WAVELET_VERSION + this.session.user_agent = "audrey/0.1.0 (Linux)"; // AUDREY_VERSION this.artist_list = new ListStore (typeof (Artist)); this.album_list = new ListStore (typeof (Album)); @@ -151,7 +151,7 @@ public class Wavelet.Subsonic : Object { public Subsonic.with_token (string url, string username, string token, string salt) { this.url = url; - this.parameters = @"u=$(Uri.escape_string(username))&t=$(Uri.escape_string(token))&s=$(Uri.escape_string(salt))&v=1.16.1&c=eu.callcc.Wavelet"; + this.parameters = @"u=$(Uri.escape_string(username))&t=$(Uri.escape_string(token))&s=$(Uri.escape_string(salt))&v=1.16.1&c=eu.callcc.audrey"; this.session = new Soup.Session (); diff --git a/src/application.vala b/src/application.vala index 21af66d..29ddd8f 100644 --- a/src/application.vala +++ b/src/application.vala @@ -1,9 +1,9 @@ -Wavelet.Subsonic public_api; +Subsonic public_api; -public class Wavelet.Application : Adw.Application { +public class Application : Adw.Application { public Application () { Object ( - application_id: "eu.callcc.Wavelet", + application_id: "eu.callcc.audrey", flags: ApplicationFlags.DEFAULT_FLAGS ); } @@ -21,18 +21,18 @@ public class Wavelet.Application : Adw.Application { public override void activate () { base.activate (); // if this.active_window not null, this isnt the primary instance - var win = this.active_window ?? new Wavelet.Window (this); + var win = this.active_window ?? new Window (this); win.present (); } private void on_about_action () { string[] developers = { "Erica Z" }; var about = new Adw.AboutDialog () { - application_name = "wavelet", - application_icon = "eu.callcc.Wavelet", + application_name = "audrey", + application_icon = "eu.callcc.audrey", developer_name = "Erica Z", translator_credits = _("translator-credits"), - version = "0.1.0", // WAVELET_VERSION + version = "0.1.0", // AUDREY_VERSION developers = developers, copyright = "© 2024 Erica Z", }; diff --git a/src/wavelet.css b/src/audrey.css similarity index 100% rename from src/wavelet.css rename to src/audrey.css diff --git a/src/wavelet.gresource.xml b/src/audrey.gresource.xml similarity index 81% rename from src/wavelet.gresource.xml rename to src/audrey.gresource.xml index 4ab409c..54d0e3d 100644 --- a/src/wavelet.gresource.xml +++ b/src/audrey.gresource.xml @@ -1,7 +1,7 @@ - - wavelet.css + + audrey.css gtk/help-overlay.ui play_queue.ui setup.ui diff --git a/src/main.vala b/src/main.vala index 026506b..0ed3841 100644 --- a/src/main.vala +++ b/src/main.vala @@ -5,6 +5,6 @@ int main (string[] args) { Gst.init (ref args); - var app = new Wavelet.Application (); + var app = new Application (); return app.run (args); } diff --git a/src/meson.build b/src/meson.build index 4ee8d3c..6cc684c 100644 --- a/src/meson.build +++ b/src/meson.build @@ -1,4 +1,4 @@ -wavelet_sources = [ +audrey_sources = [ 'api.vala', 'application.vala', 'main.vala', @@ -9,7 +9,7 @@ wavelet_sources = [ 'window.vala', ] -wavelet_deps = [ +audrey_deps = [ config_dep, dependency('gstreamer-1.0'), dependency('gstreamer-audio-1.0'), @@ -40,14 +40,14 @@ blueprints = custom_target('blueprints', ], ) -wavelet_sources += gnome.compile_resources('wavelet-resources', - 'wavelet.gresource.xml', - c_name: 'wavelet', +audrey_sources += gnome.compile_resources('audrey-resources', + 'audrey.gresource.xml', + c_name: 'audrey', dependencies: blueprints, ) -executable('wavelet', wavelet_sources, - dependencies: wavelet_deps, +executable('audrey', audrey_sources, + dependencies: audrey_deps, include_directories: config_inc, install: true, ) diff --git a/src/mpris.vala b/src/mpris.vala index 2c777af..96b16cf 100644 --- a/src/mpris.vala +++ b/src/mpris.vala @@ -16,8 +16,8 @@ class Mpris : Object { public bool can_set_fullscreen { get { return false; } } public bool fullscreen { get { return false; } set { assert (false); } } public bool has_track_list { get { return false; } } - public string identity { owned get { return "Wavelet"; } } - public string desktop_entry { owned get { return "wavelet"; } } + public string identity { owned get { return "audrey"; } } + public string desktop_entry { owned get { return "eu.callcc.audrey"; } } public string[] supported_uri_schemes { owned get { return {}; } } public string[] supported_mime_types { owned get { return {}; } } } diff --git a/src/play_queue.blp b/src/play_queue.blp index ef57322..0a52a94 100644 --- a/src/play_queue.blp +++ b/src/play_queue.blp @@ -1,7 +1,7 @@ using Gtk 4.0; using Adw 1; -template $WaveletPlayQueue: Adw.NavigationPage { +template $PlayQueue: Adw.NavigationPage { title: _("Play queue"); Adw.ToolbarView { @@ -38,8 +38,8 @@ template $WaveletPlayQueue: Adw.NavigationPage { template ColumnViewCell { child: Label { halign: start; - label: bind template.item as <$WaveletSong>.title; - tooltip-text: bind template.item as <$WaveletSong>.title; + label: bind template.item as <$Song>.title; + tooltip-text: bind template.item as <$Song>.title; ellipsize: end; }; } @@ -54,8 +54,8 @@ template $WaveletPlayQueue: Adw.NavigationPage { template ColumnViewCell { child: Label { halign: start; - label: bind template.item as <$WaveletSong>.artist; - tooltip-text: bind template.item as <$WaveletSong>.artist; + label: bind template.item as <$Song>.artist; + tooltip-text: bind template.item as <$Song>.artist; ellipsize: end; }; } diff --git a/src/play_queue.vala b/src/play_queue.vala index fe93747..bae49de 100644 --- a/src/play_queue.vala +++ b/src/play_queue.vala @@ -1,5 +1,5 @@ -[GtkTemplate (ui = "/eu/callcc/Wavelet/play_queue.ui")] -public class Wavelet.PlayQueue : Adw.NavigationPage { +[GtkTemplate (ui = "/eu/callcc/audrey/play_queue.ui")] +public class PlayQueue : Adw.NavigationPage { public ListStore songs { get; private set; } public uint selected_index { get; set; } diff --git a/src/playbin.vala b/src/playbin.vala index 49ab15b..8c9f8ca 100644 --- a/src/playbin.vala +++ b/src/playbin.vala @@ -30,9 +30,9 @@ class Playbin : Object { this.playbin = Gst.ElementFactory.make ("playbin3", null); assert (this.playbin != null); - //dynamic Gst.Element souphttpsrc = ((Gst.Bin) this.playbin).get_by_name ("souphttpsrc"); + //dynamic Gst.Element souphttpsrc = ((Gst.Bin) this.playbin).get_by_name ("souphttpsrc0"); //assert (souphttpsrc != null); - //souphttpsrc.user_agent = "Wavelet/0.1.0 (Linux)"; // WAVELET_VERSION + //souphttpsrc.user_agent = "audrey/0.1.0 (Linux)"; // AUDREY_VERSION // regularly update position Timeout.add (500, () => { diff --git a/src/setup.blp b/src/setup.blp index f886e69..de0d92f 100644 --- a/src/setup.blp +++ b/src/setup.blp @@ -1,7 +1,7 @@ using Gtk 4.0; using Adw 1; -template $WaveletSetup: Adw.PreferencesDialog { +template $Setup: Adw.PreferencesDialog { title: _("Setup"); Adw.ToolbarView { diff --git a/src/setup.vala b/src/setup.vala index a3d9e7b..09cd176 100644 --- a/src/setup.vala +++ b/src/setup.vala @@ -1,8 +1,8 @@ [CCode (cname = "sqlite3_randomness")] public extern void randomness (int N, void *P); -[GtkTemplate (ui = "/eu/callcc/Wavelet/setup.ui")] -public class Wavelet.Setup : Adw.PreferencesDialog { +[GtkTemplate (ui = "/eu/callcc/audrey/setup.ui")] +public class Setup : Adw.PreferencesDialog { public string status { get; private set; default = _("Not connected"); } public bool authn_can_edit { get; private set; default = true; } @@ -14,14 +14,14 @@ public class Wavelet.Setup : Adw.PreferencesDialog { public string token; public string salt; - public signal void connected (Wavelet.Subsonic api); + public signal void connected (Subsonic api); private Sqlite.Database db; private Sqlite.Statement db_get; private Sqlite.Statement db_set; construct { - var app_config_dir = Path.build_filename (Environment.get_user_config_dir (), "wavelet"); + var app_config_dir = Path.build_filename (Environment.get_user_config_dir (), "audrey"); try { File.new_build_filename (app_config_dir).make_directory_with_parents (); @@ -60,7 +60,7 @@ public class Wavelet.Setup : Adw.PreferencesDialog { new_token = this.token; new_salt = this.salt; } - var api = new Wavelet.Subsonic.with_token ( + var api = new Subsonic.with_token ( this.server_url, this.username, new_token, diff --git a/src/window.blp b/src/window.blp index 78260aa..b3f83b2 100644 --- a/src/window.blp +++ b/src/window.blp @@ -1,8 +1,8 @@ using Gtk 4.0; using Adw 1; -template $WaveletWindow: Adw.ApplicationWindow { - title: _("Wavelet"); +template $Window: Adw.ApplicationWindow { + title: _("audrey"); default-width: 800; default-height: 600; @@ -15,7 +15,7 @@ template $WaveletWindow: Adw.ApplicationWindow { [sidebar] Adw.NavigationPage { width-request: 100; - title: _("Wavelet"); + title: _("audrey"); Adw.ToolbarView { [top] @@ -81,7 +81,7 @@ paintable: bind template.playing_cover_art; name: "play_queue"; title: _("Play queue"); - child: $WaveletPlayQueue play_queue {}; + child: $PlayQueue play_queue {}; } } } @@ -100,14 +100,14 @@ paintable: bind template.playing_cover_art; Label { styles [ "heading" ] halign: start; - label: bind template.song as <$WaveletSong>.title; + label: bind template.song as <$Song>.title; } Box { halign: start; Label { styles [ "caption" ] - label: bind template.song as <$WaveletSong>.artist; + label: bind template.song as <$Song>.artist; } Label { styles [ "caption" ] @@ -115,7 +115,7 @@ paintable: bind template.playing_cover_art; } Label { styles [ "caption" ] - label: bind template.song as <$WaveletSong>.album; + label: bind template.song as <$Song>.album; } Label { styles [ "caption" ] @@ -123,7 +123,7 @@ paintable: bind template.playing_cover_art; } Label { styles [ "caption" ] - label: bind template.song as <$WaveletSong>.year; + label: bind template.song as <$Song>.year; } } } diff --git a/src/window.vala b/src/window.vala index 7544f1f..3d8254d 100644 --- a/src/window.vala +++ b/src/window.vala @@ -1,13 +1,13 @@ -[GtkTemplate (ui = "/eu/callcc/Wavelet/window.ui")] -class Wavelet.Window : Adw.ApplicationWindow { +[GtkTemplate (ui = "/eu/callcc/audrey/window.ui")] +class Window : Adw.ApplicationWindow { [GtkChild] private unowned Gtk.ListBox sidebar; [GtkChild] private unowned Gtk.ListBoxRow sidebar_play_queue; [GtkChild] private unowned Gtk.Stack stack; - [GtkChild] public unowned Wavelet.PlayQueue play_queue; + [GtkChild] public unowned PlayQueue play_queue; [GtkChild] public unowned Adw.ButtonRow shuffle_all_tracks; - private Wavelet.Setup setup; + private Setup setup; public bool playing { get; private set; default = false; } @@ -36,7 +36,7 @@ class Wavelet.Window : Adw.ApplicationWindow { Object (application: app); var provider = new Gtk.CssProvider (); - provider.load_from_resource("/eu/callcc/Wavelet/wavelet.css"); + provider.load_from_resource("/eu/callcc/audrey/audrey.css"); Gtk.StyleContext.add_provider_for_display (Gdk.Display.get_default (), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); @@ -49,7 +49,7 @@ class Wavelet.Window : Adw.ApplicationWindow { construct { Bus.own_name ( BusType.SESSION, - "org.mpris.MediaPlayer2.wavelet", + "org.mpris.MediaPlayer2.audrey", BusNameOwnerFlags.NONE, (conn) => { try { @@ -61,7 +61,7 @@ class Wavelet.Window : Adw.ApplicationWindow { () => {}, () => { error ("could not acquire dbus name"); }); - this.setup = new Wavelet.Setup (); + this.setup = new Setup (); this.setup.connected.connect ((api) => { public_api = api;