tree 42eddae9f7984930e062e5958ae94a1bd585945a
parent ca7db6f3419309dea557731e362bb3d316faec61
author Akash Srivastava <akashniki@gmail.com> 1694459932 +0200
committer Bruno Martins <bgcngm@gmail.com> 1694508873 +0000

agm: fixup!: OSS compile for plugins

* This is an extension of commit 626a97d.
* It fixes following build errors while compiling remaining test plugins:

hardware/qcom-caf/sm8550/audio/agm/plugins/tinyalsa/test/agmhostless.c:59:22: error: more '%' conversions than data arguments [-Werror,-Wformat-insufficient-args]
    printf(" Usage: %s [-D card] [-P Hostless Playback device] [-C Hostless Capture device] [-p period_size]\n"
                    ~^
hardware/qcom-caf/sm8550/audio/agm/plugins/tinyalsa/test/agmhostless.c:216:18: error: unused variable 'frames' [-Werror,-Wunused-variable]
    unsigned int frames = 0, ret = 0, miid = 0;
                 ^
hardware/qcom-caf/sm8550/audio/agm/plugins/tinyalsa/test/agmhostless.c:215:18: error: unused variable 'bytes_read' [-Werror,-Wunused-variable]
    unsigned int bytes_read = 0;
                 ^
hardware/qcom-caf/sm8550/audio/agm/plugins/tinyalsa/test/agmcompresscap.c:573:16: error: incompatible pointer types passing 'char *' to parameter of type 'FILE *' (aka 'struct __sFILE *') [-Werror,-Wincompatible-pointer-types]
        fclose(file);
               ^~~~
out/soong/.intermediates/bionic/libc/libc/android_vendor.33_arm64_armv8-2a-dotprod_cortex-a76_shared/gen/include/stdio.h:107:18: note: passing argument to parameter '__fp' here
int fclose(FILE* __fp);
                 ^

Change-Id: If965fb4780c64df9337be7c4d3943fb49dbd76b1
