summaryrefslogtreecommitdiffstats
path: root/lib/include
diff options
context:
space:
mode:
Diffstat (limited to 'lib/include')
-rw-r--r--lib/include/libfshift.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/include/libfshift.h b/lib/include/libfshift.h
new file mode 100644
index 0000000..61dd712
--- /dev/null
+++ b/lib/include/libfshift.h
@@ -0,0 +1,35 @@
+#ifndef LIBFSHIFT_H
+#define LIBFSHIFT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+typedef struct fshift_ctx *fshift_ctx_t;
+
+/*
+ * Create processing context.
+ */
+fshift_ctx_t fshift_create_ctx(float fshift, uint8_t sz);
+
+/*
+ * Free processing context
+ */
+void fshift_free_ctx(fshift_ctx_t ctx);
+
+/*
+ * Perform processing step
+ * in - pointer to the buffer to read input block
+ * out1 - pointer to buffer to save result of processing previous chunk
+ * out2 - pointer to buffer to save delayed and filtering signal without
+ * frequency shift processing.
+ */
+void fshift_run(fshift_ctx_t ctx, const float* in, float* out1, float* out2);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif