modem_monitor.h

00001 /*
00002  * SpanDSP - a series of DSP components for telephony
00003  *
00004  * constel.h - Display QAM constellations, using the FLTK toolkit.
00005  *
00006  * Written by Steve Underwood <steveu@coppice.org>
00007  *
00008  * Copyright (C) 2004 Steve Underwood
00009  *
00010  * All rights reserved.
00011  *
00012  * This program is free software; you can redistribute it and/or modify
00013  * it under the terms of the GNU General Public License version 2, as
00014  * published by the Free Software Foundation.
00015  *
00016  * This program is distributed in the hope that it will be useful,
00017  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00018  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00019  * GNU General Public License for more details.
00020  *
00021  * You should have received a copy of the GNU General Public License
00022  * along with this program; if not, write to the Free Software
00023  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00024  *
00025  * $Id: modem_monitor.h,v 1.16 2008/09/03 13:41:42 steveu Exp $
00026  */
00027 
00028 /*! \page constel_page Modem performance monitoring
00029 \section constel_page_sec_1 What does it do?
00030 This code controls a GUI window, which provides monitoring of the internal status
00031 of a modem. It shows, graphically:
00032 
00033     - the constellation, for PSK, QAM and other similar modulations.
00034     - the equalizer status, for modems with adaptive equalizers.
00035     - the carrier frequency.
00036     - the symbol timing correction.
00037 
00038 \section constel_page_sec_2 How does it work?
00039 This code uses the FLTK cross platform GUI toolkit. It works on X11 and Windows platforms.
00040 In addition to the basic FLTK toolkit, fltk_cartesian is also required.
00041 */
00042 
00043 #if !defined(_MODEM_MONITOR_H_)
00044 #define _MODEM_MONITOR_H_
00045 
00046 struct qam_monitor_s;
00047 
00048 typedef struct qam_monitor_s qam_monitor_t;
00049 
00050 #if defined(__cplusplus)
00051 extern "C"
00052 {
00053 #endif
00054 
00055 qam_monitor_t *qam_monitor_init(float constel_width, const char *tag);
00056 int qam_monitor_clear_constel(qam_monitor_t *s);
00057 int qam_monitor_update_constel(qam_monitor_t *s, const complexf_t *pt);
00058 int qam_monitor_update_equalizer(qam_monitor_t *s, const complexf_t *coeffs, int len);
00059 int qam_monitor_update_int_equalizer(qam_monitor_t *s, const complexi16_t *coeffs, int len);
00060 int qam_monitor_update_symbol_tracking(qam_monitor_t *s, float total_correction);
00061 int qam_monitor_update_carrier_tracking(qam_monitor_t *s, float carrier);
00062 int qam_monitor_update_audio_level(qam_monitor_t *s, const int16_t amp[], int len);
00063 void qam_wait_to_end(qam_monitor_t *s);
00064 
00065 #if defined(__cplusplus)
00066 }
00067 #endif
00068 
00069 #endif
00070 /*- End of file ------------------------------------------------------------*/

Generated on Tue Oct 7 20:25:47 2008 for spandsp by  doxygen 1.5.6