diff options
author | stevie <stevie@65a5c917-d112-43f1-993d-58c26a4786be> | 2011-05-29 10:24:15 +0000 |
---|---|---|
committer | stevie <stevie@65a5c917-d112-43f1-993d-58c26a4786be> | 2011-05-29 10:24:15 +0000 |
commit | da6ffc8343221ca66789c2e9c62506e5653301ea (patch) | |
tree | 56bff05ac3c506ff7906583660326c5c076017d9 /blocks/src/lib/voice_data_unit.h | |
parent | f76f2bc712353a587782fe11a79b6447c9bbb88a (diff) |
Rename 'decoder' to 'blocks'.
git-svn-id: http://op25.osmocom.org/svn/trunk@283 65a5c917-d112-43f1-993d-58c26a4786be
Diffstat (limited to 'blocks/src/lib/voice_data_unit.h')
-rw-r--r-- | blocks/src/lib/voice_data_unit.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/blocks/src/lib/voice_data_unit.h b/blocks/src/lib/voice_data_unit.h new file mode 100644 index 0000000..5f2494f --- /dev/null +++ b/blocks/src/lib/voice_data_unit.h @@ -0,0 +1,79 @@ +/* -*- C++ -*- */ + +/* + * Copyright 2008 Steve Glass + * + * This file is part of OP25. + * + * OP25 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 3, or (at your option) + * any later version. + * + * OP25 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 OP25; see the file COPYING. If not, write to the Free + * Software Foundation, Inc., 51 Franklin Street, Boston, MA + * 02110-1301, USA. + */ + +#ifndef INCLUDED_VOICE_DATA_UNIT_H +#define INCLUDED_VOICE_DATA_UNIT_H + +#include <abstract_data_unit.h> + +/** + * P25 Logical Data Unit 1 (compressed IBME voice). + */ +class voice_data_unit : public abstract_data_unit +{ +public: + + /** + * voice_data_unit (virtual) destuctor + */ + virtual ~voice_data_unit(); + +protected: + + /** + * voice_data_unit constuctor + * + * \param frame_body A const_bit_queue representing the frame body. + */ + voice_data_unit(const_bit_queue& frame_body); + + /** + * Applies error correction code to the specified bit_vector. Not + * that this function removes the PN sequences from the source + * frame. + * + * \param frame_body The bit vector to decode. + * \return + */ + virtual void do_correct_errors(bit_vector& frame_body); + + /** + * Decode compressed audio using the supplied imbe_decoder. + * + * \param frame_body The const_bit_vector to decode. + * \param imbe The imbe_decoder to use to generate the audio. + */ + virtual void do_decode_audio(const_bit_vector& frame_body, imbe_decoder& imbe); + + /** + * Returns the expected size (in bits) of this data_unit. For + * variable-length data this should return UINT16_MAX until the + * actual length of this frame is known. + * + * \return The expected size (in bits) of this data_unit when encoded. + */ + virtual uint16_t frame_size_max() const; + +}; + +#endif /* INCLUDED_VOICE_DATA_UNIT_H */ |