pulseview.git
6 years agoSamplingBar: Improved event loop protection
Joel Holdsworth [Tue, 11 Feb 2014 21:33:14 +0000 (21:33 +0000)]
SamplingBar: Improved event loop protection

6 years agoAdded DevInst::config_changed signal
Joel Holdsworth [Sun, 9 Feb 2014 19:30:23 +0000 (19:30 +0000)]
Added DevInst::config_changed signal

6 years agoMoved config getting/setting into DevInst
Joel Holdsworth [Sun, 9 Feb 2014 15:08:12 +0000 (15:08 +0000)]
Moved config getting/setting into DevInst

6 years agoFix some disappearing annotations
Joel Holdsworth [Sun, 9 Feb 2014 19:09:59 +0000 (19:09 +0000)]
Fix some disappearing annotations

6 years agoWrapped sr_dev_inst in a class: pv::DevInst
Joel Holdsworth [Sun, 9 Feb 2014 13:40:15 +0000 (13:40 +0000)]
Wrapped sr_dev_inst in a class: pv::DevInst

6 years agoDecodeTrace: Draw the error over the unresolved period
Joel Holdsworth [Sat, 8 Feb 2014 17:02:11 +0000 (17:02 +0000)]
DecodeTrace: Draw the error over the unresolved period

6 years agoDo not attempt to decode when required probes have not been specified
Joel Holdsworth [Sat, 8 Feb 2014 16:42:18 +0000 (16:42 +0000)]
Do not attempt to decode when required probes have not been specified

This fixes 204

6 years agoAdded some missing fromUtf8s
Joel Holdsworth [Sat, 8 Feb 2014 16:13:17 +0000 (16:13 +0000)]
Added some missing fromUtf8s

This fixes the issues mentioned in #307

6 years agoRowData: Removed _ann_start_index and _ann_end_index
Joel Holdsworth [Sat, 8 Feb 2014 09:48:48 +0000 (09:48 +0000)]
RowData: Removed _ann_start_index and _ann_end_index

This fixes #308

6 years agoImproved decode annotation colouring
Joel Holdsworth [Sat, 8 Feb 2014 13:35:17 +0000 (13:35 +0000)]
Improved decode annotation colouring

This fixes bug #311

6 years agoFixed decoder probes auto-select logic
Joel Holdsworth [Sat, 8 Feb 2014 10:04:51 +0000 (10:04 +0000)]
Fixed decoder probes auto-select logic

This fixes bug #310

6 years agoAdd bindings for new device options
Daniel Elstner [Wed, 5 Feb 2014 21:35:37 +0000 (22:35 +0100)]
Add bindings for new device options

Add device option bindings for the SR_CONF_TRIGGER_SLOPE,
SR_CONF_EXTERNAL_CLOCK and SR_CONF_CLOCK_EDGE settings.  For
now, the slope and edge settings use the generic combo box
widget.

6 years agoAdded show/hide decoder button
Joel Holdsworth [Sun, 2 Feb 2014 20:11:54 +0000 (20:11 +0000)]
Added show/hide decoder button

6 years agoAdded decoder show/hide icons
Joel Holdsworth [Sun, 2 Feb 2014 19:37:23 +0000 (19:37 +0000)]
Added decoder show/hide icons

6 years agoImproved row annotation colouring
Joel Holdsworth [Sun, 2 Feb 2014 19:24:34 +0000 (19:24 +0000)]
Improved row annotation colouring

6 years agoSplit annotation data set into rows, and improved painting.
Joel Holdsworth [Sun, 2 Feb 2014 17:48:47 +0000 (17:48 +0000)]
Split annotation data set into rows, and improved painting.

This has allowed the removal of Annotation::_row and Annotation::_pd_index

6 years agoFix bug #235. Add shortcut keys for View/Zoom In (Ctrl++) and View/Zoom Out (Ctrl+-)
ulflulfl [Sat, 1 Feb 2014 18:04:47 +0000 (18:04 +0000)]
Fix bug #235. Add shortcut keys for View/Zoom In (Ctrl++) and View/Zoom Out (Ctrl+-)

These are the shortcut keys for zoom in and out as suggested by
QT. Works with the normal keyboard and numpad keys.

Seems that the preferred simple + and - keys have an issue.
While the - key is working and displayed in the menu as expected,
the + key is zooming but not displayed at View/Zoom In
in the menu. I've tried several attempts.

