test/testaudioinfo.c
author Ryan C. Gordon <icculus@icculus.org>
Tue, 15 Oct 2019 14:55:09 -0400
changeset 13129 b0f1f9e5cb63
parent 12503 806492103856
permissions -rw-r--r--
video: Make sure SDL_FillRects()'s fill_function isn't used unitialized.
     1 /*
     2   Copyright (C) 1997-2019 Sam Lantinga <slouken@libsdl.org>
     3 
     4   This software is provided 'as-is', without any express or implied
     5   warranty.  In no event will the authors be held liable for any damages
     6   arising from the use of this software.
     7 
     8   Permission is granted to anyone to use this software for any purpose,
     9   including commercial applications, and to alter it and redistribute it
    10   freely.
    11 */
    12 #include <stdio.h>
    13 #include "SDL.h"
    14 
    15 static void
    16 print_devices(int iscapture)
    17 {
    18     const char *typestr = ((iscapture) ? "capture" : "output");
    19     int n = SDL_GetNumAudioDevices(iscapture);
    20 
    21     SDL_Log("Found %d %s device%s:\n", n, typestr, n != 1 ? "s" : "");
    22 
    23     if (n == -1)
    24         SDL_Log("  Driver can't detect specific %s devices.\n\n", typestr);
    25     else if (n == 0)
    26         SDL_Log("  No %s devices found.\n\n", typestr);
    27     else {
    28         int i;
    29         for (i = 0; i < n; i++) {
    30             const char *name = SDL_GetAudioDeviceName(i, iscapture);
    31             if (name != NULL)
    32                 SDL_Log("  %d: %s\n", i, name);
    33             else
    34                 SDL_Log("  %d Error: %s\n", i, SDL_GetError());
    35         }
    36         SDL_Log("\n");
    37     }
    38 }
    39 
    40 int
    41 main(int argc, char **argv)
    42 {
    43     int n;
    44 
    45     /* Enable standard application logging */
    46     SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);
    47 
    48     /* Load the SDL library */
    49     if (SDL_Init(SDL_INIT_AUDIO) < 0) {
    50         SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize SDL: %s\n", SDL_GetError());
    51         return (1);
    52     }
    53 
    54     /* Print available audio drivers */
    55     n = SDL_GetNumAudioDrivers();
    56     if (n == 0) {
    57         SDL_Log("No built-in audio drivers\n\n");
    58     } else {
    59         int i;
    60         SDL_Log("Built-in audio drivers:\n");
    61         for (i = 0; i < n; ++i) {
    62             SDL_Log("  %d: %s\n", i, SDL_GetAudioDriver(i));
    63         }
    64         SDL_Log("Select a driver with the SDL_AUDIODRIVER environment variable.\n");
    65     }
    66 
    67     SDL_Log("Using audio driver: %s\n\n", SDL_GetCurrentAudioDriver());
    68 
    69     print_devices(0);
    70     print_devices(1);
    71 
    72     SDL_Quit();
    73     return 0;
    74 }