spandsp  0.0.6
private/queue.h
1 /*
2  * SpanDSP - a series of DSP components for telephony
3  *
4  * private/queue.h - simple in process message queuing
5  *
6  * Written by Steve Underwood <steveu@coppice.org>
7  *
8  * Copyright (C) 2004 Steve Underwood
9  *
10  * All rights reserved.
11  *
12  * This program is free software; you can redistribute it and/or modify
13  * it under the terms of the GNU Lesser General Public License version 2.1,
14  * as published by the Free Software Foundation.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Lesser General Public License for more details.
20  *
21  * You should have received a copy of the GNU Lesser General Public
22  * License along with this program; if not, write to the Free Software
23  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24  */
25 
26 #if !defined(_SPANDSP_PRIVATE_QUEUE_H_)
27 #define _SPANDSP_PRIVATE_QUEUE_H_
28 
29 /*!
30  Queue descriptor. This defines the working state for a single instance of
31  a byte stream or message oriented queue.
32 */
34 {
35  /*! \brief Flags indicating the mode of the queue. */
36  int flags;
37  /*! \brief The length of the data buffer. */
38  int len;
39  /*! \brief The buffer input pointer. */
40  volatile int iptr;
41  /*! \brief The buffer output pointer. */
42  volatile int optr;
43 #if defined(SPANDSP_FULLY_DEFINE_QUEUE_STATE_T)
44  /*! \brief The data buffer, sized at the time the structure is created. */
45  uint8_t data[];
46 #endif
47 };
48 
49 #endif
50 /*- End of file ------------------------------------------------------------*/
queue_state_s
Definition: private/queue.h:34
QUEUE_WRITE_ATOMIC
#define QUEUE_WRITE_ATOMIC
Definition: queue.h:48
dds_mod
int16_t dds_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
Generate an integer tone sample, with modulation.
Definition: dds_int.c:378
power_surge_detector_state_t
Definition: power_meter.h:58
power_meter_current_dbm0
float power_meter_current_dbm0(power_meter_t *s)
Get the current power meter reading, in dBm0.
Definition: power_meter.c:120
dds_phase_rate
int32_t dds_phase_rate(float frequency)
Find the phase rate value to achieve a particular frequency.
Definition: dds_int.c:316
queue_state_s::len
int len
The length of the data buffer.
Definition: private/queue.h:38
queue_state_s::optr
volatile int optr
The buffer output pointer.
Definition: private/queue.h:42
dds_scaling_dbm0
int16_t dds_scaling_dbm0(float level)
Find the scaling factor needed to achieve a specified level in dBm0.
Definition: dds_int.c:328
awgn_state_s
Definition: private/awgn.h:33
power_meter_update
int32_t power_meter_update(power_meter_t *s, int16_t amp)
Update a power meter.
Definition: power_meter.c:84
queue_write_msg
int queue_write_msg(queue_state_t *s, const uint8_t *buf, int len)
Write a message to a queue.
Definition: queue.c:335
queue_read_byte
int queue_read_byte(queue_state_t *s)
Read a byte from a queue.
Definition: queue.c:188
power_meter_t
Definition: power_meter.h:49
queue_contents
int queue_contents(queue_state_t *s)
Check the contents of a queue.
Definition: queue.c:63
queue_read
int queue_read(queue_state_t *s, uint8_t *buf, int len)
Read bytes from a queue.
Definition: queue.c:130
queue_init
queue_state_t * queue_init(queue_state_t *s, int len, int flags)
Initialise a queue.
Definition: queue.c:394
queue_state_s::flags
int flags
Flags indicating the mode of the queue.
Definition: private/queue.h:36
queue_state_s::iptr
volatile int iptr
The buffer input pointer.
Definition: private/queue.h:40
queue.h
queue_free_space
int queue_free_space(queue_state_t *s)
Check available free space.
Definition: queue.c:52
tone_gen_descriptor_s
Definition: private/tone_generate.h:43
queue_release
int queue_release(queue_state_t *s)
Release a queue.
Definition: queue.c:409
power_meter_level_dbov
int32_t power_meter_level_dbov(float level)
Get the current power meter reading, in dBOv.
Definition: power_meter.c:103
queue_empty
int queue_empty(queue_state_t *s)
Check if a queue is empty.
Definition: queue.c:46
queue_state_test_msg
int queue_state_test_msg(queue_state_t *s)
Test message length.
Definition: queue.c:298
power_meter_current_dbov
float power_meter_current_dbov(power_meter_t *s)
Get the current power meter reading, in dBOv.
Definition: power_meter.c:129
spandsp-sim.h
tone_gen_descriptor_init
tone_gen_descriptor_t * tone_gen_descriptor_init(tone_gen_descriptor_t *s, int f1, int l1, int f2, int l2, int d1, int d2, int d3, int d4, int repeat)
Create a tone generator descriptor.
Definition: tone_generate.c:60
queue_write_byte
int queue_write_byte(queue_state_t *s, uint8_t byte)
Write a byte to a queue.
Definition: queue.c:267
queue_write
int queue_write(queue_state_t *s, const uint8_t *buf, int len)
Write bytes to a queue.
Definition: queue.c:214
queue_read_msg
int queue_read_msg(queue_state_t *s, uint8_t *buf, int len)
Read a message from a queue.
Definition: queue.c:309
power_meter_level_dbm0
int32_t power_meter_level_dbm0(float level)
Get the current power meter reading, in dBm0.
Definition: power_meter.c:91
QUEUE_READ_ATOMIC
#define QUEUE_READ_ATOMIC
Definition: queue.h:45
queue_flush
void queue_flush(queue_state_t *s)
Flush the contents of a queue.
Definition: queue.c:74
tone_gen_state_s
Definition: private/tone_generate.h:54
power_surge_detector_current_dbm0
float power_surge_detector_current_dbm0(power_surge_detector_state_t *s)
Get the current surge detector meter reading, in dBm0.
Definition: power_meter.c:166
power_meter_init
power_meter_t * power_meter_init(power_meter_t *s, int shift)
Initialise a power meter context.
Definition: power_meter.c:50
queue_free
int queue_free(queue_state_t *s)
Delete a queue.
Definition: queue.c:415
queue_view
int queue_view(queue_state_t *s, uint8_t *buf, int len)
Copy bytes from a queue.
Definition: queue.c:80