commit: a56915d41217d8755b256913f4f9017b6891925f
Author: Anthony Ruhier <aruhier <AT> mailbox <DOT> org>
AuthorDate: Wed Feb 21 11:56:06 2024 +0000
Commit: Julien Roy <julien <AT> jroy <DOT> ca>
CommitDate: Wed Feb 21 11:56:31 2024 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=a56915d4
gui-apps/swaync: add 0.10.0, drop 0.8.0
Signed-off-by: Anthony Ruhier <aruhier <AT> mailbox.org>
gui-apps/swaync/Manifest | 2 +-
gui-apps/swaync/files/swaync-0.8.0-pulsefree.patch | 942 ---------------------
.../{swaync-0.8.0.ebuild => swaync-0.10.0.ebuild} | 14 +-
3 files changed, 12 insertions(+), 946 deletions(-)
diff --git a/gui-apps/swaync/Manifest b/gui-apps/swaync/Manifest
index 97719be519..476a9a4962 100644
--- a/gui-apps/swaync/Manifest
+++ b/gui-apps/swaync/Manifest
@@ -1,2 +1,2 @@
-DIST swaync-0.8.0.tar.gz 3170861 BLAKE2B
a43fd4d095b3bb1b39ff914cf3f09f9d97807d95365839a30c46c607c601c8e557e4365e3c23cbf650dca7b5a51523e4fbc8ecf49d7863b717b04e0c90e04f46
SHA512
c1ee542fff2b6b06cd0def99c96bede5cb3dc576ab4e0498bd110f1b6e3df2786526d5ec58dbfc7f5c488afc2c1c85541e878c76118486530b8937a5e13a0799
+DIST swaync-0.10.0.tar.gz 1709477 BLAKE2B
179e27632a95d1bab687011479db4d534eebe9f104f388c51782a6f2bc7dc02acc8b4ca5c3aa80c00418da72c7e51f9f9c12f58c181eec0a4a17cb3333141480
SHA512
5c91f369a6ec24e8d52135b731fe396ca11f0bc44a5d42534a7a92656d68f8e4654c3d37b8817a7f4f707e83ae76db68535004f5aa3b527b13ce5a6165863bc5
DIST swaync-0.9.0.tar.gz 3178186 BLAKE2B
09c92e094da8c97384c78ac0afffc8caa968c78cad298056a99377da6a06e4cc496e0fbf469f0096d0378a7f78e0717e816dd8f43ef6a45270bd7b13f8f90d42
SHA512
1c9bb7908d74752cdb03b11d15794a18ca6360aec1a0d00897e252954544179885841905d0ba7464da8e29d0cdc8dc6b33b65296a7e61478ed160980b6f26b32
diff --git a/gui-apps/swaync/files/swaync-0.8.0-pulsefree.patch
b/gui-apps/swaync/files/swaync-0.8.0-pulsefree.patch
deleted file mode 100644
index 5ef56ca477..0000000000
--- a/gui-apps/swaync/files/swaync-0.8.0-pulsefree.patch
+++ /dev/null
@@ -1,942 +0,0 @@
-diff --git a/.github/workflows/arch-build.yml
b/.github/workflows/arch-build.yml
-index aa7ac12..395339a 100644
---- a/.github/workflows/arch-build.yml
-+++ b/.github/workflows/arch-build.yml
-@@ -18,7 +18,7 @@ jobs:
- container: archlinux:latest
- runs-on: ubuntu-latest
- env:
-- PACKAGES: meson gtk3 gobject-introspection vala json-glib libhandy
gtk-layer-shell scdoc libpulse libgee
-+ PACKAGES: meson gtk3 gobject-introspection vala json-glib libhandy
gtk-layer-shell scdoc
- steps:
- - name: Install packages
- run: |
-diff --git a/.github/workflows/ubuntu-build.yml
b/.github/workflows/ubuntu-build.yml
-index e29f197..61d119d 100644
---- a/.github/workflows/ubuntu-build.yml
-+++ b/.github/workflows/ubuntu-build.yml
-@@ -19,7 +19,7 @@ jobs:
- runs-on: ubuntu-latest
- env:
- DEBIAN_FRONTEND: noninteractive
-- PACKAGES: meson libwayland-dev libgtk-3-dev gobject-introspection
libgirepository1.0-dev valac libjson-glib-dev libhandy-1-dev
libgtk-layer-shell-dev scdoc libgee-0.8-dev libpulse-dev
-+ PACKAGES: meson libwayland-dev libgtk-3-dev gobject-introspection
libgirepository1.0-dev valac libjson-glib-dev libhandy-1-dev
libgtk-layer-shell-dev scdoc
- steps:
- - name: Install packages
- run: |
-diff --git a/README.md b/README.md
-index 5de6365..2bd742d 100644
---- a/README.md
-+++ b/README.md
-@@ -53,7 +53,6 @@ These widgets can be customized, added, removed and even
reordered
- - Mpris (Media player controls for Spotify, Firefox, Chrome, etc...)
- - Menubar with dropdown and buttons
- - Button grid
--- Volume slider using PulseAudio
- - Backlight slider
-
- ## Planned Features
-diff --git a/build-scripts/PKGBUILD b/build-scripts/PKGBUILD
-index bdcbdaf..5df0d85 100644
---- a/build-scripts/PKGBUILD
-+++ b/build-scripts/PKGBUILD
-@@ -11,7 +11,7 @@ arch=(
- 'armv7h' # ARM v7 hardfloat
- )
- license=(GPL3)
--depends=("gtk3" "gtk-layer-shell" "dbus" "glib2" "gobject-introspection"
"libgee" "json-glib" "libhandy" "libpulse")
-+depends=("gtk3" "gtk-layer-shell" "dbus" "glib2" "gobject-introspection"
"libgee" "json-glib" "libhandy")
- conflicts=("swaync" "swaync-client")
- provides=("swaync" "swaync-client")
- makedepends=(vala meson git scdoc)
-diff --git a/build-scripts/PKGBUILD-git b/build-scripts/PKGBUILD-git
-index 6effc15..53de290 100644
---- a/build-scripts/PKGBUILD-git
-+++ b/build-scripts/PKGBUILD-git
-@@ -11,7 +11,7 @@ arch=(
- 'armv7h' # ARM v7 hardfloat
- )
- license=('GPL3')
--depends=("gtk3" "gtk-layer-shell" "dbus" "glib2" "gobject-introspection"
"libgee" "json-glib" "libhandy" "libpulse" )
-+depends=("gtk3" "gtk-layer-shell" "dbus" "glib2" "gobject-introspection"
"libgee" "json-glib" "libhandy")
- conflicts=("swaync" "swaync-client")
- provides=("swaync" "swaync-client")
- makedepends=(vala meson git scdoc)
-diff --git a/build-scripts/swaync.rpkg.spec b/build-scripts/swaync.rpkg.spec
-index a16b073..b2ef198 100644
---- a/build-scripts/swaync.rpkg.spec
-+++ b/build-scripts/swaync.rpkg.spec
-@@ -23,7 +23,6 @@ BuildRequires: libhandy-devel >= 1.4.0
- BuildRequires: systemd-devel
- BuildRequires: systemd
- BuildRequires: scdoc
--BuildRequires: pulseaudio-libs-devel
- %{?systemd_requires}
-
- %description
-diff --git a/man/swaync.5.scd b/man/swaync.5.scd
-index ba83f55..f4c0157 100644
---- a/man/swaync.5.scd
-+++ b/man/swaync.5.scd
-@@ -375,16 +375,6 @@ config file to be able to detect config errors
- description:
"Command to be executed on click" ++
- description: A list of actions
containing a label and a command ++
- description: A grid of buttons that execute shell
commands ++
-- *volume*++
-- type: object ++
-- css class: widget-volume ++
-- properties: ++
-- label: ++
-- type: string ++
-- optional: true ++
-- default: "Volume" ++
-- description: Text displayed in front of
the volume slider ++
-- description: Slider to control pulse volume ++
- *backlight*++
- type: object ++
- css class: widget-backlight ++
-@@ -431,7 +421,6 @@ config file to be able to detect config errors
- default: "Clear All" ++
- description: "Clear All" button text ++
- description: Displayed if notifications are inhibited.
--
- example:
- ```
- {
-diff --git a/src/configSchema.json b/src/configSchema.json
-index 9bbb649..c2bd07b 100644
---- a/src/configSchema.json
-+++ b/src/configSchema.json
-@@ -293,9 +293,6 @@
- "^menubar(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
- "$ref": "#/widgets/menubar"
- },
-- "^volume(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
-- "$ref": "#/widgets/volume"
-- },
- "^backlight(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
- "$ref": "#/widgets/backlight"
- },
-@@ -446,18 +443,6 @@
- }
- }
- },
-- "volume": {
-- "type": "object",
-- "description": "Slider to control pulse volume",
-- "additionalProperties": false,
-- "properties": {
-- "label": {
-- "type": "string",
-- "description": "Text displayed in front of the volume slider",
-- "default": "Volume"
-- }
-- }
-- },
- "backlight": {
- "type": "object",
- "description": "Slider to control monitor brightness",
-diff --git a/src/controlCenter/widgets/factory.vala
b/src/controlCenter/widgets/factory.vala
-index aea178d..f2ed445 100644
---- a/src/controlCenter/widgets/factory.vala
-+++ b/src/controlCenter/widgets/factory.vala
-@@ -26,9 +26,6 @@ namespace SwayNotificationCenter.Widgets {
- case "buttons-grid":
- widget = new ButtonsGrid (suffix, swaync_daemon, noti_daemon);
- break;
-- case "volume":
-- widget = new Volume (suffix, swaync_daemon, noti_daemon);
-- break;
- case "backlight":
- widget = new Backlight (suffix, swaync_daemon, noti_daemon);
- break;
-diff --git a/src/controlCenter/widgets/volume/pulseDaemon.vala
b/src/controlCenter/widgets/volume/pulseDaemon.vala
-deleted file mode 100644
-index 766bf45..0000000
---- a/src/controlCenter/widgets/volume/pulseDaemon.vala
-+++ /dev/null
-@@ -1,531 +0,0 @@
--// From SwaySettings PulseAudio page:
https://github.com/ErikReider/SwaySettings/blob/407c9e99dd3e50a0f09c64d94a9e6ff741488378/src/Pages/Pulse/PulseDaemon.vala
--using PulseAudio;
--using Gee;
--
--namespace SwayNotificationCenter.Widgets {
-- /**
-- * Loosely based off of Elementary OS switchboard-plug-sound
-- * https://github.com/elementary/switchboard-plug-sound
-- */
-- public class PulseDaemon : Object {
-- private Context context;
-- private GLibMainLoop mainloop;
-- private bool quitting = false;
--
-- public bool running { get; private set; }
--
-- private string default_sink_name { get; private set; }
-- private string default_source_name { get; private set; }
--
-- private PulseDevice ? default_sink = null;
--
-- public HashMap<string, PulseDevice> sinks { get; private set; }
--
-- construct {
-- mainloop = new GLibMainLoop ();
--
-- sinks = new HashMap<string, PulseDevice> ();
-- }
--
-- public void start () {
-- get_context ();
-- }
--
-- public void close () {
-- quitting = true;
-- context.disconnect ();
-- context = null;
-- }
--
-- public signal void change_default_device (PulseDevice device);
--
-- public signal void new_device (PulseDevice device);
-- public signal void change_device (PulseDevice device);
-- public signal void remove_device (PulseDevice device);
--
-- private void get_context () {
-- var ctx = new Context (mainloop.get_api (), null);
-- ctx.set_state_callback ((ctx) => {
-- debug ("Pulse Status: %s\n", ctx.get_state ().to_string ());
-- switch (ctx.get_state ()) {
-- case Context.State.CONNECTING:
-- case Context.State.AUTHORIZING:
-- case Context.State.SETTING_NAME:
-- break;
-- case Context.State.READY:
-- ctx.set_subscribe_callback (subscription);
-- ctx.subscribe
(Context.SubscriptionMask.SINK_INPUT |
-- Context.SubscriptionMask.SINK |
-- Context.SubscriptionMask.CARD |
-- Context.SubscriptionMask.SERVER);
-- // Init data
-- ctx.get_server_info (this.get_server_info);
-- running = true;
-- break;
-- case Context.State.TERMINATED:
-- case Context.State.FAILED:
-- running = false;
-- if (quitting) {
-- quitting = false;
-- break;
-- }
-- stderr.printf (
-- "PulseAudio connection lost. Will retry
connection.\n");
-- get_context ();
-- break;
-- default:
-- running = false;
-- stderr.printf ("Connection failure: %s\n",
-- PulseAudio.strerror (ctx.errno
()));
-- break;
-- }
-- });
-- if (ctx.connect (
-- null, Context.Flags.NOFAIL, null) < 0) {
-- stdout.printf ("pa_context_connect() failed: %s\n",
-- PulseAudio.strerror (ctx.errno ()));
-- }
-- this.context = ctx;
-- }
--
-- private void subscription (Context ctx,
-- Context.SubscriptionEventType t,
-- uint32 index) {
-- var type = t & Context.SubscriptionEventType.FACILITY_MASK;
-- var event = t & Context.SubscriptionEventType.TYPE_MASK;
-- switch (type) {
-- case Context.SubscriptionEventType.SINK:
-- switch (event) {
-- default: break;
-- case Context.SubscriptionEventType.NEW:
-- case Context.SubscriptionEventType.CHANGE:
-- ctx.get_sink_info_by_index (index,
this.get_sink_info);
-- break;
-- case Context.SubscriptionEventType.REMOVE:
-- foreach (var sink in sinks.values) {
-- if (sink.device_index != index) continue;
-- sink.removed = true;
-- sink.is_default = false;
-- this.remove_device (sink);
-- break;
-- }
-- break;
-- }
-- break;
-- case Context.SubscriptionEventType.CARD:
-- switch (event) {
-- default: break;
-- case Context.SubscriptionEventType.NEW:
-- case Context.SubscriptionEventType.CHANGE:
-- ctx.get_card_info_by_index (index,
this.get_card_info);
-- break;
-- case Context.SubscriptionEventType.REMOVE:
-- // A safe way of removing the sink_input
-- var iter = sinks.map_iterator ();
-- while (iter.next ()) {
-- var device = iter.get_value ();
-- if (device.card_index != index) continue;
-- device.removed = true;
-- device.is_default = false;
-- iter.unset ();
-- this.remove_device (device);
-- break;
-- }
-- break;
-- }
-- break;
-- case Context.SubscriptionEventType.SERVER:
-- ctx.get_server_info (this.get_server_info);
-- break;
-- default: break;
-- }
-- }
--
-- /*
-- * Getters
-- */
--
-- /**
-- * Gets called when any server value changes like default devices
-- * Calls `get_card_info_list` and `get_sink_info_list`
-- */
-- private void get_server_info (Context ctx, ServerInfo ? info) {
-- if (this.default_sink_name == null) {
-- this.default_sink_name = info.default_sink_name;
-- }
-- if (this.default_sink_name != info.default_sink_name) {
-- this.default_sink_name = info.default_sink_name;
-- }
--
-- ctx.get_card_info_list (this.get_card_info);
-- ctx.get_sink_info_list (this.get_sink_info);
-- }
--
-- private void get_card_info (Context ctx, CardInfo ? info, int eol) {
-- if (info == null || eol != 0) return;
--
-- unowned string ? description = info.proplist
-- .gets ("device.description");
-- unowned string ? props_icon = info.proplist
-- .gets ("device.icon_name");
--
-- PulseDevice[] ports = {};
-- foreach (var port in info.ports) {
-- if (port->available == PortAvailable.NO) continue;
--
-- bool is_input = port->direction == Direction.INPUT;
-- HashMap<string, PulseDevice> devices = this.sinks;
-- string id = PulseDevice.get_hash_map_key (
-- description, port.name);
--
-- bool has_device = devices.has_key (id);
-- PulseDevice device = has_device
-- ? devices.get (id) : new PulseDevice ();
-- bool device_is_removed = device.removed;
-- device.removed = false;
--
-- device.is_bluetooth = info.proplist.gets ("device.api") ==
"bluez5";
--
-- device.card_index = info.index;
-- device.direction = port.direction;
--
-- device.card_name = info.name;
-- device.card_description = description;
-- device.card_active_profile = info.active_profile2->name;
--
-- device.port_name = port.name;
-- device.port_description = port.description;
-- device.port_id = port->proplist.gets ("card.profile.port");
--
-- // Get port profiles2 (profiles is "Superseded by profiles2")
-- // and sort largest priority first
-- var profiles = new ArrayList<unowned CardProfileInfo2 *>
-- .wrap (port->profiles2);
--
-- profiles.sort ((a, b) => {
-- if (a->priority == b->priority) return 0;
-- return a.priority > b.priority ? -1 : 1;
-- });
-- string[] new_profiles = {};
-- Array<PulseCardProfile> pulse_profiles = new
Array<PulseCardProfile> ();
-- foreach (var profile in profiles) {
-- new_profiles += profile->name;
--
-- var card_profile = new PulseCardProfile (profile);
-- pulse_profiles.append_val (card_profile);
-- if (profile->name == device.card_active_profile) {
-- device.active_profile = card_profile;
-- }
-- }
-- device.port_profiles = new_profiles;
-- device.profiles = pulse_profiles;
--
-- device.icon_name = port->proplist.gets ("device.icon_name")
-- ?? props_icon;
-- if (device.icon_name == null) {
-- device.icon_name = is_input
-- ? "microphone-sensitivity-high"
-- : "audio-speakers";
-- }
-- devices.set (id, device);
-- ports += device;
-- if (!has_device || device_is_removed) {
-- this.new_device (device);
-- }
-- }
--
-- /** Removes ports that are no longer available */
-- var iter = sinks.map_iterator ();
-- while (iter.next ()) {
-- var device = iter.get_value ();
-- if (device.card_index != info.index) continue;
-- bool found = false;
-- foreach (var p in ports) {
-- if (device.get_current_hash_key ()
-- == p.get_current_hash_key ()) {
-- found = true;
-- break;
-- }
-- }
-- if (!found) {
-- iter.unset ();
-- remove_device (device);
-- break;
-- }
-- }
-- }
--
-- private void get_sink_info (Context ctx, SinkInfo ? info, int eol) {
-- if (info == null || eol != 0) return;
--
-- bool found = false;
-- foreach (PulseDevice device in sinks.values) {
-- if (device.card_index == info.card) {
-- // Sets the name and index to profiles that aren't active
-- // Ex: The HDMI audio port that's not active
-- device.device_name = info.name;
-- device.device_description = info.description;
-- device.device_index = info.index;
-- // If the current selected sink profile is this
-- if (info.active_port != null
-- && info.active_port->name == device.port_name) {
-- found = true;
--
-- device.card_sink_port_name = info.active_port->name;
-- bool is_default =
-- device.device_name == this.default_sink_name;
-- device.is_default = is_default;
--
-- device.is_muted = info.mute == 1;
--
-- device.is_virtual = info.proplist.gets
("node.virtual") == "true";
--
-- device.cvolume = info.volume;
-- device.channel_map = info.channel_map;
-- device.balance = device.cvolume
-- .get_balance (device.channel_map);
-- device.volume_operations.foreach ((op) => {
-- if (op.get_state () != Operation.State.RUNNING) {
-- device.volume_operations.remove (op);
-- }
-- return Source.CONTINUE;
-- });
-- if (device.volume_operations.is_empty) {
-- device.volume = volume_to_double (
-- device.cvolume.max ());
-- }
--
-- if (is_default) {
-- this.default_sink = device;
-- this.change_default_device (device);
-- }
-- }
-- this.change_device (device);
-- }
-- }
-- // If not found, it's a cardless device
-- if (found) return;
--
-- HashMap<string, PulseDevice> devices = this.sinks;
-- string id = PulseDevice.get_hash_map_key (
-- info.index.to_string (), info.description);
-- bool has_device = devices.has_key (id);
-- PulseDevice device = has_device ? devices.get (id) : new
PulseDevice ();
--
-- bool device_is_removed = device.removed;
-- device.removed = false;
--
-- device.has_card = false;
--
-- device.direction = PulseAudio.Direction.OUTPUT;
--
-- device.device_name = info.name;
-- device.device_description = info.description;
-- device.device_index = info.index;
--
-- bool is_default = device.device_name == this.default_source_name;
-- device.is_default = is_default;
--
-- device.is_muted = info.mute == 1;
--
-- device.is_virtual = info.proplist.gets ("node.virtual") == "true";
--
-- device.icon_name = "application-x-executable-symbolic";
--
-- device.cvolume = info.volume;
-- device.channel_map = info.channel_map;
-- device.balance = device.cvolume
-- .get_balance (device.channel_map);
-- device.volume_operations.foreach ((op) => {
-- if (op.get_state () != Operation.State.RUNNING) {
-- device.volume_operations.remove (op);
-- }
-- return Source.CONTINUE;
-- });
-- if (device.volume_operations.is_empty) {
-- device.volume = volume_to_double (
-- device.cvolume.max ());
-- }
--
-- devices.set (id, device);
--
-- if (is_default) {
-- this.default_sink = device;
-- this.change_default_device (device);
-- }
-- if (!has_device || device_is_removed) {
-- this.new_device (device);
-- }
-- this.change_device (device);
-- }
--
-- /*
-- * Setters
-- */
-- public void set_device_volume (PulseDevice device, double volume) {
-- device.volume_operations.foreach ((operation) => {
-- if (operation.get_state () == Operation.State.RUNNING) {
-- operation.cancel ();
-- }
--
-- device.volume_operations.remove (operation);
-- return GLib.Source.CONTINUE;
-- });
--
-- var cvol = device.cvolume;
-- cvol.scale (double_to_volume (volume));
-- Operation ? operation = null;
-- if (device.direction == Direction.OUTPUT) {
-- operation = context.set_sink_volume_by_name (
-- device.device_name, cvol);
-- }
--
-- if (operation != null) {
-- device.volume_operations.add (operation);
-- }
-- }
--
-- public async void set_default_device (PulseDevice device) {
-- if (device == null) return;
-- bool is_input = device.direction == Direction.INPUT;
--
-- // Only set port and card profile if the device is attached to a
card
-- if (device.has_card) {
-- // Gets the profile that includes support for your other
device
-- string profile_name = device.port_profiles[0];
-- PulseDevice alt_device = default_sink;
-- if (alt_device != null) {
-- foreach (var profile in device.port_profiles) {
-- if (profile in alt_device.port_profiles) {
-- profile_name = profile;
-- break;
-- }
-- }
-- }
--
-- if (profile_name != device.card_active_profile) {
-- yield set_card_profile_by_index (profile_name, device);
-- yield wait_for_update<string> (device, "device-name");
-- }
--
-- if (!is_input) {
-- if (device.port_name != device.card_sink_port_name) {
-- debug ("Setting port to: %s", device.port_name);
-- yield set_sink_port_by_name (device);
-- }
-- }
--
-- if (device.device_name == null) {
-- yield wait_for_update<string> (device, "device-name");
-- }
-- }
--
-- if (!is_input) {
-- if (device.device_name != default_sink_name) {
-- debug ("Setting default sink to: %s", device.device_name);
-- yield set_default_sink (device);
-- }
-- }
-- }
--
-- private async void wait_for_update<T> (PulseDevice device,
-- string prop_name) {
-- SourceFunc callback = wait_for_update.callback;
-- ulong handler_id = 0;
-- handler_id = device.notify[prop_name].connect ((s, p) => {
-- T prop_value;
-- device.get (prop_name, out prop_value);
-- if (prop_value != null) {
-- device.disconnect (handler_id);
-- Idle.add ((owned) callback);
-- }
-- });
-- yield;
-- }
--
-- public async void set_bluetooth_card_profile (PulseCardProfile
profile,
-- PulseDevice device) {
-- context.set_card_profile_by_index (device.card_index,
-- profile.name,
-- (c, success) => {
-- if (success == 1) {
-- set_bluetooth_card_profile.callback ();
-- } else {
-- stderr.printf ("setting the card %s profile to %s
failed\n",
-- device.card_name, profile.name);
-- }
-- });
-- yield;
-- // Wait until the device has been updated
-- yield wait_for_update<string> (device, "device-name");
-- }
--
-- private async void set_card_profile_by_index (string profile_name,
-- PulseDevice device) {
-- context.set_card_profile_by_index (device.card_index,
-- profile_name,
-- (c, success) => {
-- if (success == 1) {
-- set_card_profile_by_index.callback ();
-- } else {
-- stderr.printf ("setting the card %s profile to %s
failed\n",
-- device.card_name, profile_name);
-- }
-- });
-- yield;
-- }
--
-- private async void set_sink_port_by_name (PulseDevice device) {
-- context.set_sink_port_by_name (device.device_name,
-- device.port_name,
-- (c, success) => {
-- if (success == 1) {
-- set_sink_port_by_name.callback ();
-- } else {
-- stderr.printf ("setting sink port to %s failed\n",
-- device.port_name);
-- }
-- });
-- yield;
-- }
--
-- private async void set_default_sink (PulseDevice device) {
-- context.set_default_sink (device.device_name, (c, success) => {
-- if (success == 1) {
-- set_default_sink.callback ();
-- } else {
-- stderr.printf ("setting default sink to %s failed\n",
-- device.device_name);
-- }
-- });
-- yield;
-- }
--
-- public void set_device_mute (bool state, PulseDevice device) {
-- if (device.is_muted == state) return;
-- if (device.direction == Direction.OUTPUT) {
-- context.set_sink_mute_by_index (
-- device.device_index, state);
-- }
-- }
--
-- // public void set_sink_input_mute (bool state, PulseSinkInput
sink_input) {
-- // if (sink_input.is_muted == state) return;
-- // context.set_sink_input_mute (sink_input.index, state);
-- // }
--
-- /*
-- * Volume utils
-- */
--
-- private static double volume_to_double (PulseAudio.Volume vol) {
-- double tmp = (double) (vol - PulseAudio.Volume.MUTED);
-- return 100 * tmp / (double) (PulseAudio.Volume.NORM -
PulseAudio.Volume.MUTED);
-- }
--
-- private static PulseAudio.Volume double_to_volume (double vol) {
-- double tmp = (double) (PulseAudio.Volume.NORM -
PulseAudio.Volume.MUTED) * vol / 100;
-- return (PulseAudio.Volume) tmp + PulseAudio.Volume.MUTED;
-- }
-- }
--}
-diff --git a/src/controlCenter/widgets/volume/pulseDevice.vala
b/src/controlCenter/widgets/volume/pulseDevice.vala
-deleted file mode 100644
-index accb8dc..0000000
---- a/src/controlCenter/widgets/volume/pulseDevice.vala
-+++ /dev/null
-@@ -1,135 +0,0 @@
--// From SwaySettings PulseAudio page:
https://github.com/ErikReider/SwaySettings/blob/407c9e99dd3e50a0f09c64d94a9e6ff741488378/src/Pages/Pulse/PulseDevice.vala
--using PulseAudio;
--using Gee;
--
--namespace SwayNotificationCenter.Widgets {
-- public class PulseCardProfile : Object {
-- public string name;
-- public string description;
-- public uint32 n_sinks;
-- public uint32 priority;
-- int available;
--
-- public PulseCardProfile (CardProfileInfo2 * profile) {
-- this.name = profile->name;
-- this.description = profile->description;
-- this.n_sinks = profile->n_sinks;
-- this.priority = profile->priority;
-- this.available = profile->available;
-- }
--
-- public bool cmp (PulseCardProfile profile) {
-- return profile.name == name
-- && profile.description == description
-- && profile.n_sinks == n_sinks
-- && profile.priority == priority
-- && profile.available == available;
-- }
-- }
--
-- public class PulseDevice : Object {
--
-- public bool removed { get; set; default = false; }
--
-- public bool has_card { get; set; default = true; }
--
-- /** The card index: ex. `Card #49` */
-- public uint32 card_index { get; set; }
-- /** Sink index: ex. `Sink #55` */
-- public uint32 device_index { get; set; }
--
-- /** Input or Output */
-- public Direction direction { get; set; }
--
-- /** Is default Sink */
-- public bool is_default { get; set; }
-- /** If the device is virtual */
-- public bool is_virtual { get; set; default = false; }
-- /** If the device is a bluetooth device */
-- public bool is_bluetooth { get; set; default = false; }
--
-- /** The icon name: `device.icon_name` */
-- public string icon_name { get; set; }
--
-- /** The card name: `Name` */
-- public string card_name { get; set; }
-- /** The card description: `device.description` */
-- public string card_description { get; set; }
-- /** The card active profile: `Active Profile` */
-- public string card_active_profile { get; set; }
-- /** The card sink port name: `Active Port` */
-- public string card_sink_port_name { get; set; }
--
-- /** The Sink name: `Name` */
-- public string ? device_name { get; set; }
-- /** The Sink description: `Description` */
-- public string device_description { get; set; }
-- /** If the Sink is muted: `Mute` */
-- public bool is_muted { get; set; }
--
-- public double volume { get; set; }
-- public float balance { get; set; default = 0; }
-- public CVolume cvolume;
-- public ChannelMap channel_map;
-- public LinkedList<Operation> volume_operations { get; set; }
--
-- /** Gets the name to be shown to the user:
-- * "port_description - card_description"
-- */
-- public string ? get_display_name () {
-- if (card_name == null) {
-- return device_description;
-- }
-- string p_desc = port_description;
-- string c_desc = card_description;
-- return "%s - %s".printf (p_desc, c_desc);
-- }
--
-- /** Compares PulseDevices. Returns true if they're the same */
-- public bool cmp (PulseDevice device) {
-- return device.card_index == card_index
-- && device.device_index == device_index
-- && device.device_name == device_name
-- && device.device_description == device_description
-- && device.is_default == is_default
-- && device.removed == removed
-- && device.card_active_profile == card_active_profile
-- && device.port_name == port_name;
-- }
--
-- /**
-- * Gets the name to be shown to the user:
-- * If has card: "card_description:port_name"
-- * If cardless: "device_index:device_description"
-- */
-- public string get_current_hash_key () {
-- if (card_name == null) {
-- return get_hash_map_key (device_index.to_string (),
-- device_description);
-- }
-- return get_hash_map_key (card_description, port_name);
-- }
--
-- /** Gets the name to be shown to the user:
-- * "card_description:port_name"
-- */
-- public static string get_hash_map_key (string c_desc, string p_name) {
-- return string.joinv (":", new string[] { c_desc, p_name });
-- }
--
-- /** The port name: `Name` */
-- public string port_name { get; set; }
-- /** The port name: `Description` */
-- public string port_description { get; set; }
-- /** The port name: `card.profile.port` */
-- public string port_id { get; set; }
-- /** All port profiles */
-- public string[] port_profiles { get; set; }
-- public Array<PulseCardProfile> profiles { get; set; }
-- public PulseCardProfile ? active_profile { get; set; }
--
-- construct {
-- volume_operations = new LinkedList<Operation> ();
-- }
-- }
--}
-diff --git a/src/controlCenter/widgets/volume/volume.vala
b/src/controlCenter/widgets/volume/volume.vala
-deleted file mode 100644
-index 4575921..0000000
---- a/src/controlCenter/widgets/volume/volume.vala
-+++ /dev/null
-@@ -1,61 +0,0 @@
--namespace SwayNotificationCenter.Widgets {
-- public class Volume : BaseWidget {
-- public override string widget_name {
-- get {
-- return "volume";
-- }
-- }
--
-- Gtk.Label label_widget = new Gtk.Label (null);
-- Gtk.Scale slider = new Gtk.Scale.with_range
(Gtk.Orientation.HORIZONTAL, 0, 100, 1);
--
-- private PulseDevice ? default_sink = null;
-- private PulseDaemon client = new PulseDaemon ();
--
-- construct {
-- this.client.change_default_device.connect
(default_device_changed);
--
-- slider.value_changed.connect (() => {
-- if (default_sink != null) {
-- this.client.set_device_volume (
-- default_sink,
-- (float) slider.get_value ());
-- slider.tooltip_text = ((int) slider.get_value
()).to_string ();
-- }
-- });
-- }
--
--
-- public Volume (string suffix, SwayncDaemon swaync_daemon, NotiDaemon
noti_daemon) {
-- base (suffix, swaync_daemon, noti_daemon);
--
-- Json.Object ? config = get_config (this);
-- if (config != null) {
-- string ? label = get_prop<string> (config, "label");
-- label_widget.set_label (label ?? "Volume");
-- }
--
-- slider.draw_value = false;
--
-- add (label_widget);
-- pack_start (slider, true, true, 0);
--
-- show_all ();
-- }
--
-- public override void on_cc_visibility_change (bool val) {
-- if (val) {
-- this.client.start ();
-- } else {
-- this.client.close ();
-- }
-- }
--
-- private void default_device_changed (PulseDevice device) {
-- if (device != null && device.direction ==
PulseAudio.Direction.OUTPUT) {
-- this.default_sink = device;
-- slider.set_value (device.volume);
-- }
-- }
-- }
--}
-diff --git a/src/meson.build b/src/meson.build
-index 94a8e2f..2746db2 100644
---- a/src/meson.build
-+++ b/src/meson.build
-@@ -40,10 +40,6 @@ widget_sources = [
- 'controlCenter/widgets/menubar/menubar.vala',
- # Widget: Buttons Grid
- 'controlCenter/widgets/buttonsGrid/buttonsGrid.vala',
-- # Widget: Volume
-- 'controlCenter/widgets/volume/volume.vala',
-- 'controlCenter/widgets/volume/pulseDaemon.vala',
-- 'controlCenter/widgets/volume/pulseDevice.vala',
- # Widget: Backlight Slider
- 'controlCenter/widgets/backlight/backlight.vala',
- 'controlCenter/widgets/backlight/backlightUtil.vala',
-@@ -75,9 +71,6 @@ app_deps = [
- meson.get_compiler('c').find_library('gtk-layer-shell'),
- meson.get_compiler('c').find_library('m', required : true),
- meson.get_compiler('vala').find_library('posix'),
-- dependency('gee-0.8'),
-- dependency('libpulse'),
-- dependency('libpulse-mainloop-glib'),
- ]
-
- # Checks if the user wants scripting enabled
-diff --git a/src/style.css b/src/style.css
-index 96b84a4..b2c7ed6 100644
---- a/src/style.css
-+++ b/src/style.css
-@@ -282,15 +282,6 @@
- background: transparent;
- }
-
--/* Volume widget */
--
--.widget-volume {
-- background-color: @noti-bg;
-- padding: 8px;
-- margin: 8px;
-- border-radius: 12px;
--}
--
- /* Backlight widget */
- .widget-backlight {
- background-color: @noti-bg;
diff --git a/gui-apps/swaync/swaync-0.8.0.ebuild
b/gui-apps/swaync/swaync-0.10.0.ebuild
similarity index 80%
rename from gui-apps/swaync/swaync-0.8.0.ebuild
rename to gui-apps/swaync/swaync-0.10.0.ebuild
index 2e76984ae1..bc7a7d08e5 100644
--- a/gui-apps/swaync/swaync-0.8.0.ebuild
+++ b/gui-apps/swaync/swaync-0.10.0.ebuild
@@ -17,15 +17,17 @@ KEYWORDS="~amd64 ~x86"
IUSE="pulseaudio"
DEPEND="
+ dev-lang/sassc
+ dev-libs/granite
+ dev-libs/libgee
dev-libs/glib:2
dev-libs/gobject-introspection
dev-libs/json-glib
pulseaudio? (
- dev-libs/libgee:=
media-libs/libpulse
)
dev-libs/wayland
- >=gui-libs/gtk-layer-shell-0.7.0[introspection]
+ >=gui-libs/gtk-layer-shell-0.7.0[introspection,vala]
gui-libs/libhandy:1
sys-apps/dbus
x11-libs/gdk-pixbuf:2
@@ -37,8 +39,14 @@ BDEPEND="
app-text/scdoc
"
+src_configure() {
+ local emesonargs=(
+ $(meson_use pulseaudio pulse-audio)
+ )
+ meson_src_configure
+}
+
src_prepare() {
- ! use pulseaudio && local PATCHES=( "${FILESDIR}"/${P}-pulsefree.patch )
default
vala_setup
}