6 years agoExtract only the subset of annotations that are in view.
Joel Holdsworth [Fri, 27 Dec 2013 14:00:41 +0000 (14:00 +0000)]
Extract only the subset of annotations that are in view.

To achieve this lists of annotations have been added sorted by
start sample and end sample

6 years agoDraw stacked decoder traces below the other PDs (avoids overlap).
Uwe Hermann [Sat, 1 Feb 2014 14:04:45 +0000 (15:04 +0100)]
Draw stacked decoder traces below the other PDs (avoids overlap).

Every stacked decoder is drawn below the PDs it stacks upon, so that all
of the annotations of all PDs in the stack can be seen, and no overlap
happens.

6 years agopv::data::decode::Annotation: Add pd_index() and set_pd_index().
Uwe Hermann [Sat, 1 Feb 2014 01:31:00 +0000 (02:31 +0100)]
pv::data::decode::Annotation: Add pd_index() and set_pd_index().

6 years agopv::view::DecodeTrace: Draw annotation rows according to PD metadata.
Uwe Hermann [Fri, 31 Jan 2014 20:29:56 +0000 (21:29 +0100)]
pv::view::DecodeTrace: Draw annotation rows according to PD metadata.

6 years agopv::data::DecoderStack: Set _row for each annotation.
Uwe Hermann [Fri, 31 Jan 2014 20:24:18 +0000 (21:24 +0100)]
pv::data::DecoderStack: Set _row for each annotation.

For each annotation, keep track of the "annotation row" it belongs to.

6 years agopv::data::decode::Annotation: Add row() and set_row().
Uwe Hermann [Fri, 31 Jan 2014 20:03:03 +0000 (21:03 +0100)]
pv::data::decode::Annotation: Add row() and set_row().

Keep track of the "annotation row" this annotation is supposed to be
displayed on.

6 years agodecoderstack.cpp: Improve two error messages a bit.
Uwe Hermann [Fri, 31 Jan 2014 00:04:36 +0000 (01:04 +0100)]
decoderstack.cpp: Improve two error messages a bit.

6 years agodecode: Clear error message upon every new session run.
Uwe Hermann [Thu, 30 Jan 2014 23:47:41 +0000 (00:47 +0100)]
decode: Clear error message upon every new session run.

When a decoder throws an exception, i.e. srd_session_send() returns an error,
PulseView shows a red "Failed to initialise decoder" banner in the
decode trace at the moment.

This can happen when e.g. invalid option values are set in the PD popup,
or invalid probe combinations, and so on. However, after the user resolved
the error condition (e.g. selected a proper set of probes / options) the
red error banner would still remain visible and no re-decoding would happen.

This patch fixes that.

6 years agoFixed layout of labeled widgets
Joel Holdsworth [Wed, 29 Jan 2014 21:32:06 +0000 (21:32 +0000)]
Fixed layout of labeled widgets

6 years agonsis: contrib/pulseview.nsi: Drop obsolete file.
Uwe Hermann [Tue, 28 Jan 2014 16:57:30 +0000 (17:57 +0100)]
nsis: contrib/pulseview.nsi: Drop obsolete file.

We're only using the cross-compile version pulseview_cross.nsi these
days since it is much more convenient, and the old native build file
was not working and/or up-to-date anyway.

6 years agoCMakeLists.txt, test/CMakeLists.txt: MinGW linking fix.
Uwe Hermann [Tue, 28 Jan 2014 16:55:51 +0000 (17:55 +0100)]
CMakeLists.txt, test/CMakeLists.txt: MinGW linking fix.

6 years agotest/CMakeLists.txt: Fix MinGW build of the tests.
Uwe Hermann [Tue, 28 Jan 2014 16:54:30 +0000 (17:54 +0100)]
test/CMakeLists.txt: Fix MinGW build of the tests.

6 years agoFixed off-by-one in DecoderStack::decode_proc
Joel Holdsworth [Sat, 25 Jan 2014 13:27:41 +0000 (13:27 +0000)]
Fixed off-by-one in DecoderStack::decode_proc

6 years agopv::prop::Int: Removed assert from Int::get_widget
Joel Holdsworth [Sat, 25 Jan 2014 12:07:57 +0000 (12:07 +0000)]
pv::prop::Int: Removed assert from Int::get_widget

