view ater/submux.h @ 52:626180a15857 default tip

ater play-d144: emit E-data frames manually, osmo_trau_frame_encode() is currently broken for this frame type
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 25 Sep 2024 06:40:43 +0000
parents 40f781efdbe1
children
line wrap: on
line source

/*
 * The structures and functions defined in this header file deal with
 * interfacing to the Submultiplexer part of Nokia's Transcoder and
 * Submultiplexer.
 */

#pragma once

#include <stdint.h>
#include <stdbool.h>

#include <osmocom/core/bits.h>
#include <osmocom/isdn/i460_mux.h>
#include <osmocom/trau/trau_frame.h>

#define	ATER_SUBSLOTS	4

struct ater_subslot {
	struct osmo_i460_subchan *schan;
	int nr;
	bool is_active;
	bool is_data;
	bool is_hr_data;
	bool is_efr;
	bool is_data_144;
	bool d144_edata;
	struct osmo_trau_frame ul_frame;
	unsigned mfrm_count;
	uint8_t *play_buffer;
	unsigned play_buf_total;
	unsigned play_buf_ptr;
	bool play_wait_align;
};

extern struct ater_subslot subslots[ATER_SUBSLOTS];

void i460_rx_func(struct osmo_i460_subchan *schan, void *user_data,
		  const ubit_t *bits, unsigned int num_bits);

void init_trau_ul_frame(int nr);
void init_trau_ul_frame_csd(int nr, bool ir_16k);