summaryrefslogtreecommitdiff
path: root/backends/alsa/alsa-backend.c
diff options
context:
space:
mode:
Diffstat (limited to 'backends/alsa/alsa-backend.c')
-rw-r--r--backends/alsa/alsa-backend.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/backends/alsa/alsa-backend.c b/backends/alsa/alsa-backend.c
index 0b7895e..8c4913a 100644
--- a/backends/alsa/alsa-backend.c
+++ b/backends/alsa/alsa-backend.c
@@ -248,23 +248,23 @@ alsa_backend_list_streams (MateMixerBackend *backend)
/* Walk through the list of devices and create the stream list, each
* device has at most one input and one output stream */
- list = alsa->priv->devices;
+ list = g_list_last (alsa->priv->devices);
while (list != NULL) {
AlsaDevice *device = ALSA_DEVICE (list->data);
AlsaStream *stream;
- stream = alsa_device_get_input_stream (device);
- if (stream != NULL) {
- alsa->priv->streams =
- g_list_append (alsa->priv->streams, g_object_ref (stream));
- }
stream = alsa_device_get_output_stream (device);
- if (stream != NULL) {
+ if (stream != NULL)
+ alsa->priv->streams =
+ g_list_prepend (alsa->priv->streams, g_object_ref (stream));
+
+ stream = alsa_device_get_input_stream (device);
+ if (stream != NULL)
alsa->priv->streams =
- g_list_append (alsa->priv->streams, g_object_ref (stream));
- }
- list = list->next;
+ g_list_prepend (alsa->priv->streams, g_object_ref (stream));
+
+ list = list->prev;
}
}
return alsa->priv->streams;