diff --git a/openrtx/include/core/audio_codec.h b/openrtx/include/core/audio_codec.h index 649e2375..af480aeb 100644 --- a/openrtx/include/core/audio_codec.h +++ b/openrtx/include/core/audio_codec.h @@ -21,7 +21,7 @@ #ifndef AUDIO_CODEC_H #define AUDIO_CODEC_H -#include +#include #include #include diff --git a/openrtx/include/interfaces/audio_path.h b/openrtx/include/core/audio_path.h similarity index 52% rename from openrtx/include/interfaces/audio_path.h rename to openrtx/include/core/audio_path.h index 4633b817..58cf3cd6 100644 --- a/openrtx/include/interfaces/audio_path.h +++ b/openrtx/include/core/audio_path.h @@ -1,8 +1,7 @@ /*************************************************************************** - * Copyright (C) 2021 - 2022 by Federico Amedeo Izzo IU2NUO, * - * Niccolò Izzo IU2KIN * - * Frederik Saraci IU2NRO * - * Silvano Seva IU2KWO * + * Copyright (C) 2022 by Federico Amedeo Izzo IU2NUO, * + * Niccolò Izzo IU2KIN * + * Silvano Seva IU2KWO * * * * 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 * @@ -21,57 +20,48 @@ #ifndef AUDIO_PATH_H #define AUDIO_PATH_H -#include -#include +#include #ifdef __cplusplus extern "C" { #endif -enum AudioSource +enum PathStatus { - SOURCE_MIC, ///< Receive audio signal from the microphone - SOURCE_RTX, ///< Receive audio signal from the transceiver - SOURCE_MCU ///< Receive audio signal from a memory buffer + PATH_CLOSED, + PATH_OPEN, + PATH_SUSPENDED }; -enum AudioSink -{ - SINK_SPK, ///< Send audio signal to the speaker - SINK_RTX, ///< Send audio signal to the transceiver - SINK_MCU ///< Send audio signal to a memory buffer -}; +typedef int32_t pathId; -enum AudioPriority -{ - PRIO_BEEP = 1, ///< Priority level of system beeps - PRIO_RX, ///< Priority level of incoming audio from RX stage - PRIO_PROMPT, ///< Priority level of voice prompts - PRIO_TX ///< Priority level of outward audio directed to TX stage -}; - -typedef int8_t pathId; /** - * Try to connect an audio path, returns an error if the path is already used + * Request to set up an audio path, returns an error if the path is already used * with an higher priority. * * @param source: identifier of the input audio peripheral. - * @param sink: identifier of the output audio peripheral. + * @param destination: identifier of the output audio peripheral. * @param prio: priority of the requester. * @return a unique identifier of the opened path or -1 if path is already in use. */ -pathId audioPath_open(enum AudioSource source, - enum AudioSink sink, - enum AudioPriority prio); +pathId audioPath_request(enum AudioSource source, enum AudioSink destination, + enum AudioPriority prio); + +/** + * Get the current status of an audio path. + * + * @param pathId: ID of the audio path. + * @return status of the path queried. + */ +enum PathStatus audioPath_getStatus(const pathId pathId); /** * Release an audio path. * - * @param id: identifier of the previously opened path. - * @return true on success, false on error. + * @param pathId: identifier of the path. */ -bool audioPath_close(pathId id); +void audioPath_release(const pathId pathId); #ifdef __cplusplus } diff --git a/openrtx/include/interfaces/audio.h b/openrtx/include/interfaces/audio.h index 1ac8d9f5..6c6b4ea8 100644 --- a/openrtx/include/interfaces/audio.h +++ b/openrtx/include/interfaces/audio.h @@ -21,10 +21,6 @@ #ifndef AUDIO_H #define AUDIO_H -#include -#include -#include - #ifdef __cplusplus extern "C" { #endif @@ -34,6 +30,28 @@ extern "C" { * audio driver, in charge of managing microphone and audio amplifier. */ +enum AudioSource +{ + SOURCE_MIC, ///< Receive audio signal from the microphone + SOURCE_RTX, ///< Receive audio signal from the transceiver + SOURCE_MCU ///< Receive audio signal from a memory buffer +}; + +enum AudioSink +{ + SINK_SPK, ///< Send audio signal to the speaker + SINK_RTX, ///< Send audio signal to the transceiver + SINK_MCU ///< Send audio signal to a memory buffer +}; + +enum AudioPriority +{ + PRIO_BEEP = 1, ///< Priority level of system beeps + PRIO_RX, ///< Priority level of incoming audio from RX stage + PRIO_PROMPT, ///< Priority level of voice prompts + PRIO_TX ///< Priority level of outward audio directed to TX stage +}; + /** * Initialise low-level audio management module. */ diff --git a/openrtx/include/interfaces/audio_stream.h b/openrtx/include/interfaces/audio_stream.h index 05d3f83c..4b5f6cb4 100644 --- a/openrtx/include/interfaces/audio_stream.h +++ b/openrtx/include/interfaces/audio_stream.h @@ -22,8 +22,9 @@ #define AUDIO_STREAM_H #include +#include #include -#include "audio_path.h" +#include "audio.h" #ifdef __cplusplus extern "C" {