From fe0ec0f56d2679f52bd68273b058f3c081b20972 Mon Sep 17 00:00:00 2001 From: Ian C Date: Sat, 20 Jun 2026 15:54:35 +0100 Subject: Framework for audio --- src/Makefile | 3 +++ src/audio.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ src/audio.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 97 insertions(+) create mode 100644 src/audio.c create mode 100644 src/audio.h diff --git a/src/Makefile b/src/Makefile index d9be987..808c6a9 100644 --- a/src/Makefile +++ b/src/Makefile @@ -43,6 +43,7 @@ SOURCE = main.c \ tape.c \ symtochar.c \ font.c \ + audio.c \ expr.c \ z80.c \ z80_decode.c \ @@ -61,6 +62,7 @@ OBJECTS = main.o \ tape.o \ symtochar.o \ font.o \ + audio.o \ expr.o \ z80.o \ z80_decode.o \ @@ -97,3 +99,4 @@ symtochar.o: symtochar.h font.o: font.h z80.o: z80.h z80_private.h z80_decode.o: z80.h z80_private.h +audio.o: audio.c audio.h diff --git a/src/audio.c b/src/audio.c new file mode 100644 index 0000000..b5ce1df --- /dev/null +++ b/src/audio.c @@ -0,0 +1,44 @@ +/* + + espec - Sinclair Spectrum emulator + + Copyright (C) 2026 Ian Cowburn (ianc@noddybox.demon.co.uk) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + ------------------------------------------------------------------------- + + Audio handling + +*/ + +#include + +#include "audio.h" + +/* ---------------------------------------- INTERFACES +*/ + +int AUDIOInit(void) +{ + return 0; +} + +void AUDIOQueue(char *buffer, size_t len) +{ +} + + +/* END OF FILE */ diff --git a/src/audio.h b/src/audio.h new file mode 100644 index 0000000..fb972ea --- /dev/null +++ b/src/audio.h @@ -0,0 +1,50 @@ +/* + + espec - Sinclair Spectrum emulator + + Copyright (C) 2026 Ian Cowburn (ianc@noddybox.demon.co.uk) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + ------------------------------------------------------------------------- + + Audio handling + +*/ + +#ifndef ESPEC_TAPE_H +#define ESPEC_TAPE_H + +#include + +/* ---------------------------------------- INTERFACES +*/ + +/* Initialise the audio interface. Returns FALSE on failure to open + audio. All other interfaces will silently do nothing if the device + can't be opened. +*/ +int AUDIOInit(void); + +/* Add the passed buffer to the sound queue. It is a signed 8-bit mono + sample which will be converted as appropriate by the audio interface. +*/ +void AUDIOQueue(char *buffer, size_t len); + + +#endif + + +/* END OF FILE */ -- cgit v1.3