summaryrefslogtreecommitdiff
path: root/shell/audio/portaudio/sound_output.c
diff options
context:
space:
mode:
authorneonloop2021-03-12 16:11:08 +0000
committerneonloop2021-03-12 16:11:08 +0000
commite117e43bd06627f7fadb2c58adf07e058f100579 (patch)
tree5ee6bc026b2c6790f4cf5df1f166f3da8c4831d7 /shell/audio/portaudio/sound_output.c
parent6d4c2c9b14b626df0fa71cb1869770d2923a470d (diff)
downloadsnes9x2002-e117e43bd06627f7fadb2c58adf07e058f100579.tar.gz
snes9x2002-e117e43bd06627f7fadb2c58adf07e058f100579.tar.bz2
snes9x2002-e117e43bd06627f7fadb2c58adf07e058f100579.zip
Initial trimui s support
Diffstat (limited to 'shell/audio/portaudio/sound_output.c')
-rw-r--r--shell/audio/portaudio/sound_output.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/shell/audio/portaudio/sound_output.c b/shell/audio/portaudio/sound_output.c
new file mode 100644
index 0000000..0c03c93
--- /dev/null
+++ b/shell/audio/portaudio/sound_output.c
@@ -0,0 +1,45 @@
+#include <portaudio.h>
+#include <stdint.h>
+#include <stdio.h>
+
+#include "shared.h"
+
+static PaStream *apu_stream;
+
+uint32_t Audio_Init()
+{
+ Pa_Initialize();
+
+ PaStreamParameters outputParameters;
+
+ outputParameters.device = Pa_GetDefaultOutputDevice();
+
+ if (outputParameters.device == paNoDevice)
+ {
+ printf("No sound output\n");
+ return 1;
+ }
+
+ outputParameters.channelCount = 2;
+ outputParameters.sampleFormat = paInt16;
+ outputParameters.hostApiSpecificStreamInfo = NULL;
+
+ Pa_OpenStream( &apu_stream, NULL, &outputParameters, SOUND_OUTPUT_FREQUENCY, SOUND_SAMPLES_SIZE, paNoFlag, NULL, NULL);
+ Pa_StartStream( apu_stream );
+
+ return 0;
+}
+
+void Audio_Write(int16_t* restrict buffer, uint32_t buffer_size)
+{
+ Pa_WriteStream( apu_stream, buffer, buffer_size);
+}
+
+bool Audio_Underrun_Likely() {
+ return false;
+}
+
+void Audio_Close()
+{
+ //Pa_Close();
+}