src/audio/dummy/SDL_dummyaudio.c
author Sam Lantinga
Mon, 09 Jan 2017 11:58:01 -0800
changeset 10802 6afc9b833867
parent 10737 3406a0f8b041
child 11811 5d94cb6b24d3
permissions -rw-r--r--
We only need the first few keymaps corresponding to the following constants:
K_NORMTAB, K_SHIFTTAB, K_ALTTAB, K_ALTSHIFTTAB

In the normal case we'll load all the keymaps from the kernel, but this reduces the size of the SDL library for the fallback case when we can't get to the tty.
icculus@1532
     1
/*
slouken@5535
     2
  Simple DirectMedia Layer
slouken@10737
     3
  Copyright (C) 1997-2017 Sam Lantinga <slouken@libsdl.org>
icculus@1532
     4
slouken@5535
     5
  This software is provided 'as-is', without any express or implied
slouken@5535
     6
  warranty.  In no event will the authors be held liable for any damages
slouken@5535
     7
  arising from the use of this software.
icculus@1532
     8
slouken@5535
     9
  Permission is granted to anyone to use this software for any purpose,
slouken@5535
    10
  including commercial applications, and to alter it and redistribute it
slouken@5535
    11
  freely, subject to the following restrictions:
icculus@1532
    12
slouken@5535
    13
  1. The origin of this software must not be misrepresented; you must not
slouken@5535
    14
     claim that you wrote the original software. If you use this software
slouken@5535
    15
     in a product, an acknowledgment in the product documentation would be
slouken@5535
    16
     appreciated but is not required.
slouken@5535
    17
  2. Altered source versions must be plainly marked as such, and must not be
slouken@5535
    18
     misrepresented as being the original software.
slouken@5535
    19
  3. This notice may not be removed or altered from any source distribution.
icculus@1532
    20
*/
icculus@8093
    21
#include "../../SDL_internal.h"
icculus@1532
    22
slouken@1533
    23
/* Output audio to nowhere... */
icculus@1532
    24
icculus@10253
    25
#include "SDL_timer.h"
icculus@1532
    26
#include "SDL_audio.h"
icculus@1532
    27
#include "../SDL_audio_c.h"
icculus@1532
    28
#include "SDL_dummyaudio.h"
icculus@1532
    29
slouken@1895
    30
static int
icculus@10281
    31
DUMMYAUDIO_OpenDevice(_THIS, void *handle, const char *devname, int iscapture)
icculus@1532
    32
{
icculus@7038
    33
    return 0;                   /* always succeeds. */
icculus@1532
    34
}
icculus@1532
    35
icculus@2049
    36
static int
icculus@10281
    37
DUMMYAUDIO_CaptureFromDevice(_THIS, void *buffer, int buflen)
icculus@10252
    38
{
icculus@10252
    39
    /* Delay to make this sort of simulate real audio input. */
icculus@10253
    40
    SDL_Delay((this->spec.samples * 1000) / this->spec.freq);
icculus@10252
    41
icculus@10252
    42
    /* always return a full buffer of silence. */
icculus@10252
    43
    SDL_memset(buffer, this->spec.silence, buflen);
icculus@10252
    44
    return buflen;
icculus@10252
    45
}
icculus@10252
    46
icculus@10252
    47
static int
icculus@10281
    48
DUMMYAUDIO_Init(SDL_AudioDriverImpl * impl)
icculus@1532
    49
{
slouken@1895
    50
    /* Set the function pointers */
icculus@10281
    51
    impl->OpenDevice = DUMMYAUDIO_OpenDevice;
icculus@10281
    52
    impl->CaptureFromDevice = DUMMYAUDIO_CaptureFromDevice;
icculus@10252
    53
icculus@2049
    54
    impl->OnlyHasDefaultOutputDevice = 1;
icculus@10258
    55
    impl->OnlyHasDefaultCaptureDevice = 1;
icculus@10252
    56
    impl->HasCaptureSupport = SDL_TRUE;
icculus@10252
    57
icculus@3699
    58
    return 1;   /* this audio target is available. */
icculus@1532
    59
}
icculus@1532
    60
icculus@10281
    61
AudioBootStrap DUMMYAUDIO_bootstrap = {
icculus@10281
    62
    "dummy", "SDL dummy audio driver", DUMMYAUDIO_Init, 1
icculus@1532
    63
};
icculus@1532
    64
slouken@1895
    65
/* vi: set ts=4 sw=4 expandtab: */