00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #if !defined(_SPANDSP_PRIVATE_SUPER_TONE_RX_H_)
00027 #define _SPANDSP_PRIVATE_SUPER_TONE_RX_H_
00028
00029 #define BINS 128
00030
00031 struct super_tone_rx_segment_s
00032 {
00033 int f1;
00034 int f2;
00035 int recognition_duration;
00036 int min_duration;
00037 int max_duration;
00038 };
00039
00040 struct super_tone_rx_descriptor_s
00041 {
00042 int used_frequencies;
00043 int monitored_frequencies;
00044 int pitches[BINS/2][2];
00045 int tones;
00046 super_tone_rx_segment_t **tone_list;
00047 int *tone_segs;
00048 goertzel_descriptor_t *desc;
00049 };
00050
00051 struct super_tone_rx_state_s
00052 {
00053 super_tone_rx_descriptor_t *desc;
00054 float energy;
00055 int detected_tone;
00056 int rotation;
00057 tone_report_func_t tone_callback;
00058 void (*segment_callback)(void *data, int f1, int f2, int duration);
00059 void *callback_data;
00060 super_tone_rx_segment_t segments[11];
00061 goertzel_state_t state[];
00062 };
00063
00064 #endif
00065