diff options
author | kotontrion <[email protected]> | 2024-08-20 11:50:05 +0200 |
---|---|---|
committer | kotontrion <[email protected]> | 2024-08-20 11:50:05 +0200 |
commit | 7706d24965a268b6075d3fb5557ef6b96c889483 (patch) | |
tree | 2a0a544c6b2e67d5e218d68c76c3282ce84889b2 /src/audio.c | |
parent | 99dc6d3fbc99b955882c1d471c15e077cb44a45a (diff) |
add property for linear or cubic volume scale
Diffstat (limited to 'src/audio.c')
-rw-r--r-- | src/audio.c | 44 |
1 files changed, 17 insertions, 27 deletions
diff --git a/src/audio.c b/src/audio.c index 9c2841b..15582d7 100644 --- a/src/audio.c +++ b/src/audio.c @@ -4,6 +4,7 @@ #include "device.h" #include "endpoint.h" +#include "glib-object.h" #include "wp.h" struct _AstalWpAudio { @@ -382,34 +383,10 @@ static void astal_wp_audio_object_removed(AstalWpAudio *self, gpointer object) { } } -/** - * astal_wp_audio_get_default - * - * gets the default audio object. - * - * Returns: (nullable) (transfer none) - */ -AstalWpAudio *astal_wp_audio_get_default() { - static AstalWpAudio *self = NULL; - - if (self == NULL) self = g_object_new(ASTAL_WP_TYPE_AUDIO, NULL); - - return self; -} - -/** - * astal_wp_get_default_audio - * - * gets the default audio object. This function does the same as [[email protected]_default] - * - * Returns: (nullable) (transfer none) - */ -AstalWpAudio *astal_wp_get_default_audio() { return astal_wp_audio_get_default(); } - -static void astal_wp_audio_init(AstalWpAudio *self) { +AstalWpAudio *astal_wp_audio_new(AstalWpWp *wp) { + AstalWpAudio *self = g_object_new(ASTAL_WP_TYPE_AUDIO, NULL); AstalWpAudioPrivate *priv = astal_wp_audio_get_instance_private(self); - - priv->wp = astal_wp_wp_get_default(); + priv->wp = g_object_ref(wp); g_signal_connect_swapped(priv->wp, "endpoint-added", G_CALLBACK(astal_wp_audio_object_added), self); @@ -419,11 +396,24 @@ static void astal_wp_audio_init(AstalWpAudio *self) { self); g_signal_connect_swapped(priv->wp, "device-removed", G_CALLBACK(astal_wp_audio_device_removed), self); + + return self; +} + +static void astal_wp_audio_dispose(GObject *object) { + AstalWpAudio *self = ASTAL_WP_AUDIO(object); + AstalWpAudioPrivate *priv = astal_wp_audio_get_instance_private(self); + g_clear_object(&priv->wp); +} + +static void astal_wp_audio_init(AstalWpAudio *self) { + AstalWpAudioPrivate *priv = astal_wp_audio_get_instance_private(self); } static void astal_wp_audio_class_init(AstalWpAudioClass *class) { GObjectClass *object_class = G_OBJECT_CLASS(class); object_class->get_property = astal_wp_audio_get_property; + object_class->dispose = astal_wp_audio_dispose; /** * AstalWpAudio:microphones: (type GList(AstalWpEndpoint)) (transfer container) |