From 18f64ba685cfc2533e2d7726aa43c524b007d97b Mon Sep 17 00:00:00 2001
From: Ron Economos <w6rz@comcast.net>
Date: Tue, 23 Jun 2020 14:40:40 -0700
Subject: gr-blocks: Transition the WAV sink and source blocks to libsndfile.
 Compressed input and output with FLAC and Ogg Vorbis now supported.

---
 gr-blocks/python/blocks/bindings/wavfile_python.cc | 62 ++++++++--------------
 1 file changed, 22 insertions(+), 40 deletions(-)

(limited to 'gr-blocks/python/blocks/bindings/wavfile_python.cc')

diff --git a/gr-blocks/python/blocks/bindings/wavfile_python.cc b/gr-blocks/python/blocks/bindings/wavfile_python.cc
index 950289d156..ff84bab7eb 100644
--- a/gr-blocks/python/blocks/bindings/wavfile_python.cc
+++ b/gr-blocks/python/blocks/bindings/wavfile_python.cc
@@ -14,7 +14,7 @@
 /* BINDTOOL_GEN_AUTOMATIC(0)                                                       */
 /* BINDTOOL_USE_PYGCCXML(0)                                                        */
 /* BINDTOOL_HEADER_FILE(wavfile.h)                                        */
-/* BINDTOOL_HEADER_FILE_HASH(85a13746fd109dbc7b94ba38aaf61e4c)                     */
+/* BINDTOOL_HEADER_FILE_HASH(69b513925578f5e61e5c98a083388fae)                     */
 /***********************************************************************************/
 
 #include <pybind11/complex.h>
@@ -29,49 +29,31 @@ namespace py = pybind11;
 
 void bind_wavfile(py::module& m)
 {
-    using wav_header_info = gr::blocks::wav_header_info;
+    using wav_header_info = ::gr::blocks::wav_header_info;
 
     py::class_<wav_header_info, std::shared_ptr<wav_header_info>>(m, "wav_header_info")
         .def_readwrite("sample_rate", &wav_header_info::sample_rate)
         .def_readwrite("nchans", &wav_header_info::nchans)
         .def_readwrite("bytes_per_sample", &wav_header_info::bytes_per_sample)
-        .def_readwrite("first_sample_pos", &wav_header_info::first_sample_pos)
         .def_readwrite("samples_per_chan", &wav_header_info::samples_per_chan)
-        .def_readwrite("data_chunk_size", &wav_header_info::data_chunk_size);
-
-    m.def("wavheader_parse",
-          &::gr::blocks::wavheader_parse,
-          py::arg("fp"),
-          py::arg("info"),
-          D(wavheader_parse));
-
-    m.def("wav_read_sample",
-          &::gr::blocks::wav_read_sample,
-          py::arg("fp"),
-          py::arg("bytes_per_sample"),
-          D(wav_read_sample));
-
-
-    m.def("wavheader_write",
-          &::gr::blocks::wavheader_write,
-          py::arg("fp"),
-          py::arg("sample_rate"),
-          py::arg("nchans"),
-          py::arg("bytes_per_sample"),
-          D(wavheader_write));
-
-
-    m.def("wav_write_sample",
-          &::gr::blocks::wav_write_sample,
-          py::arg("fp"),
-          py::arg("sample"),
-          py::arg("bytes_per_sample"),
-          D(wav_write_sample));
-
-
-    m.def("wavheader_complete",
-          &::gr::blocks::wavheader_complete,
-          py::arg("fp"),
-          py::arg("byte_count"),
-          D(wavheader_complete));
+        .def_readwrite("format", &wav_header_info::format)
+        .def_readwrite("subformat", &wav_header_info::subformat);
+
+    py::enum_<::gr::blocks::wavfile_format_t>(m, "wavfile_format_t")
+        .value("FORMAT_WAV", ::gr::blocks::FORMAT_WAV)   // 65536
+        .value("FORMAT_FLAC", ::gr::blocks::FORMAT_FLAC) // 1507328
+        .value("FORMAT_OGG", ::gr::blocks::FORMAT_OGG)   // 2097152
+        .value("FORMAT_RF64", ::gr::blocks::FORMAT_RF64) // 2228224
+        .export_values();
+
+    py::enum_<::gr::blocks::wavfile_subformat_t>(m, "wavfile_subformat_t")
+        .value("FORMAT_PCM_S8", ::gr::blocks::FORMAT_PCM_S8) // 1
+        .value("FORMAT_PCM_16", ::gr::blocks::FORMAT_PCM_16) // 2
+        .value("FORMAT_PCM_24", ::gr::blocks::FORMAT_PCM_24) // 3
+        .value("FORMAT_PCM_32", ::gr::blocks::FORMAT_PCM_32) // 4
+        .value("FORMAT_PCM_U8", ::gr::blocks::FORMAT_PCM_U8) // 5
+        .value("FORMAT_FLOAT", ::gr::blocks::FORMAT_FLOAT)   // 6
+        .value("FORMAT_DOUBLE", ::gr::blocks::FORMAT_DOUBLE) // 7
+        .value("FORMAT_VORBIS", ::gr::blocks::FORMAT_VORBIS) // 96
+        .export_values();
 }
-- 
cgit v1.2.3