Browse Source

dummy audio: Implemented dummy audio capture support. :)

Ryan C. Gordon 8 years ago
parent
commit
17246ba95e
1 changed files with 16 additions and 0 deletions
  1. 16 0
      src/audio/dummy/SDL_dummyaudio.c

+ 16 - 0
src/audio/dummy/SDL_dummyaudio.c

@@ -32,12 +32,28 @@ DUMMYAUD_OpenDevice(_THIS, void *handle, const char *devname, int iscapture)
     return 0;                   /* always succeeds. */
 }
 
+static int
+DUMMYAUD_CaptureFromDevice(_THIS, void *buffer, int buflen)
+{
+    /* Delay to make this sort of simulate real audio input. */
+    SDL_Delay((device->spec.samples * 1000) / device->spec.freq);
+
+    /* always return a full buffer of silence. */
+    SDL_memset(buffer, this->spec.silence, buflen);
+    return buflen;
+}
+
 static int
 DUMMYAUD_Init(SDL_AudioDriverImpl * impl)
 {
     /* Set the function pointers */
     impl->OpenDevice = DUMMYAUD_OpenDevice;
+    impl->CaptureFromDevice = DUMMYAUD_CaptureFromDevice;
+
     impl->OnlyHasDefaultOutputDevice = 1;
+    impl->OnlyHasDefaultInputDevice = 1;
+    impl->HasCaptureSupport = SDL_TRUE;
+
     return 1;   /* this audio target is available. */
 }