6 years agopv::prop::String: Do not create a widget if the initial value could not be retrieved
Joel Holdsworth [Sat, 25 Jan 2014 12:06:25 +0000 (12:06 +0000)]
pv::prop::String: Do not create a widget if the initial value could not be retrieved

6 years agopv::prop::Double: Do not create a widget if the initial value could not be retrieved
Joel Holdsworth [Sat, 25 Jan 2014 12:06:11 +0000 (12:06 +0000)]
pv::prop::Double: Do not create a widget if the initial value could not be retrieved

6 years agopv::prop::Bool: Do not create a widget if the initial value could not be retrieved
Joel Holdsworth [Sat, 25 Jan 2014 12:05:38 +0000 (12:05 +0000)]
pv::prop::Bool: Do not create a widget if the initial value could not be retrieved

6 years agoSet default build type to RelWithDebInfo
Joel Holdsworth [Sat, 25 Jan 2014 11:22:16 +0000 (11:22 +0000)]
Set default build type to RelWithDebInfo

6 years agopv::prop::Enum: Do not create a widget if the initial value could not be retrieved
Joel Holdsworth [Sat, 25 Jan 2014 11:13:33 +0000 (11:13 +0000)]
pv::prop::Enum: Do not create a widget if the initial value could not be retrieved

6 years agoAdd an extra sample to the logic edges so that the end sample is visible
Joel Holdsworth [Sat, 25 Jan 2014 09:51:11 +0000 (09:51 +0000)]
Add an extra sample to the logic edges so that the end sample is visible

6 years agoFixed AnalogSnapshotTest
Joel Holdsworth [Sat, 25 Jan 2014 08:48:27 +0000 (08:48 +0000)]
Fixed AnalogSnapshotTest

This fixes bug #286

6 years agotest/CMakeLists.txt: Fix build on Windows/MinGW.
Uwe Hermann [Tue, 21 Jan 2014 19:31:14 +0000 (20:31 +0100)]
test/CMakeLists.txt: Fix build on Windows/MinGW.

On Windows/MinGW we need to use Boost's 'thread_win32' instead of
'thread' (was already done in the main CMakeLists.txt, but not yet
in test/CMakeLists.txt).

6 years agoPorted to new SR_CONF_LIMIT_SAMPLES config key
Joel Holdsworth [Sun, 19 Jan 2014 22:05:55 +0000 (22:05 +0000)]
Ported to new SR_CONF_LIMIT_SAMPLES config key

6 years agoShow a 1-2-5 list for the sample count widget
Joel Holdsworth [Sun, 19 Jan 2014 14:49:45 +0000 (14:49 +0000)]
Show a 1-2-5 list for the sample count widget

6 years agoSamplingBar: Show a 1-2-5 for min-max sample rate values
Joel Holdsworth [Sun, 19 Jan 2014 14:36:34 +0000 (14:36 +0000)]
SamplingBar: Show a 1-2-5 for min-max sample rate values

6 years agoSweepTimingWidgets: Fix list mode to show the correct suffix
Joel Holdsworth [Sun, 19 Jan 2014 14:32:16 +0000 (14:32 +0000)]
SweepTimingWidgets: Fix list mode to show the correct suffix

6 years agoSweepTimingWidget implemented show_125_list
Joel Holdsworth [Sun, 19 Jan 2014 13:49:12 +0000 (13:49 +0000)]
SweepTimingWidget implemented show_125_list

6 years agoSweepTimingWidget removed Read Only support
Joel Holdsworth [Sat, 18 Jan 2014 22:43:56 +0000 (22:43 +0000)]
SweepTimingWidget removed Read Only support

6 years agoSet LIMIT_FRAMES to 1 if supported.
Martin Ling [Tue, 14 Jan 2014 20:59:08 +0000 (20:59 +0000)]
Set LIMIT_FRAMES to 1 if supported.

6 years agoUse SR_CONF_DEVICE_OPTIONS to decide if LIMIT_SAMPLES is supported.
Martin Ling [Tue, 14 Jan 2014 20:36:53 +0000 (20:36 +0000)]
Use SR_CONF_DEVICE_OPTIONS to decide if LIMIT_SAMPLES is supported.

