diff options
author | Bastien Nocera <hadess@hadess.net> | 2016-04-17 22:26:16 +0200 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2016-04-17 22:27:26 +0200 |
commit | 8fc9c62a69b78ceeb349b1aa753dbcfca8971192 (patch) | |
tree | 0d1fe081b46ed140a89fcecb7e34fbc4885af699 /test-audio-device-selection.c | |
parent | 2a117d60245cbdd892cdf92aacb2e8f645dcb5e1 (diff) | |
download | libgnome-volume-control-8fc9c62a69b78ceeb349b1aa753dbcfca8971192.tar.gz |
tests: Add audio device selection question
So that the test utility mimicks the code in gnome-settings-daemon.
Diffstat (limited to 'test-audio-device-selection.c')
-rw-r--r-- | test-audio-device-selection.c | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/test-audio-device-selection.c b/test-audio-device-selection.c index efc6d66..294c0f7 100644 --- a/test-audio-device-selection.c +++ b/test-audio-device-selection.c @@ -1,7 +1,11 @@ +#include <stdio.h> +#include <locale.h> #include <pulse/pulseaudio.h> #include "gvc-mixer-control.h" +#define MAX_ATTEMPTS 3 + typedef struct { GvcHeadsetPortChoice choice; gchar *name; @@ -14,18 +18,18 @@ static AudioSelectionChoice audio_selection_choices[] = { }; static void -audio_selection_needed (GvcMixerControl *control, +audio_selection_needed (GvcMixerControl *volume, guint id, gboolean show_dialog, GvcHeadsetPortChoice choices, gpointer user_data) { char *args[G_N_ELEMENTS (audio_selection_choices) + 1]; - char *choices_str; guint i, n; + int response = -1; if (!show_dialog) { - g_print ("Audio selection not needed anymore for id %d\n", id); + g_print ("--- Audio selection not needed anymore for id %d\n", id); return; } @@ -36,10 +40,26 @@ audio_selection_needed (GvcMixerControl *control, } args[n] = NULL; - choices_str = g_strjoinv (", ", args); g_print ("+++ Audio selection needed for id %d\n", id); - g_print (" Choices are: %s\n", choices_str); - g_free (choices_str); + g_print (" Choices are: %s\n"); + for (i = 0; args[i] != NULL; i++) + g_print (" %d. %s\n", i + 1, args[i]); + + for (i = 0; response < 0 && i < MAX_ATTEMPTS; i++) { + int res; + + g_print ("What is your choice?\n"); + if (scanf ("%d", &res) == 1 && + res > 0 && + res < g_strv_length (args)) { + response = res; + break; + } + } + + gvc_mixer_control_set_headset_port (volume, + id, + audio_selection_choices[response - 1].choice); } int main (int argc, char **argv) @@ -47,6 +67,8 @@ int main (int argc, char **argv) GMainLoop *loop; GvcMixerControl *volume; + setlocale (LC_ALL, ""); + loop = g_main_loop_new (NULL, FALSE); volume = gvc_mixer_control_new ("GNOME Volume Control test"); |