view test/testaudioinfo.c @ 3402:1653b8eac4d3

Fixed bug #852 Jesse Anders 2009-10-17 14:17:25 PDT In VC++, the build script that creates SDL_config.h and SDL_revision.h fails when the project directory path includes spaces. For example, if the project directory path is: c:\Documents and Settings\Jesse\My Documents\Visual Studio 2008\Projects\SDL 1.3\VisualC\SDL\ The following error is generated: 'and' is not recognized as an internal or external command Placing all paths in quotes fixes this.
author Sam Lantinga <slouken@libsdl.org>
date Sat, 17 Oct 2009 21:46:08 +0000
parents 9de326b3099c
children 5ea5e4e6103f
line wrap: on
line source

#include <stdio.h>
#include "SDL.h"

static void
print_devices(int iscapture)
{
    const char *typestr = ((iscapture) ? "capture" : "output");
    int n = SDL_GetNumAudioDevices(iscapture);

    printf("%s devices:\n", typestr);

    if (n == -1)
        printf("  Driver can't detect specific devices.\n\n", typestr);
    else if (n == 0)
        printf("  No %s devices found.\n\n", typestr);
    else {
        int i;
        for (i = 0; i < n; i++) {
            printf("  %s\n", SDL_GetAudioDeviceName(i, iscapture));
        }
        printf("\n");
    }
}

int
main(int argc, char **argv)
{
    /* Print available audio drivers */
    int n = SDL_GetNumAudioDrivers();
    if (n == 0) {
        printf("No built-in audio drivers\n\n");
    } else {
        int i;
        printf("Built-in audio drivers:\n");
        for (i = 0; i < n; ++i) {
            printf("  %s\n", SDL_GetAudioDriver(i));
        }
        printf("\n");
    }

    /* Load the SDL library */
    if (SDL_Init(SDL_INIT_AUDIO) < 0) {
        fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError());
        return (1);
    }

    printf("Using audio driver: %s\n\n", SDL_GetCurrentAudioDriver());

    print_devices(0);
    print_devices(1);

    SDL_Quit();
    return 0;
}