6 years agoOnly attempt to set default sample count if supported.
Martin Ling [Tue, 14 Jan 2014 20:26:29 +0000 (20:26 +0000)]
Only attempt to set default sample count if supported.

6 years agoCommit sample count after setting default.
Martin Ling [Tue, 14 Jan 2014 20:17:50 +0000 (20:17 +0000)]
Commit sample count after setting default.

6 years agoWait until SDI is set before updating sweep timing widgets.
Martin Ling [Tue, 14 Jan 2014 20:12:26 +0000 (20:12 +0000)]
Wait until SDI is set before updating sweep timing widgets.

6 years agoNo longer need to set sample limit on session start.
Martin Ling [Tue, 14 Jan 2014 20:00:49 +0000 (20:00 +0000)]
No longer need to set sample limit on session start.

6 years agoShow sample count selector only if setting supported.
Martin Ling [Tue, 14 Jan 2014 19:59:49 +0000 (19:59 +0000)]
Show sample count selector only if setting supported.

6 years agoUse a SweepTimingWidget for sample count limit.
Martin Ling [Mon, 13 Jan 2014 01:17:56 +0000 (01:17 +0000)]
Use a SweepTimingWidget for sample count limit.

6 years agoCreated pv::widgets::SampleTimingWidget, and ported the SamplingBar to use it.
Joel Holdsworth [Mon, 30 Dec 2013 13:02:06 +0000 (14:02 +0100)]
Created pv::widgets::SampleTimingWidget, and ported the SamplingBar to use it.

This widget allows the user to edit a sample timing value either from
a list of options, or as an value with a min/max/step, or as read
only, or hidden.

6 years agoFeed analog data into separate deinterleaved analog data objects per channel
Joel Holdsworth [Sat, 18 Jan 2014 21:32:01 +0000 (21:32 +0000)]
Feed analog data into separate deinterleaved analog data objects per channel

6 years agoAdded AnalogSignal::analog_data accessor function
Joel Holdsworth [Sat, 18 Jan 2014 21:09:38 +0000 (21:09 +0000)]
Added AnalogSignal::analog_data accessor function

6 years agoLogicSignal: Tidyup boost references
Joel Holdsworth [Sat, 18 Jan 2014 21:07:04 +0000 (21:07 +0000)]
LogicSignal: Tidyup boost references

6 years agoSigSession: Added signal_from_probe
Joel Holdsworth [Sat, 18 Jan 2014 20:55:38 +0000 (20:55 +0000)]
SigSession: Added signal_from_probe

6 years agoSigSession: Tidied update_signals
Joel Holdsworth [Sat, 18 Jan 2014 16:04:07 +0000 (16:04 +0000)]
SigSession: Tidied update_signals

6 years agoRemoved duplicated source listing of wellarray.cpp
Joel Holdsworth [Tue, 14 Jan 2014 22:44:23 +0000 (22:44 +0000)]
Removed duplicated source listing of wellarray.cpp

6 years agoQWellArray: Removed QT_NO_MENU functionality
Joel Holdsworth [Sat, 18 Jan 2014 10:12:03 +0000 (10:12 +0000)]
QWellArray: Removed QT_NO_MENU functionality

This fixes bug #265

6 years agoQWellArray: Removed dead code
Joel Holdsworth [Sat, 18 Jan 2014 10:11:26 +0000 (10:11 +0000)]
QWellArray: Removed dead code

6 years agoQWellArray: removed unused destructor
Joel Holdsworth [Sat, 18 Jan 2014 10:10:35 +0000 (10:10 +0000)]
QWellArray: removed unused destructor

6 years agopv::view::View::set_zoom: Added doxygen comment
Joel Holdsworth [Fri, 17 Jan 2014 18:48:39 +0000 (18:48 +0000)]
pv::view::View::set_zoom: Added doxygen comment

6 years agopv::view::View::zoom_fit: clamp the scale between MaxScale and MinScale
Joel Holdsworth [Fri, 17 Jan 2014 18:48:08 +0000 (18:48 +0000)]
pv::view::View::zoom_fit: clamp the scale between MaxScale and MinScale

Fixes #278

6 years agopv::view::View::zoom: Removed duplicated scale clamping
Joel Holdsworth [Fri, 17 Jan 2014 18:47:17 +0000 (18:47 +0000)]
pv::view::View::zoom: Removed duplicated scale clamping

