You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dvmhost/src/common/analog/AnalogDefines.h

60 lines
1.9 KiB

// SPDX-License-Identifier: GPL-2.0-only
/*
* Digital Voice Modem - Common Library
* GPLv2 Open Source. Use is subject to license terms.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright (C) 2025 Bryan Biedenkapp, N2PLL
*
*/
/**
* @defgroup analog Digital Mobile Radio
* @brief Defines and implements aLaw and uLaw audio codecs, along with helper routines for analog audio.
* @ingroup common
*
* @file AnalogDefines.h
* @ingroup analog
*/
#if !defined(__ANALOG_DEFINES_H__)
#define __ANALOG_DEFINES_H__
#include "common/Defines.h"
// Shorthand macro to analog::defines -- keeps source code that doesn't use "using" concise
#if !defined(ANODEF)
#define ANODEF analog::defines
#endif // DMRDEF
namespace analog
{
namespace defines
{
// ---------------------------------------------------------------------------
// Constants
// ---------------------------------------------------------------------------
/**
* @addtogroup analog
* @{
*/
const uint32_t AUDIO_SAMPLES_LENGTH = 160U; //! Sample size for 20ms of 16-bit audio at 8kHz.
const uint32_t AUDIO_SAMPLES_LENGTH_BYTES = 320U; //! Sample size for 20ms of 16-bit audio at 8kHz in bytes.
/** @} */
/** @brief Audio Frame Type(s) */
namespace AudioFrameType {
/** @brief Audio Frame Type(s) */
enum E : uint8_t {
VOICE_START = 0x00U, //! Voice Start Frame
VOICE = 0x01U, //! Voice Continuation Frame
TERMINATOR = 0x02U, //! Voice End Frame / Call Terminator
};
}
#define ANO_TERMINATOR "Analog, TERMINATOR (Terminator)"
#define ANO_VOICE "Analog, VOICE (Voice Data)"
} // namespace defines
} // namespace analog
#endif // __ANALOG_DEFINES_H__

Powered by TurnKey Linux.