test/testfilesystem.c
author Sam Lantinga <slouken@libsdl.org>
Sun, 07 Jul 2019 09:10:56 -0700
changeset 12928 3c4a4b1077cd
parent 12503 806492103856
permissions -rw-r--r--
Fixed bug 4710 - audio/alsa: avoid configuring hardware parameters with only a single period

Anthony Pesch

The previous code first configured the period size using snd_pcm_hw_par-
ams_set_period_size_near. Then, it further narrowed the configuration
space by calling snd_pcm_hw_params_set_buffer_size_near using a buffer
size of 2 times the _requested_ period size in order to try and get a
configuration with only 2 periods. If the configured period size was
larger than the requested size, the second call could inadvertently
narrow the configuration space to contain only a single period.

Rather than fixing the call to snd_pcm_hw_params_set_buffer_size_near
to use a size of 2 times the configured period size, the code has been
changed to use snd_pcm_hw_params_set_periods_min in order to more
clearly explain the intent.
icculus@7667
     1
/*
slouken@12503
     2
  Copyright (C) 1997-2019 Sam Lantinga <slouken@libsdl.org>
icculus@7667
     3
icculus@7667
     4
  This software is provided 'as-is', without any express or implied
icculus@7667
     5
  warranty.  In no event will the authors be held liable for any damages
icculus@7667
     6
  arising from the use of this software.
icculus@7667
     7
icculus@7667
     8
  Permission is granted to anyone to use this software for any purpose,
icculus@7667
     9
  including commercial applications, and to alter it and redistribute it
icculus@7667
    10
  freely.
icculus@7667
    11
*/
philipp@9943
    12
/* Simple test of filesystem functions. */
icculus@7667
    13
icculus@7667
    14
#include <stdio.h>
icculus@7667
    15
#include "SDL.h"
icculus@7667
    16
icculus@7667
    17
int
icculus@7667
    18
main(int argc, char *argv[])
icculus@7667
    19
{
philipp@9937
    20
    char *base_path;
philipp@9937
    21
    char *pref_path;
philipp@9937
    22
icculus@7667
    23
    /* Enable standard application logging */
icculus@7667
    24
    SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);
icculus@7667
    25
icculus@7667
    26
    if (SDL_Init(0) == -1) {
icculus@7667
    27
        SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL_Init() failed: %s\n", SDL_GetError());
icculus@7667
    28
        return 1;
icculus@7667
    29
    }
icculus@7667
    30
philipp@9937
    31
    base_path = SDL_GetBasePath();
icculus@9278
    32
    if(base_path == NULL){
icculus@9278
    33
      SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't find base path: %s\n",
icculus@9278
    34
                   SDL_GetError());
philipp@10164
    35
      return 1;
icculus@9278
    36
    }
icculus@9693
    37
    SDL_Log("base path: '%s'\n", base_path);
icculus@9278
    38
    SDL_free(base_path);
icculus@9278
    39
philipp@9937
    40
    pref_path = SDL_GetPrefPath("libsdl", "testfilesystem");
icculus@9278
    41
    if(pref_path == NULL){
icculus@9278
    42
      SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't find pref path: %s\n",
icculus@9278
    43
                   SDL_GetError());
philipp@10164
    44
      return 1;
icculus@9278
    45
    }
icculus@9693
    46
    SDL_Log("pref path: '%s'\n", pref_path); 
icculus@9278
    47
    SDL_free(pref_path);
icculus@9278
    48
slouken@11222
    49
    pref_path = SDL_GetPrefPath(NULL, "testfilesystem");
slouken@11222
    50
    if(pref_path == NULL){
slouken@11222
    51
      SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't find pref path without organization: %s\n",
slouken@11222
    52
                   SDL_GetError());
slouken@11222
    53
      return 1;
slouken@11222
    54
    }
slouken@11222
    55
    SDL_Log("pref path: '%s'\n", pref_path); 
slouken@11222
    56
    SDL_free(pref_path);
slouken@11222
    57
icculus@7667
    58
    SDL_Quit();
icculus@7667
    59
    return 0;
icculus@7667
    60
}