summaryrefslogtreecommitdiffstats
path: root/binding/rtl_fm.h
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2017-05-22 18:05:21 -0400
committerScott Murray <scott.murray@konsulko.com>2017-05-23 18:53:26 -0400
commit9aebdfa77d57426fdaaab123d7c91c32a20e87be (patch)
tree68215fa3a0f70171bf0e05a2ce41ac2e924939ce /binding/rtl_fm.h
parent9f227dc72607106641269560608b0297358adfa8 (diff)
Rework to add and use a binding for radio controldab_3.99.1dab/3.99.13.99.1
A radio binding has been added in the new binding directory, and the application has been reworked to use it. The binding uses a modified version of the rtl_fm code used in the qtmultimedia radio plugin that was previously used, and some new code has been added to output to PulseAudio using the asynchronous API to ensure compatibility with stream corking. The rtl_fm code has been enhanced to add seeking support, and the application has been tweaked to use it. Bug-AGL: SPEC-581 Change-Id: I011e98374accc2cad2b36c93ac800948ee51f2aa Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Diffstat (limited to 'binding/rtl_fm.h')
-rw-r--r--binding/rtl_fm.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/binding/rtl_fm.h b/binding/rtl_fm.h
new file mode 100644
index 0000000..f5b2a86
--- /dev/null
+++ b/binding/rtl_fm.h
@@ -0,0 +1,70 @@
+/*
+ * rtl-sdr, turns your Realtek RTL2832 based DVB dongle into a SDR receiver
+ * Copyright (C) 2016, 2017 Konsulko Group
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef RTL_FM_H
+#define RTL_FM_H
+
+#include <stdint.h>
+
+#define RTL_FM_DEFAULT_BUF_LENGTH (1 * 16384)
+#define RTL_FM_MAXIMUM_OVERSAMPLE 16
+#define RTL_FM_MAXIMUM_BUF_LENGTH (RTL_FM_MAXIMUM_OVERSAMPLE * RTL_FM_DEFAULT_BUF_LENGTH)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef void (*rtl_fm_output_fn_t)(int16_t *result, int result_len, void *data);
+
+int rtl_fm_init(uint32_t freq,
+ uint32_t sample_rate,
+ uint32_t resample_rate,
+ rtl_fm_output_fn_t output_fn,
+ void *output_fn_data);
+
+void rtl_fm_start(void);
+
+void rtl_fm_set_freq(uint32_t freq);
+
+void rtl_fm_set_freq_callback(void (*callback)(uint32_t, void *),
+ void *data);
+
+uint32_t rtl_fm_get_freq(void);
+
+void rtl_fm_stop(void);
+
+void rtl_fm_scan_start(int direction,
+ void (*callback)(uint32_t, void *),
+ void *data,
+ uint32_t step,
+ uint32_t min,
+ uint32_t max);
+
+void rtl_fm_scan_stop(void);
+
+void rtl_fm_scan_set_squelch_level(int level);
+
+void rtl_fm_scan_set_squelch_limit(int count);
+
+void rtl_fm_cleanup(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* RTL_FM_H */