6 years agopv::view::View::get_time_extents: Assume samplerate is 1 if given an invalid value
Joel Holdsworth [Fri, 17 Jan 2014 18:41:31 +0000 (18:41 +0000)]
pv::view::View::get_time_extents: Assume samplerate is 1 if given an invalid value

Fixes #278

6 years agoAdded missing include
Joel Holdsworth [Tue, 14 Jan 2014 21:33:10 +0000 (21:33 +0000)]
Added missing include

6 years agodecode: Do not overflow the chunk buffer
Joel Holdsworth [Sun, 12 Jan 2014 20:58:20 +0000 (20:58 +0000)]
decode: Do not overflow the chunk buffer

This should resolve bug #225

6 years agoFixed missing includes and formward declarations hidden by cotire.
Joel Holdsworth [Sun, 12 Jan 2014 20:39:21 +0000 (20:39 +0000)]
Fixed missing includes and formward declarations hidden by cotire.

6 years agoRemoved QToolBar from DecoderGroupBox
Joel Holdsworth [Sun, 12 Jan 2014 20:12:40 +0000 (20:12 +0000)]
Removed QToolBar from DecoderGroupBox

6 years agoReplaced QToolBar in probes popup
Joel Holdsworth [Sun, 12 Jan 2014 19:54:14 +0000 (19:54 +0000)]
Replaced QToolBar in probes popup

6 years agoImplemented support for probe groups
Joel Holdsworth [Sun, 12 Jan 2014 19:43:02 +0000 (19:43 +0000)]
Implemented support for probe groups

6 years agoMinor style change to decoder heading
Joel Holdsworth [Sun, 12 Jan 2014 09:10:51 +0000 (09:10 +0000)]
Minor style change to decoder heading

6 years agoAdded probe group support to DeviceOptions binding
Joel Holdsworth [Sat, 11 Jan 2014 11:36:19 +0000 (11:36 +0000)]
Added probe group support to DeviceOptions binding

6 years agoStore DeviceOptions::_sdi as const
Joel Holdsworth [Sat, 11 Jan 2014 11:25:58 +0000 (11:25 +0000)]
Store DeviceOptions::_sdi as const

6 years agoHide the configure device button when the popup would be empty
Joel Holdsworth [Sat, 11 Jan 2014 10:11:53 +0000 (10:11 +0000)]
Hide the configure device button when the popup would be empty

This resolves bug #232.

6 years agoSmall tidy of pv::MainWindow::on_actionOpen_triggered
Joel Holdsworth [Sat, 11 Jan 2014 09:31:58 +0000 (09:31 +0000)]
Small tidy of pv::MainWindow::on_actionOpen_triggered

6 years agoAdded support for save
Joel Holdsworth [Thu, 9 Jan 2014 18:58:31 +0000 (18:58 +0000)]
Added support for save

6 years agoAdded SigSession::get_data()
Joel Holdsworth [Wed, 8 Jan 2014 20:31:50 +0000 (20:31 +0000)]
Added SigSession::get_data()

6 years agoRefactoring in View and SigSession
Joel Holdsworth [Thu, 2 Jan 2014 19:50:59 +0000 (19:50 +0000)]
Refactoring in View and SigSession

Removed SigSession::get_data
Removed duplicated view-extents code

6 years agoCMakeLists.txt: Fix typos, cosmetics, consistency fixes.
Uwe Hermann [Thu, 9 Jan 2014 00:16:52 +0000 (01:16 +0100)]
CMakeLists.txt: Fix typos, cosmetics, consistency fixes.

6 years agoFix SVG icons not being displayed on Windows.
Uwe Hermann [Wed, 8 Jan 2014 23:49:47 +0000 (00:49 +0100)]
Fix SVG icons not being displayed on Windows.

On Windows (where we use a static Qt) we need to include plugins
(in this case "qsvg" a.k.a. libqsvg.a from plugins/imageformats/),
otherwise SVGs (such as various icons in PulseView) cannot be displayed.
For this we need to use Q_IMPORT_PLUGIN(qsvg) in the code, pass the
QT_STATICPLUGIN flag to the compiler, and link against "-lqsvg".

This, in turn, requires that we also link against the similarly named QtSvg
component/lib (${QT_QTSVG_LIBRARY} a.k.a libQtSvg.a).

