| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When switching between window functions in a live FFT GUI session, the
difference in power of the window functions is notable. This allows
asserting the 'normalize' argument of fft::window::build() by setting a
bit in the window type during construction,, or by calling a new API
call: set_fft_window_normalized().
Note: The choice to use an unused bit to set the normalization comes
from an attempt to keep the API backward compatible. Adding a new
argument to the make call would require reordering the make arguments.
This feature allows changing window types without signal power varying
due to window power differences.
Note that this does not affect scalloping loss, or processing loss from
the window. For example, the peak value of a sine tone will still vary
for different windows, because different windows distribute the power
differently, and most window functions move power to the sidelobes.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The former has been declared deprecated, hence the shift.
Note that this is 100% search and replace. The three things changed are:
- gr::filter::firdes --> gr::fft::window
- #include <gnuradio/filter/firdes.h> --> #include <gnuradio/fft/window.h>
- filter::firdes::window(...) --> fft::window::build(...)
- The default beta = 6.76 parameter is removed, since it's the default
value from the window generator
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All of the removed `from __future__ import` were needed in older
versions of Python (mostly 2.5.x and below) but later became mandatory
in most versions of Python 3 hence are not necessary anymore.
More specifically, according to __future__.py[1]:
- unicode_literals is part of Python since versions 2.6.0 and 3.0.0;
- print_function is part of Python since versions 2.6.0 and 3.0.0;
- absolute_import is part of Python since versions 2.5.0 and 3.0.0;
- division is part of Python since versions 2.2.0 and 3.0.0;
Get rid of those unnecessary imports to slightly clean up the codebase.
[1] https://github.com/python/cpython/blob/master/Lib/__future__.py
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
First batch of changes:
```
find […] -print0 | xargs -0 sed -i -r '/get_initial_sptr/{:nxt N;/;/!b nxt;s/get_initial_sptr\(\s*new ([^(]+)(.*)\)\)/make_block_sptr<\1>\2)/}'
```
Then:
* Back out `sptr_magic.h` edits
* Change some `friend` clauses
* clang-format the whole thing
* Update checksums in the pybind11 bindings files
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| | |
Goodbye, and thanks for all the fish, SWIG.
Please refer to docs/PYBIND11.md for details on how to deal with Pybind.
|
| | |
|
| |
| |
| |
| |
| | |
gr-qtgui uses lambdas instead of `boost::bind` to register message
handlers now. This component makes quite heavy use of message handlers.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Because of pybind11 bindings, there is an extra parameter needed in the
declaration of the qtgui blocks that should default to None
Also, the ints being passed to enums cause an issue, but changing the
to enum in the yml file fixes that
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
previously this logic was only in the complex-message time sink and tags were not displayed if present
|
|/
|
|
|
|
|
| |
* add and revise flowgraphs for qt_gui examples
* revise test_qtgui_msg.grc
* add mpsk_stage6.grc to gr-digital/examples
|
|
|
|
| |
Replaced with QString::number().
|
|
|
|
| |
Use QWidget::grab() instead (introduced in Qt 5).
|
|
|
|
| |
Replaced with horizontalAdvance (requires Qt >=5.11).
|
|
|
|
|
|
|
|
| |
Removes warning:
‘QString::null’ is deprecated: use QString()
QString() was present in Qt4.
Source: https://lists.qt-project.org/pipermail/development/2018-January/031890.html
|
|
|
|
|
| |
The mouse hover feature of the frequency sink now respects the unit that
was set in the API.
|
| |
|
| |
|
|
|
|
|
|
| |
Clicking on the upper or lower parts of numbers is supposed to
change the frequency when not in read-only mode. A bug in
mousePressEvent was preventing the updates from being detected.
|
|
|
| |
Trying to build a chooser block fails with Generate Error: (NameError("'i' is not defined")
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This removes the volk/ submodule pointer and updates the CMake to detect
VOLK like any other dependency. The VOLK_MIN_VERSION CMake variable is
added (and set to 2.1.0).
The GR_VOLK_LIB variable is replaced with Volk::volk everywhere.
The VOLK_INSTALL_LIBRARY_DIR and VOLK_INSTALL_INCLUDE_DIR variables
weren't used and were removed.
CMake will now fail if VOLK cannot be detected. Therefore, ENABLE_VOLK
was also removed as a variable; all in-tree components may assume the
existence of VOLK.
|
| |
|
|
|
|
| |
This is the last boost::lexical_cast in gnuradio.
|
|
|
|
|
|
|
| |
* RangeWidget: implement Eng & EngSlider
* add requested whitespace changes
* remove unneeded semicolon
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Most of this code is automated code changes:
```
set -e
SUB="s/dummy/dummy/"
for i in shared_ptr make_shared dynamic_pointer_cast weak_ptr enable_shared_from_this get_deleter; do
SUB="$SUB;s/boost::$i/std::$i/g"
done
SUB="$SUB;s^#include <boost/shared_ptr.hpp>^#include <memory>^g"
SUB="$SUB;s^namespace boost^namespace std^g"
find . \( -name "*.cc" -o -name "*.h" -o -name "*.i" -o -name "*.cxx" -o -name "*.py" \) -print0 | xargs -0 sed -i "$SUB"
```
Only one manual change. In `./gr-fec/lib/fec_mtrx_impl.cc`, add
`#include <algorithm>`.
|
| |
|
|
|
|
|
|
| |
These updates expand the user interface capabilities of
GNU Radio. This PR includes all of the controls more fully
documented here: https://github.com/ghostop14/gr-guiextra
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Added support for C++ std::map<> from python dict
- Fixed default initialization of parameters in main()
- Added missing include for realtime scheduling
- Added default CMake option for std=c++11 as this is required for
gnuradio >= 3.8
- Fixed mako template to add initialization to parameter declarations in
main()
- Fixed C++ constructor initialization list generation
- Fixed parameter type determination when an lvalue is used in an rvalue
expression
- Improved determining type of C++ variables
- Added C++ support for gr_complex parameters
- Fixed C++ generation of nested container types
- Added C++ support for virtual source/sink
- Moved cmake CMAKE_CXX_STANDARD 11 option from options.yml to
CMakeLists.txt.mako
- Fixed qtqui_sink to allow multiple instances
- Revised virtual connection processing in cpp_top_block.py
Reviewed-By: Håkon Vagsether <hauk142@gmail.com>
|
| |
|
| |
|
|
|
| |
index is unsigned int
|
| |
|
| |
|
|
|
|
|
| |
This fixes every leftover file in the GNU Radio source tree to match our
clang-format definition.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
constexpr is like const but (for variables) guarantees evaluation at
compile time (as opposed to runtime).
Likely this change will do nothing on its own (though it could, since
it gives the compiler more information). But it still has benefits.
It allows programmer to know that initialization is not expensive (it
was done at compile time), and reduces risk of a refactoring
regressing the compiletimeness.
Runtime initialization can be nonobvious in larger codebases. E.g.:
struct S {
static int foo();
};
const int bar = S::foo(); // Called and initialized at *runtime*.
int S::foo() { return 10; }
With constexpr:
struct S {
static constexpr int foo();
};
constexpr int bar = S::foo(); // Error: used before definition.
constexpr int S::foo() { return 10; }
Initializing at runtime is not just startup costs, but also can save
memory since it'll end up in a R/O section of a binary and therefore
doesn't need to be swapped out, but can be shared (in the mmap() sense
of the word).
|
| |
|
| |
|