summaryrefslogtreecommitdiff
path: root/src/audio.c
diff options
context:
space:
mode:
authorkotontrion <[email protected]>2024-07-22 14:29:40 +0200
committerkotontrion <[email protected]>2024-07-22 14:29:40 +0200
commit4a7ecd70a476f48901391e2011490c21a1bd41a2 (patch)
treec9a996e9a492d1eb839232942287ab571ba29347 /src/audio.c
parentd5596c421da581479382394a6ead9bb422779564 (diff)
add video device support
Diffstat (limited to 'src/audio.c')
-rw-r--r--src/audio.c39
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) {