See also: https://qt-project.org/doc/qt-4.8/plugins-howto.html#static-plugins

This fixes bug #239.

6 years agonsis: Install zadig (used for driver switching).
Uwe Hermann [Sun, 5 Jan 2014 10:44:18 +0000 (11:44 +0100)]
nsis: Install zadig (used for driver switching).

6 years agonsis: Install libusb0.dll with the application.
Uwe Hermann [Sun, 5 Jan 2014 00:42:39 +0000 (01:42 +0100)]
nsis: Install libusb0.dll with the application.

This is half of the solution for bug #241.

6 years agoScan: Don't enable "OK" button if no device is found.
Ulf Lamping [Fri, 3 Jan 2014 21:59:36 +0000 (22:59 +0100)]
Scan: Don't enable "OK" button if no device is found.

Even when no devices were found after "Scan for Devices", a user could
click on the active "OK" button. This fixes the behaviour so that the
"OK" button only gets enabled when a device has actually been found.

This fixes bug #237.

6 years agomingw: Add the sigrok icon for pulseview.exe.
Uwe Hermann [Fri, 3 Jan 2014 15:28:02 +0000 (16:28 +0100)]
mingw: Add the sigrok icon for pulseview.exe.

Add an .rc file (needed for the Windows executable icon), and hook up
building/adding the respective object in CMakeLists.txt.

This closes bug #110.

6 years agonsis: Mention firmware files and PDs in the description.
Uwe Hermann [Thu, 2 Jan 2014 13:41:36 +0000 (14:41 +0100)]
nsis: Mention firmware files and PDs in the description.

6 years agonsis: Fix File/RMDir copy-paste error.
Uwe Hermann [Wed, 1 Jan 2014 19:44:16 +0000 (20:44 +0100)]
nsis: Fix File/RMDir copy-paste error.

6 years agonsis: Also put firmware files into the installer.
Uwe Hermann [Wed, 1 Jan 2014 19:06:24 +0000 (20:06 +0100)]
nsis: Also put firmware files into the installer.

6 years agonsis: Enable Python + decoders in the installer.
Uwe Hermann [Wed, 1 Jan 2014 18:16:37 +0000 (19:16 +0100)]
nsis: Enable Python + decoders in the installer.

6 years agoCMakeLists.txt: Fix copy-paste error (ENABLE_COTIRE).
Uwe Hermann [Wed, 1 Jan 2014 13:58:45 +0000 (14:58 +0100)]
CMakeLists.txt: Fix copy-paste error (ENABLE_COTIRE).

6 years agoCMakeLists.txt: Cosmetics, fix typos.
Uwe Hermann [Wed, 1 Jan 2014 13:58:17 +0000 (14:58 +0100)]
CMakeLists.txt: Cosmetics, fix typos.

6 years agoRemoved duplicated __STDC_LIMIT_MACROS define
Joel Holdsworth [Mon, 30 Dec 2013 15:06:13 +0000 (16:06 +0100)]
Removed duplicated __STDC_LIMIT_MACROS define

6 years agoReplaced using namespace with using class directives
Joel Holdsworth [Mon, 30 Dec 2013 15:05:37 +0000 (16:05 +0100)]
Replaced using namespace with using class directives

This will fix ambiguity issues caused by the arrival of C++11

6 years agoMake cotire optional disabled by default
Joel Holdsworth [Mon, 30 Dec 2013 13:34:54 +0000 (14:34 +0100)]
Make cotire optional disabled by default

6 years agoAdded code to handle different integer types in the Int property.
Joel Holdsworth [Sun, 29 Dec 2013 12:56:55 +0000 (13:56 +0100)]
Added code to handle different integer types in the Int property.

This fixes bug #203

6 years agoDisplay cursor popup time value correctly.
Joel Holdsworth [Sun, 29 Dec 2013 10:49:30 +0000 (11:49 +0100)]
Display cursor popup time value correctly.

This fixes Bug #229

6 years agoStop capture when device is changed
Joel Holdsworth [Sun, 29 Dec 2013 09:37:43 +0000 (10:37 +0100)]
Stop capture when device is changed

This resolves bug #223

6 years agoMade decode an optional feature disabled by default.
Joel Holdsworth [Sat, 28 Dec 2013 18:29:23 +0000 (19:29 +0100)]
Made decode an optional feature disabled by default.