support for freedv GUI program changes
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Fri, 11 Sep 2015 22:02:15 +0000 (22:02 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Fri, 11 Sep 2015 22:02:15 +0000 (22:02 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@2316 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/src/codec2_cohpsk.h
codec2-dev/src/freedv_api.c
codec2-dev/src/freedv_api.h

index 3731aad24717c3b7f6c3e9f47d36bedebec4f486..063a834dfa7bf1e2ba21c95ccc52ec3e90962c1f 100644 (file)
@@ -1,6 +1,6 @@
 /*---------------------------------------------------------------------------*\
                                                                              
-  FILE........: cohpsk.h
+  FILE........: codec2_cohpsk.h
   AUTHOR......: David Rowe
   DATE CREATED: March 2015
                                                                              
index 4d4246744ea5e741f67c2a872e109abbe9b9cf7d..a480644fb25cb390da94cd7b6fb996257a5f2e5b 100644 (file)
@@ -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  --*/
 /*---------------------------------------------------------------------------*\
index efb87b9149961e10e12b5f5daef98011ce4a93c8..183b4d941056abfe1bd14087253ea3ed5780b20f 100644 (file)
@@ -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