GB: Add audio processing

Signed-off-by: Mahyar Koshkouei <mk@deltabeard.com>
This commit is contained in:
Mahyar Koshkouei
2022-04-02 12:00:40 +01:00
parent 840bf66a5c
commit ab12b5a5d4
3 changed files with 25 additions and 12 deletions
+18 -7
View File
@@ -1,8 +1,10 @@
#include <sys/cdefs.h>
#define ENABLE_LCD 1
#define ENABLE_SOUND 0
#define ENABLE_SOUND 1
#define ENABLE_HIPASS 0
#define USE_DMA 0
//#define AUDIO_SAMPLE_RATE 8000.0
//#define AUDIO_NSAMPLES 268
/**
* Reducing VSYNC calculation to lower multiple.
@@ -16,6 +18,7 @@
/* C Headers */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* RP2040 Headers */
@@ -29,7 +32,6 @@
#include <pico/stdio.h>
#include <pico/stdlib.h>
#include <pico/multicore.h>
#include <stdlib.h>
/* Project headers */
#include "hedley.h"
@@ -310,10 +312,10 @@ int main(void)
gpio_set_slew_rate(GPIO_SDA, GPIO_SLEW_RATE_FAST);
/* Set SPI clock to use high frequency. */
//clock_configure(clk_peri, 0,
// CLOCKS_CLK_PERI_CTRL_AUXSRC_VALUE_CLK_SYS,
// 125 * 1000 * 1000, 125 * 1000 * 1000);
spi_init(spi0, 24*1000*1000);
clock_configure(clk_peri, 0,
CLOCKS_CLK_PERI_CTRL_AUXSRC_VALUE_CLK_SYS,
125 * 1000 * 1000, 125 * 1000 * 1000);
spi_init(spi0, 32*1000*1000);
spi_set_format(spi0, 16, SPI_CPOL_0, SPI_CPHA_0, SPI_MSB_FIRST);
/* Start Core1, which processes requests to the LCD. */
@@ -335,12 +337,18 @@ int main(void)
gb_init_lcd(&gb, &lcd_draw_line);
//gb.direct.interlace = 1;
#endif
#if ENABLE_SOUND
audio_init();
#endif
uint_fast32_t frames = 0;
uint64_t start_time = time_us_64();
while(1)
{
int input;
#if ENABLE_SOUND
static float stream[AUDIO_NSAMPLES];
#endif
gb.gb_frame = 0;
@@ -350,6 +358,9 @@ int main(void)
} while(HEDLEY_LIKELY(gb.gb_frame == 0));
frames++;
#if ENABLE_SOUND
audio_callback(NULL, stream, AUDIO_NSAMPLES);
#endif
/* Required since we do not know whether a button remains
* pressed over a serial connection. */