summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2017-04-10Switch to using Qt's QAudioOutput for outputchinook_3.0.4chinook_3.0.3chinook/3.0.4chinook/3.0.33.0.43.0.3chinookScott Murray6-265/+189
The underlying issue in the hang reported in SPEC-455 is that due to the synchronous nature of the pa_simple_* PulseAudio API, the pa_simple_write call used blocks when a stream is corked . That prevents the tuner plugin's output thread from exiting when playback is stopped, resulting in the observed hang. After examining the available options, it seemed like switching to Qt's QAudioOutput class made sense since it allows using the asynchronous PulseAudio API easily, and like the QRadio class the tuner plugin implements, it is part of QtMultimedia itself. Note that the radio_output.* files have been removed as the code is no longer used, and a new pair of OutputBuffer source files have been added to contain the small class that is used to connect the RTL-SDR output to QAudioOutput. Bug-AGL: SPEC-455 Change-Id: I0d690143b9c70fdca24f9fbf3b016feef8ae627b Signed-off-by: Scott Murray <scott.murray@konsulko.com> (cherry picked from commit aeb67506173a7b8cef089fa725c3abe1f629dc67)
2017-01-02Merge "Add bandplans for EU, ITU-1, ITU-2"chinook_3.0.2chinook_3.0.1chinook/3.0.2chinook/3.0.13.0.23.0.1Jan-Simon Moeller1-1/+4
2017-01-02Add bandplans for EU, ITU-1, ITU-2chinook_3.0.0chinook/3.0.03.0.0Jan-Simon Möller1-1/+4
Change-Id: I01ee3d6609feddace6702fc3e0138370ccb4d270 Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
2017-01-02Add gitreview fileJan-Simon Möller1-0/+6
Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
2016-12-28Use 200 KHz frequency steps for North American FM band planScott Murray1-7/+14
Improved the FM band plan description scheme so it can include the frequency step, and set the North American band plan to use 200 KHz as the step size to match expected radio behavior. The Japan band plan is set to still use 100 KHz, as that seems to be accurate for the FM band in that locale. Beyond matching expectations of actual North American car radio behavior, the user benefit of this change is less button pressing and exposure to static or dead air in the higher level application. Change-Id: Ic3474ae8a8e96702efbcf1ea63703c7ea59d2dca Signed-off-by: Scott Murray <scott.murray@konsulko.com>
2016-12-27Fix hang when stoppingScott Murray1-7/+6
Fix hang on stop reported in SPEC-379. I missed adding some required manipulation of the "do_exit" variable when I cut up the original rtl_fm.c main(), add it so that stop and a subsequent start will work. Also moved the wideband frequency tweaking logic so that the frequency will not be tweaked twice on a start after a stop. Bug-AGL: SPEC-379 Change-Id: I84f8fec75bcdf9f41f5d2cf2c74dd9a43f7ca8bf Signed-off-by: Scott Murray <scott.murray@konsulko.com>
2016-12-23Notify state changedTasuku Suzuki1-0/+2
Change-Id: Ia862ed423cb6ef8ef7000907fa07462cc8f17ed2 Signed-off-by: Tasuku Suzuki <tasuku.suzuki@qt.io>
2016-12-23Switch to direct use of librtlsdr and PulseAudioScott Murray9-97/+2314
Substantial rework to replace the spawning of rtl_fm and aplay with direct usage of librtlsdr and PulseAudio in a multi-threaded model. This is required due to changes in AGL application execution that prevent spawned processes from exiting, resulting in the plugin hanging on frequency changes or stopping. The rework has been accomplished by refactoring the source of rtl_fm.c into a reusable form and connecting it to the RtlFmRadioTunerControl class used to implement the functionality exposed by the RtlFmRadioPlugin class. The idea for reusing the source code in rtl_fm.c in this way is inspired by the older qml_radio_plugin codebase, but a new refactor of rtl_fm.c was done to keep more of its filtering functionality and ensure behavior consistent with the previous implementation. The files radio_output.{h,cpp} are adapted from qml_radio_plugin with some additional modifications. Other changes include: - The files in the convenience subdirectory have been copied from the librtldr source tree to reduce the effort of importing rtl_fm.c. - The COPYING file containing the GPL license has been copied from the librtlsdr source tree to accompany rtl_fm.c and the convenience/* files. - The recently added AM band support has been removed as the USB DVB adapters are incapable of receiving AM without significant tweaking, and a single adapter would be unable to do both AM and FM at the same time. The plugin now explicitly reports that it only supports FM. - The list of known stations to act as an ersatz seeking implementation has been removed, as the updated higher-level QML application no longer exposes seeking. Adding this functionality back in would be straightforward if it becomes required again. There is also some code in rtl_fm.c that could possibly be adapted into a proper signal strength detection scheme in the future if that is desired. - A Qt QSettings file is used to store the FM band plan information to allow using the specific frequency ranges for North America versus Japan. The band plan can be changed by modifying the "fmbandplan" entry in the QSettings .conf file to either "US" or "JP". The location of the .conf file can be one of: $HOME/.config/AGL/qtmultimedia-rtlfm-radio-plugin.conf $HOME/.config/AGL.conf /etc/xdg/AGL/qtmultimedia-rtlfm-radio-plugin.conf /etc/xdg/AGL.conf Note that some debugging output has been left in place in the start and stop methods to facilitate debugging of the higher-level QML application. They will be removed once that is complete. Change-Id: I1d92c74eb24b24cb5416dd531b599645d1287295 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
2016-12-09add AM supportTasuku Suzuki1-11/+23
When ALS2016, this backend supported FM only, AM was never tested. Change-Id: If8365d24441cd2310d85071cb0893341b12ba920
2016-07-19initial commit for ALS2016Tasuku Suzuki9-0/+550
Change-Id: If170e059c9be053117e31afd5ae4b7cfa810aa1b
2016-07-10Initial empty repositoryJan-Simon Moeller0-0/+0