From 7cb0a5849e5390b09e514dc16a2ae0a661bd673e Mon Sep 17 00:00:00 2001 From: drowe67 Date: Fri, 11 Sep 2015 22:02:15 +0000 Subject: [PATCH] support for freedv GUI program changes git-svn-id: https://svn.code.sf.net/p/freetel/code@2316 01035d8c-6547-0410-b346-abe4f91aad63 --- codec2-dev/src/codec2_cohpsk.h | 2 +- codec2-dev/src/freedv_api.c | 20 ++++++++++++++++++-- codec2-dev/src/freedv_api.h | 13 ++++++++++++- 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/codec2-dev/src/codec2_cohpsk.h b/codec2-dev/src/codec2_cohpsk.h index 3731aad2..063a834d 100644 --- a/codec2-dev/src/codec2_cohpsk.h +++ b/codec2-dev/src/codec2_cohpsk.h @@ -1,6 +1,6 @@ /*---------------------------------------------------------------------------*\ - FILE........: cohpsk.h + FILE........: codec2_cohpsk.h AUTHOR......: David Rowe DATE CREATED: March 2015 diff --git a/codec2-dev/src/freedv_api.c b/codec2-dev/src/freedv_api.c index 4d424674..a480644f 100644 --- a/codec2-dev/src/freedv_api.c +++ b/codec2-dev/src/freedv_api.c @@ -932,10 +932,20 @@ void freedv_get_modem_stats(struct freedv *f, int *sync, float *snr_est) // Set integers void freedv_set_test_frames (struct freedv *f, int val) {f->test_frames = val;} void freedv_set_squelch_en (struct freedv *f, int val) {f->squelch_en = val;} -void freedv_zero_total_bit_errors (struct freedv *f) {f->total_bit_errors = 0;} +void freedv_set_total_bit_errors (struct freedv *f, int val) {f->total_bit_errors = val;} +void freedv_set_total_bits (struct freedv *f, int val) {f->total_bits = val;} +void freedv_set_clip (struct freedv *f, int val) {f->clip = val;} +void freedv_set_varicode_code_num (struct freedv *f, int val) {varicode_set_code_num(&f->varicode_dec_states, val);} + // Set floats void freedv_set_snr_squelch_thresh (struct freedv *f, float val) {f->snr_squelch_thresh = val;} +void freedv_set_callback_error_pattern (struct freedv *f, freedv_calback_error_pattern cb, void *state) +{ + f->freedv_put_error_pattern = cb; + f->error_pattern_callback_state = state; +} + /*---------------------------------------------------------------------------*\ FUNCTIONS...: freedv_get_* @@ -948,16 +958,22 @@ void freedv_set_snr_squelch_thresh (struct freedv *f, float val) {f->snr_ \*---------------------------------------------------------------------------*/ // Get integers +int freedv_get_mode (struct freedv *f) {return f->mode;} int freedv_get_test_frames (struct freedv *f) {return f->test_frames;} int freedv_get_n_speech_samples (struct freedv *f) {return f->n_speech_samples;} -//int freedv_get_modem_sample_rate (struct freedv *f) {return f->modem_sample_rate;} +int freedv_get_modem_sample_rate (struct freedv *f) {return FS;} int freedv_get_n_max_modem_samples (struct freedv *f) {return f->n_max_modem_samples;} int freedv_get_n_nom_modem_samples (struct freedv *f) {return f->n_nom_modem_samples;} int freedv_get_total_bits (struct freedv *f) {return f->total_bits;} int freedv_get_total_bit_errors (struct freedv *f) {return f->total_bit_errors;} int freedv_get_sync (struct freedv *f) {return f->stats.sync;} +int freedv_get_sz_error_pattern (struct freedv *f) {return f->sz_error_pattern;} // Get floats +struct CODEC2 *freedv_get_codec2 (struct freedv *f){return f->codec2;} + +void freedv_get_modem_extended_stats(struct freedv *f, struct MODEM_STATS *stats) + { memcpy(stats, &f->stats, sizeof(struct MODEM_STATS)); } /*-- Functions below this line are private, and not meant for public use --*/ /*---------------------------------------------------------------------------*\ diff --git a/codec2-dev/src/freedv_api.h b/codec2-dev/src/freedv_api.h index efb87b91..183b4d94 100644 --- a/codec2-dev/src/freedv_api.h +++ b/codec2-dev/src/freedv_api.h @@ -45,6 +45,8 @@ struct freedv; typedef void (*freedv_callback_rx)(void *, char); typedef char (*freedv_callback_tx)(void *); +typedef void (*freedv_calback_error_pattern) + (void *error_pattern_callback_state, short error_pattern[], int sz_error_pattern); // FreeDV API functions: // open, close @@ -64,9 +66,17 @@ void freedv_set_test_frames (struct freedv *freedv, int test_frames); void freedv_set_smooth_symbols (struct freedv *freedv, int smooth_symbols); void freedv_set_squelch_en (struct freedv *freedv, int squelch_en); void freedv_set_snr_squelch_thresh (struct freedv *freedv, float snr_squelch_thresh); +void freedv_set_clip (struct freedv *freedv, int val); +void freedv_set_total_bit_errors (struct freedv *freedv, int val); +void freedv_set_total_bits (struct freedv *freedv, int val); +void freedv_set_callback_error_pattern (struct freedv *freedv, freedv_calback_error_pattern cb, void *state); +void freedv_set_varicode_code_num (struct freedv *freedv, int val); + // Get parameters int freedv_get_version(void); +int freedv_get_mode (struct freedv *freedv); void freedv_get_modem_stats(struct freedv *freedv, int *sync, float *snr_est); +void freedv_get_modem_extended_stats(struct freedv *freedv, struct MODEM_STATS *stats); int freedv_get_test_frames (struct freedv *freedv); int freedv_get_n_speech_samples (struct freedv *freedv); int freedv_get_modem_sample_rate (struct freedv *freedv); @@ -74,8 +84,9 @@ int freedv_get_n_max_modem_samples (struct freedv *freedv); int freedv_get_n_nom_modem_samples (struct freedv *freedv); int freedv_get_total_bits (struct freedv *freedv); int freedv_get_total_bit_errors (struct freedv *freedv); -void freedv_zero_total_bit_errors (struct freedv *freedv); int freedv_get_sync (struct freedv *freedv); +struct CODEC2 *freedv_get_codec2 (struct freedv *freedv); +int freedv_get_sz_error_pattern (struct freedv *freedv); #endif #ifdef __cplusplus -- 2.25.1