sdl

FORK: Simple Directmedia Layer
git clone https://git.neptards.moe/neptards/sdl.git
Log | Files | Refs

testaudioinfo.c (2101B)


      1 /*
      2   Copyright (C) 1997-2020 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 }