Re: [PATCH BlueZ v2 2/3] test-runner: Add audio card support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Frédéric,

On Fri, Jun 10, 2022 at 12:30 AM Frédéric Danis
<frederic.danis@xxxxxxxxxxxxx> wrote:
>
> With this commit audio daemons can detect an audio card with output and
> input, allowing to test interaction between BlueZ and the audio daemon.
> ---
>  doc/test-runner.txt |  5 +++++
>  tools/test-runner.c | 23 ++++++++++++++++++++++-
>  2 files changed, 27 insertions(+), 1 deletion(-)
>
> diff --git a/doc/test-runner.txt b/doc/test-runner.txt
> index 683c622a2..019c23188 100644
> --- a/doc/test-runner.txt
> +++ b/doc/test-runner.txt
> @@ -54,6 +54,11 @@ For Bluetooth functionality:
>
>         CONFIG_UHID=y
>
> +For Audio functionality:
> +       CONFIG_SYSVIPC=y
> +       CONFIG_SOUND=y
> +       CONFIG_SND=y
> +       CONFIG_SND_INTEL8X0=y

Lets have this as a separate patch.

>  These options should be installed as .config in the kernel source directory
>  followed by this command.
> diff --git a/tools/test-runner.c b/tools/test-runner.c
> index 9fc8e7b33..bbbca5b5d 100644
> --- a/tools/test-runner.c
> +++ b/tools/test-runner.c
> @@ -54,6 +54,7 @@ static bool start_monitor = false;
>  static int num_devs = 0;
>  static const char *qemu_binary = NULL;
>  static const char *kernel_image = NULL;
> +static bool audio_support;
>
>  static const char *qemu_table[] = {
>         "qemu-system-x86_64",
> @@ -261,6 +262,7 @@ static void start_qemu(void)
>                                 run_auto, testargs);
>
>         argv = alloca(sizeof(qemu_argv) +
> +                               (audio_support ? 4 : 0) +
>                                 (sizeof(char *) * (4 + (num_devs * 4))));
>         memcpy(argv, qemu_argv, sizeof(qemu_argv));
>
> @@ -268,6 +270,20 @@ static void start_qemu(void)
>
>         argv[0] = (char *) qemu_binary;
>
> +       if (audio_support) {
> +               char *xdg_runtime_dir, *audiodev;
> +
> +               xdg_runtime_dir = getenv("XDG_RUNTIME_DIR");
> +               audiodev = alloca(40 + strlen(xdg_runtime_dir));
> +               sprintf(audiodev, "id=audio,driver=pa,server=%s/pulse/native",
> +                               xdg_runtime_dir);
> +
> +               argv[pos++] = "-audiodev";
> +               argv[pos++] = audiodev;
> +               argv[pos++] = "-device";
> +               argv[pos++] = "AC97,audiodev=audio";
> +       }
> +
>         argv[pos++] = "-kernel";
>         argv[pos++] = (char *) kernel_image;
>         argv[pos++] = "-append";
> @@ -990,6 +1006,7 @@ static void usage(void)
>                 "\t-u, --unix [path]      Provide serial device\n"
>                 "\t-q, --qemu <path>      QEMU binary\n"
>                 "\t-k, --kernel <image>   Kernel image (bzImage)\n"
> +               "\t-A, --audio            Add audio support\n"
>                 "\t-h, --help             Show help options\n");
>  }
>
> @@ -1004,6 +1021,7 @@ static const struct option main_options[] = {
>         { "monitor", no_argument,       NULL, 'm' },
>         { "qemu",    required_argument, NULL, 'q' },
>         { "kernel",  required_argument, NULL, 'k' },
> +       { "audio",   no_argument,       NULL, 'A' },
>         { "version", no_argument,       NULL, 'v' },
>         { "help",    no_argument,       NULL, 'h' },
>         { }
> @@ -1023,7 +1041,7 @@ int main(int argc, char *argv[])
>         for (;;) {
>                 int opt;
>
> -               opt = getopt_long(argc, argv, "aubdslmq:k:vh", main_options,
> +               opt = getopt_long(argc, argv, "aubdslmq:k:Avh", main_options,
>                                                                 NULL);
>                 if (opt < 0)
>                         break;
> @@ -1057,6 +1075,9 @@ int main(int argc, char *argv[])
>                 case 'k':
>                         kernel_image = optarg;
>                         break;
> +               case 'A':
> +                       audio_support = true;
> +                       break;
>                 case 'v':
>                         printf("%s\n", VERSION);
>                         return EXIT_SUCCESS;
> --
> 2.25.1
>


-- 
Luiz Augusto von Dentz




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux