diff options
author | kotontrion <[email protected]> | 2024-07-22 14:29:40 +0200 |
---|---|---|
committer | kotontrion <[email protected]> | 2024-07-22 14:29:40 +0200 |
commit | 4a7ecd70a476f48901391e2011490c21a1bd41a2 (patch) | |
tree | c9a996e9a492d1eb839232942287ab571ba29347 /src/audio.c | |
parent | d5596c421da581479382394a6ead9bb422779564 (diff) |
add video device support
Diffstat (limited to 'src/audio.c')
-rw-r--r-- | src/audio.c | 39 |
1 files changed, 21 insertions, 18 deletions
diff --git a/src/audio.c b/src/audio.c index 75ccf97..dde96bd 100644 --- a/src/audio.c +++ b/src/audio.c @@ -221,16 +221,15 @@ GList *astal_wp_audio_get_streams(AstalWpAudio *self) { GList *astal_wp_audio_get_devices(AstalWpAudio *self) { AstalWpAudioPrivate *priv = astal_wp_audio_get_instance_private(self); GList *eps = astal_wp_wp_get_devices(priv->wp); - // GList *mics = NULL; - - // for (GList *l = eps; l != NULL; l = l->next) { - // if (astal_wp_endpoint_get_media_class(l->data) == ASTAL_WP_MEDIA_CLASS_AUDIO_MICROPHONE) { - // mics = g_list_append(mics, l->data); - // } - // } - // g_list_free(eps); - // return mics; - return eps; + GList *list = NULL; + + for (GList *l = eps; l != NULL; l = l->next) { + if (astal_wp_device_get_device_type(l->data) == ASTAL_WP_DEVICE_TYPE_AUDIO) { + list = g_list_append(list, l->data); + } + } + g_list_free(eps); + return list; } /** @@ -300,17 +299,21 @@ static void astal_wp_audio_get_property(GObject *object, guint property_id, GVal } static void astal_wp_audio_device_added(AstalWpAudio *self, gpointer object) { - AstalWpDevice *endpoint = ASTAL_WP_DEVICE(object); - g_signal_emit_by_name(self, "device-added", endpoint); - g_object_notify(G_OBJECT(self), "devices"); - g_signal_emit_by_name(self, "changed"); + AstalWpDevice *device = ASTAL_WP_DEVICE(object); + if (astal_wp_device_get_device_type(device) == ASTAL_WP_DEVICE_TYPE_AUDIO) { + g_signal_emit_by_name(self, "device-added", device); + g_object_notify(G_OBJECT(self), "devices"); + g_signal_emit_by_name(self, "changed"); + } } static void astal_wp_audio_device_removed(AstalWpAudio *self, gpointer object) { - AstalWpDevice *endpoint = ASTAL_WP_DEVICE(object); - g_signal_emit_by_name(self, "device-removed", endpoint); - g_object_notify(G_OBJECT(self), "devices"); - g_signal_emit_by_name(self, "changed"); + AstalWpDevice *device = ASTAL_WP_DEVICE(object); + if (astal_wp_device_get_device_type(device) == ASTAL_WP_DEVICE_TYPE_AUDIO) { + g_signal_emit_by_name(self, "device-removed", device); + g_object_notify(G_OBJECT(self), "devices"); + g_signal_emit_by_name(self, "changed"); + } } static void astal_wp_audio_object_added(AstalWpAudio *self, gpointer object) { |