1/*
 2 * Copyright (c) 2021 Arm Limited and Contributors. All rights reserved.
 3 *
 4 * SPDX-License-Identifier: Apache-2.0
 5 * 
 6 */
 7
 8#ifndef _PICO_ANALOG_MICROPHONE_H_
 9#define _PICO_ANALOG_MICROPHONE_H_
10
11typedef void (*analog_samples_ready_handler_t)(void);
12
13struct analog_microphone_config {
14    uint gpio;
15    float bias_voltage;
16    uint sample_rate;
17    uint sample_buffer_size;
18};
19
20int analog_microphone_init(const struct analog_microphone_config* config);
21void analog_microphone_deinit();
22
23int analog_microphone_start();
24void analog_microphone_stop();
25
26void analog_microphone_set_samples_ready_handler(analog_samples_ready_handler_t handler);
27
28int analog_microphone_read(int16_t* buffer, size_t samples);
29
30#endif