view src/sdl_sound-test.c @ 3629:5aba05f2226e

update xine-lib, add mman-win32 * dist-files.mk: add mman-win32-1-include_name_change.patch, mman-win32.mk, add xine-lib-*.patch files. * index.html: add mman-win32 * src/mman-win32-1-include_name_change.patch: new file. * src/mman-win32.mk: new file. * src/xine-lib-1-configure_ac.patch: new file * src/xine-lib-1-fixes.patch: removed * src/xine-lib-2-build_fixes.patch: new file. * src/xine-lib-3-more_build_fixes.patch: new file * src/xine-lib-4-mkdir.patch: new file. * src/xine-lib-5-change_mma_h_to_mma_win32_h.patch: new file * src/xine-lib.mk: update version
author John Donoghue <john.donoghue@ieee.org>
date Sun, 29 Jun 2014 15:46:35 -0400
parents 99516e73b368
children
line wrap: on
line source

/*
 * This file is part of MXE.
 * See index.html for further information.
 *
 * This is a simple test program for SDL_sound that tries to
 * decode the file specified as the only command-line argument.
 *
 * This file is in the Public Domain.
 */

#include <stdio.h>
#include <SDL_sound.h>

int main(int argc, char *argv[])
{
    if (argc != 2) {
        fprintf(stderr, "usage: %s <filename>\n", argv[0]);
        return 1;
    }

    if (SDL_Init(SDL_INIT_AUDIO) != 0) {
        fprintf(stderr, "Error: %s\n", SDL_GetError());
        return 1;
    }

    if (Sound_Init() == 0) {
        fprintf(stderr, "Error: %s\n", Sound_GetError());
        return 1;
    }

    SDL_RWops* rw = SDL_RWFromFile(argv[1], "r");
    if (rw == NULL) {
        fprintf(stderr, "Error: %s\n", SDL_GetError());
        return 1;
    }

    Sound_AudioInfo wantedFormat;
    wantedFormat.channels = 2;
    wantedFormat.rate = 44100;
    wantedFormat.format = AUDIO_S16LSB;

    Sound_Sample* sample = Sound_NewSample(rw, 0, &wantedFormat, 8192);
    if (sample == 0) {
        fprintf(stderr, "Error: %s\n", Sound_GetError());
        return 1;
    }

    Sound_DecodeAll(sample);
    printf("Format: %s\n", sample->decoder->description);
    printf("Decoded %d bytes of data.\n", sample->buffer_size);
    Sound_FreeSample(sample);

    return 0;
}