simoninns / DomesdayDuplicator

High-speed LaserDisc RF sampler
GNU General Public License v3.0
148 stars 21 forks source link

New feature: Inbound RF amplitude measurement #130

Closed TokugawaHeavyIndustries closed 1 year ago

TokugawaHeavyIndustries commented 2 years ago

New functionality implemented - inbound RF amplitude measurement

  1. New window in configuration dialog for UI settings (configuration file version is bumped to v3)
  2. Toggle text-based RMS label on/off
  3. Select type of visual chart/graph (currently implemented: none or waveform generated by QCustomPlot)
  4. Ability to measure amplitude in all capture formats (16 bit, 10 bit packed, 10 bit packed decimated)
  5. Extra math converting packed data to unpacked is disabled when no amplitude features are selected
  6. Added attribution for QCustomPlot in aboutdialog.ui
TokugawaHeavyIndustries commented 2 years ago

This requires qt6-multimedia-dev. Currently testing qt5. QtGraph is unused and will be removed soon

JonasCz commented 1 year ago

For any other C++ / Cmake newbies like me, who wanted to try this feature, but was struggling to get it to compile, you need to modify the file: /Linux-Application/DomesdayDuplicator/CMakeLists.txt

Add amplitudemeasurement.cpp & qcustomplot.cpp to the list under set(DomesdayDuplicator_SOURCES, and add Qt6::Multimedia under target_link_libraries(DomesdayDuplicator PRIVATE

I also changed line in /Linux-Application/CMakeLists.txt to find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Gui Widgets SerialPort Multimedia) to add the Multimedia package. As per above, qt6-multimedia-dev is needed.

TokugawaHeavyIndustries commented 1 year ago

Quick note that the following additional dependencies are needed on Ubuntu 22.04 cmake: build-essential g++

TokugawaHeavyIndustries commented 1 year ago

Updated the workflow to include needed dependencies (qt6-multimedia-dev) and to remove Qt5 checks. Note that the method used to process the inbound data uses QAudioSource which does not exist in Qt5, so this release will require Qt6 and cmake.