From c2a37e762250df25933cce5be749385f79974c42 Mon Sep 17 00:00:00 2001 From: "Charles J. Cliffe" Date: Mon, 27 Oct 2014 20:05:40 -0400 Subject: [PATCH] Initial experiment /w wxWidgets opengl view and sdr sampling. Includes working rtl-sdr sampling thread test. --- CMakeLists.txt | 81 +++ cmake_build/.gitignore | 3 + external/rtl-sdr-release/AUTHORS | 4 + external/rtl-sdr-release/COPYING | 339 ++++++++++++ external/rtl-sdr-release/COPYING.libusbx | 504 ++++++++++++++++++ external/rtl-sdr-release/README | 6 + external/rtl-sdr-release/README.windows.txt | 10 + external/rtl-sdr-release/rtl-sdr.h | 377 +++++++++++++ external/rtl-sdr-release/rtl-sdr_export.h | 47 ++ .../x32/convenience_static.lib | Bin 0 -> 15110 bytes external/rtl-sdr-release/x32/libusb-1.0.dll | Bin 0 -> 68608 bytes external/rtl-sdr-release/x32/rtlsdr.dll | Bin 0 -> 44032 bytes external/rtl-sdr-release/x32/rtlsdr.lib | Bin 0 -> 9540 bytes .../rtl-sdr-release/x32/rtlsdr_static.lib | Bin 0 -> 102752 bytes .../x64/convenience_static.lib | Bin 0 -> 21230 bytes external/rtl-sdr-release/x64/libusb-1.0.dll | Bin 0 -> 87552 bytes external/rtl-sdr-release/x64/rtlsdr.dll | Bin 0 -> 49152 bytes external/rtl-sdr-release/x64/rtlsdr.lib | Bin 0 -> 9370 bytes .../rtl-sdr-release/x64/rtlsdr_static.lib | Bin 0 -> 153874 bytes src/CubicSDR.cpp | 453 ++++++++++++++++ src/CubicSDR.h | 73 +++ src/SDRThread.cpp | 237 ++++++++ src/SDRThread.h | 29 + 23 files changed, 2163 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 cmake_build/.gitignore create mode 100644 external/rtl-sdr-release/AUTHORS create mode 100644 external/rtl-sdr-release/COPYING create mode 100644 external/rtl-sdr-release/COPYING.libusbx create mode 100644 external/rtl-sdr-release/README create mode 100644 external/rtl-sdr-release/README.windows.txt create mode 100644 external/rtl-sdr-release/rtl-sdr.h create mode 100644 external/rtl-sdr-release/rtl-sdr_export.h create mode 100644 external/rtl-sdr-release/x32/convenience_static.lib create mode 100644 external/rtl-sdr-release/x32/libusb-1.0.dll create mode 100644 external/rtl-sdr-release/x32/rtlsdr.dll create mode 100644 external/rtl-sdr-release/x32/rtlsdr.lib create mode 100644 external/rtl-sdr-release/x32/rtlsdr_static.lib create mode 100644 external/rtl-sdr-release/x64/convenience_static.lib create mode 100644 external/rtl-sdr-release/x64/libusb-1.0.dll create mode 100644 external/rtl-sdr-release/x64/rtlsdr.dll create mode 100644 external/rtl-sdr-release/x64/rtlsdr.lib create mode 100644 external/rtl-sdr-release/x64/rtlsdr_static.lib create mode 100644 src/CubicSDR.cpp create mode 100644 src/CubicSDR.h create mode 100644 src/SDRThread.cpp create mode 100644 src/SDRThread.h diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..be120c2 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,81 @@ +cmake_minimum_required (VERSION 2.8) + +macro(configure_files srcDir destDir) + message(STATUS "Configuring directory ${destDir}") + make_directory(${destDir}) + + file(GLOB templateFiles RELATIVE ${srcDir} ${srcDir}/*) + foreach(templateFile ${templateFiles}) + set(srcTemplatePath ${srcDir}/${templateFile}) + if(NOT IS_DIRECTORY ${srcTemplatePath}) +# message(STATUS "Configuring file ${templateFile}") + configure_file( + ${srcTemplatePath} + ${destDir}/${templateFile} + COPYONLY) + endif(NOT IS_DIRECTORY ${srcTemplatePath}) + endforeach(templateFile) +endmacro(configure_files) + + +macro(configure_files_recurse srcDir destDir) + message(STATUS "Configuring directory ${destDir}") + make_directory(${destDir}) + + file(GLOB_RECURSE templateFiles RELATIVE ${srcDir} ${srcDir}/*) + foreach(templateFile ${templateFiles}) + set(srcTemplatePath ${srcDir}/${templateFile}) + if(NOT IS_DIRECTORY ${srcTemplatePath}) +# message(STATUS "Configuring file ${templateFile}") + configure_file( + ${srcTemplatePath} + ${destDir}/${templateFile} + COPYONLY) + endif(NOT IS_DIRECTORY ${srcTemplatePath}) + endforeach(templateFile) +endmacro(configure_files_recurse) + +project (CubicSDR) + +SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) +SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_BINARY_DIR}) +SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}) + +#add_subdirectory(${PROJECT_SOURCE_DIR}/glfw-3.0.3 ${PROJECT_BINARY_DIR}/glfw/) +#include_directories(${PROJECT_SOURCE_DIR}/glfw-3.0.3/include) +#include_directories ( ${PROJECT_SOURCE_DIR}/../CubicVR-2/build/include ) +#link_directories ( ${PROJECT_SOURCE_DIR}/../CubicVR-2/build/lib ) + +find_package(OpenGL REQUIRED) + +set(wxWidgets_CONFIGURATION mswu) +find_package(wxWidgets COMPONENTS gl core base REQUIRED) +include(${wxWidgets_USE_FILE}) + +include_directories ( ${PROJECT_SOURCE_DIR}/../CubicVR-2/build/include ) +link_directories ( ${PROJECT_SOURCE_DIR}/../CubicVR-2/build/lib ${OPENGL_INCLUDE_DIR}) + +include_directories ( ${PROJECT_SOURCE_DIR}/external/rtl-sdr-release ) +link_directories ( ${PROJECT_SOURCE_DIR}/external/rtl-sdr-release/x32 ) + +SET (cubicsdr_sources + src/CubicSDR.cpp + src/SDRThread.cpp +) + +SET (cubicsdr_headers + src/CubicSDR.h + src/SDRThread.h +) +#configure_files(${PROJECT_SOURCE_DIR}/shaders ${PROJECT_BINARY_DIR}/shaders COPYONLY) +#configure_files(${PROJECT_SOURCE_DIR}/png ${PROJECT_BINARY_DIR}/png COPYONLY) + +add_executable(CubicSDR ${cubicsdr_sources} ${cubicsdr_headers}) + +target_link_libraries(CubicSDR cubicvr2 rtlsdr ${wxWidgets_LIBRARIES} ${OPENGL_LIBRARIES}) +# cubicvr2 glfw ${GLFW_LIBRARIES} ${OPENAL_LIBRARY} + + + + + diff --git a/cmake_build/.gitignore b/cmake_build/.gitignore new file mode 100644 index 0000000..1e449b9 --- /dev/null +++ b/cmake_build/.gitignore @@ -0,0 +1,3 @@ +[^.]* +.project +.cproject diff --git a/external/rtl-sdr-release/AUTHORS b/external/rtl-sdr-release/AUTHORS new file mode 100644 index 0000000..36da22f --- /dev/null +++ b/external/rtl-sdr-release/AUTHORS @@ -0,0 +1,4 @@ +Steve Markgraf +Dimitri Stolnikov +Hoernchen +Kyle Keen diff --git a/external/rtl-sdr-release/COPYING b/external/rtl-sdr-release/COPYING new file mode 100644 index 0000000..d511905 --- /dev/null +++ b/external/rtl-sdr-release/COPYING @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/external/rtl-sdr-release/COPYING.libusbx b/external/rtl-sdr-release/COPYING.libusbx new file mode 100644 index 0000000..5ab7695 --- /dev/null +++ b/external/rtl-sdr-release/COPYING.libusbx @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/external/rtl-sdr-release/README b/external/rtl-sdr-release/README new file mode 100644 index 0000000..7f04203 --- /dev/null +++ b/external/rtl-sdr-release/README @@ -0,0 +1,6 @@ +rtl-sdr +turns your Realtek RTL2832 based DVB dongle into a SDR receiver +====================================================================== + +For more information see: +http://sdr.osmocom.org/trac/wiki/rtl-sdr diff --git a/external/rtl-sdr-release/README.windows.txt b/external/rtl-sdr-release/README.windows.txt new file mode 100644 index 0000000..3e0dd4b --- /dev/null +++ b/external/rtl-sdr-release/README.windows.txt @@ -0,0 +1,10 @@ +The Windows build is using +https://github.com/libusbx/libusbx 33ba1231a1b07425eaa83935f84b2e4b7f904f35 +and +http://sources.redhat.com/pthreads-win32/ cvs +See the corresponding COPYING* files for the license text. + +You might need to grab the runtime from +http://www.microsoft.com/en-us/download/details.aspx?id=8328 +or +http://www.microsoft.com/en-us/download/details.aspx?id=13523 \ No newline at end of file diff --git a/external/rtl-sdr-release/rtl-sdr.h b/external/rtl-sdr-release/rtl-sdr.h new file mode 100644 index 0000000..a07fc60 --- /dev/null +++ b/external/rtl-sdr-release/rtl-sdr.h @@ -0,0 +1,377 @@ +/* + * rtl-sdr, turns your Realtek RTL2832 based DVB dongle into a SDR receiver + * Copyright (C) 2012-2013 by Steve Markgraf + * Copyright (C) 2012 by Dimitri Stolnikov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef __RTL_SDR_H +#define __RTL_SDR_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +typedef struct rtlsdr_dev rtlsdr_dev_t; + +RTLSDR_API uint32_t rtlsdr_get_device_count(void); + +RTLSDR_API const char* rtlsdr_get_device_name(uint32_t index); + +/*! + * Get USB device strings. + * + * NOTE: The string arguments must provide space for up to 256 bytes. + * + * \param index the device index + * \param manufact manufacturer name, may be NULL + * \param product product name, may be NULL + * \param serial serial number, may be NULL + * \return 0 on success + */ +RTLSDR_API int rtlsdr_get_device_usb_strings(uint32_t index, + char *manufact, + char *product, + char *serial); + +/*! + * Get device index by USB serial string descriptor. + * + * \param serial serial string of the device + * \return device index of first device where the name matched + * \return -1 if name is NULL + * \return -2 if no devices were found at all + * \return -3 if devices were found, but none with matching name + */ +RTLSDR_API int rtlsdr_get_index_by_serial(const char *serial); + +RTLSDR_API int rtlsdr_open(rtlsdr_dev_t **dev, uint32_t index); + +RTLSDR_API int rtlsdr_close(rtlsdr_dev_t *dev); + +/* configuration functions */ + +/*! + * Set crystal oscillator frequencies used for the RTL2832 and the tuner IC. + * + * Usually both ICs use the same clock. Changing the clock may make sense if + * you are applying an external clock to the tuner or to compensate the + * frequency (and samplerate) error caused by the original (cheap) crystal. + * + * NOTE: Call this function only if you fully understand the implications. + * + * \param dev the device handle given by rtlsdr_open() + * \param rtl_freq frequency value used to clock the RTL2832 in Hz + * \param tuner_freq frequency value used to clock the tuner IC in Hz + * \return 0 on success + */ +RTLSDR_API int rtlsdr_set_xtal_freq(rtlsdr_dev_t *dev, uint32_t rtl_freq, + uint32_t tuner_freq); + +/*! + * Get crystal oscillator frequencies used for the RTL2832 and the tuner IC. + * + * Usually both ICs use the same clock. + * + * \param dev the device handle given by rtlsdr_open() + * \param rtl_freq frequency value used to clock the RTL2832 in Hz + * \param tuner_freq frequency value used to clock the tuner IC in Hz + * \return 0 on success + */ +RTLSDR_API int rtlsdr_get_xtal_freq(rtlsdr_dev_t *dev, uint32_t *rtl_freq, + uint32_t *tuner_freq); + +/*! + * Get USB device strings. + * + * NOTE: The string arguments must provide space for up to 256 bytes. + * + * \param dev the device handle given by rtlsdr_open() + * \param manufact manufacturer name, may be NULL + * \param product product name, may be NULL + * \param serial serial number, may be NULL + * \return 0 on success + */ +RTLSDR_API int rtlsdr_get_usb_strings(rtlsdr_dev_t *dev, char *manufact, + char *product, char *serial); + +/*! + * Write the device EEPROM + * + * \param dev the device handle given by rtlsdr_open() + * \param data buffer of data to be written + * \param offset address where the data should be written + * \param len length of the data + * \return 0 on success + * \return -1 if device handle is invalid + * \return -2 if EEPROM size is exceeded + * \return -3 if no EEPROM was found + */ + +RTLSDR_API int rtlsdr_write_eeprom(rtlsdr_dev_t *dev, uint8_t *data, + uint8_t offset, uint16_t len); + +/*! + * Read the device EEPROM + * + * \param dev the device handle given by rtlsdr_open() + * \param data buffer where the data should be written + * \param offset address where the data should be read from + * \param len length of the data + * \return 0 on success + * \return -1 if device handle is invalid + * \return -2 if EEPROM size is exceeded + * \return -3 if no EEPROM was found + */ + +RTLSDR_API int rtlsdr_read_eeprom(rtlsdr_dev_t *dev, uint8_t *data, + uint8_t offset, uint16_t len); + +RTLSDR_API int rtlsdr_set_center_freq(rtlsdr_dev_t *dev, uint32_t freq); + +/*! + * Get actual frequency the device is tuned to. + * + * \param dev the device handle given by rtlsdr_open() + * \return 0 on error, frequency in Hz otherwise + */ +RTLSDR_API uint32_t rtlsdr_get_center_freq(rtlsdr_dev_t *dev); + +/*! + * Set the frequency correction value for the device. + * + * \param dev the device handle given by rtlsdr_open() + * \param ppm correction value in parts per million (ppm) + * \return 0 on success + */ +RTLSDR_API int rtlsdr_set_freq_correction(rtlsdr_dev_t *dev, int ppm); + +/*! + * Get actual frequency correction value of the device. + * + * \param dev the device handle given by rtlsdr_open() + * \return correction value in parts per million (ppm) + */ +RTLSDR_API int rtlsdr_get_freq_correction(rtlsdr_dev_t *dev); + +enum rtlsdr_tuner { + RTLSDR_TUNER_UNKNOWN = 0, + RTLSDR_TUNER_E4000, + RTLSDR_TUNER_FC0012, + RTLSDR_TUNER_FC0013, + RTLSDR_TUNER_FC2580, + RTLSDR_TUNER_R820T, + RTLSDR_TUNER_R828D +}; + +/*! + * Get the tuner type. + * + * \param dev the device handle given by rtlsdr_open() + * \return RTLSDR_TUNER_UNKNOWN on error, tuner type otherwise + */ +RTLSDR_API enum rtlsdr_tuner rtlsdr_get_tuner_type(rtlsdr_dev_t *dev); + +/*! + * Get a list of gains supported by the tuner. + * + * NOTE: The gains argument must be preallocated by the caller. If NULL is + * being given instead, the number of available gain values will be returned. + * + * \param dev the device handle given by rtlsdr_open() + * \param gains array of gain values. In tenths of a dB, 115 means 11.5 dB. + * \return <= 0 on error, number of available (returned) gain values otherwise + */ +RTLSDR_API int rtlsdr_get_tuner_gains(rtlsdr_dev_t *dev, int *gains); + +/*! + * Set the gain for the device. + * Manual gain mode must be enabled for this to work. + * + * Valid gain values (in tenths of a dB) for the E4000 tuner: + * -10, 15, 40, 65, 90, 115, 140, 165, 190, + * 215, 240, 290, 340, 420, 430, 450, 470, 490 + * + * Valid gain values may be queried with \ref rtlsdr_get_tuner_gains function. + * + * \param dev the device handle given by rtlsdr_open() + * \param gain in tenths of a dB, 115 means 11.5 dB. + * \return 0 on success + */ +RTLSDR_API int rtlsdr_set_tuner_gain(rtlsdr_dev_t *dev, int gain); + +/*! + * Get actual gain the device is configured to. + * + * \param dev the device handle given by rtlsdr_open() + * \return 0 on error, gain in tenths of a dB, 115 means 11.5 dB. + */ +RTLSDR_API int rtlsdr_get_tuner_gain(rtlsdr_dev_t *dev); + +/*! + * Set the intermediate frequency gain for the device. + * + * \param dev the device handle given by rtlsdr_open() + * \param stage intermediate frequency gain stage number (1 to 6 for E4000) + * \param gain in tenths of a dB, -30 means -3.0 dB. + * \return 0 on success + */ +RTLSDR_API int rtlsdr_set_tuner_if_gain(rtlsdr_dev_t *dev, int stage, int gain); + +/*! + * Set the gain mode (automatic/manual) for the device. + * Manual gain mode must be enabled for the gain setter function to work. + * + * \param dev the device handle given by rtlsdr_open() + * \param manual gain mode, 1 means manual gain mode shall be enabled. + * \return 0 on success + */ +RTLSDR_API int rtlsdr_set_tuner_gain_mode(rtlsdr_dev_t *dev, int manual); + +/*! + * Set the sample rate for the device, also selects the baseband filters + * according to the requested sample rate for tuners where this is possible. + * + * \param dev the device handle given by rtlsdr_open() + * \param samp_rate the sample rate to be set, possible values are: + * 225001 - 300000 Hz + * 900001 - 3200000 Hz + * sample loss is to be expected for rates > 2400000 + * \return 0 on success, -EINVAL on invalid rate + */ +RTLSDR_API int rtlsdr_set_sample_rate(rtlsdr_dev_t *dev, uint32_t rate); + +/*! + * Get actual sample rate the device is configured to. + * + * \param dev the device handle given by rtlsdr_open() + * \return 0 on error, sample rate in Hz otherwise + */ +RTLSDR_API uint32_t rtlsdr_get_sample_rate(rtlsdr_dev_t *dev); + +/*! + * Enable test mode that returns an 8 bit counter instead of the samples. + * The counter is generated inside the RTL2832. + * + * \param dev the device handle given by rtlsdr_open() + * \param test mode, 1 means enabled, 0 disabled + * \return 0 on success + */ +RTLSDR_API int rtlsdr_set_testmode(rtlsdr_dev_t *dev, int on); + +/*! + * Enable or disable the internal digital AGC of the RTL2832. + * + * \param dev the device handle given by rtlsdr_open() + * \param digital AGC mode, 1 means enabled, 0 disabled + * \return 0 on success + */ +RTLSDR_API int rtlsdr_set_agc_mode(rtlsdr_dev_t *dev, int on); + +/*! + * Enable or disable the direct sampling mode. When enabled, the IF mode + * of the RTL2832 is activated, and rtlsdr_set_center_freq() will control + * the IF-frequency of the DDC, which can be used to tune from 0 to 28.8 MHz + * (xtal frequency of the RTL2832). + * + * \param dev the device handle given by rtlsdr_open() + * \param on 0 means disabled, 1 I-ADC input enabled, 2 Q-ADC input enabled + * \return 0 on success + */ +RTLSDR_API int rtlsdr_set_direct_sampling(rtlsdr_dev_t *dev, int on); + +/*! + * Get state of the direct sampling mode + * + * \param dev the device handle given by rtlsdr_open() + * \return -1 on error, 0 means disabled, 1 I-ADC input enabled + * 2 Q-ADC input enabled + */ +RTLSDR_API int rtlsdr_get_direct_sampling(rtlsdr_dev_t *dev); + +/*! + * Enable or disable offset tuning for zero-IF tuners, which allows to avoid + * problems caused by the DC offset of the ADCs and 1/f noise. + * + * \param dev the device handle given by rtlsdr_open() + * \param on 0 means disabled, 1 enabled + * \return 0 on success + */ +RTLSDR_API int rtlsdr_set_offset_tuning(rtlsdr_dev_t *dev, int on); + +/*! + * Get state of the offset tuning mode + * + * \param dev the device handle given by rtlsdr_open() + * \return -1 on error, 0 means disabled, 1 enabled + */ +RTLSDR_API int rtlsdr_get_offset_tuning(rtlsdr_dev_t *dev); + +/* streaming functions */ + +RTLSDR_API int rtlsdr_reset_buffer(rtlsdr_dev_t *dev); + +RTLSDR_API int rtlsdr_read_sync(rtlsdr_dev_t *dev, void *buf, int len, int *n_read); + +typedef void(*rtlsdr_read_async_cb_t)(unsigned char *buf, uint32_t len, void *ctx); + +/*! + * Read samples from the device asynchronously. This function will block until + * it is being canceled using rtlsdr_cancel_async() + * + * NOTE: This function is deprecated and is subject for removal. + * + * \param dev the device handle given by rtlsdr_open() + * \param cb callback function to return received samples + * \param ctx user specific context to pass via the callback function + * \return 0 on success + */ +RTLSDR_API int rtlsdr_wait_async(rtlsdr_dev_t *dev, rtlsdr_read_async_cb_t cb, void *ctx); + +/*! + * Read samples from the device asynchronously. This function will block until + * it is being canceled using rtlsdr_cancel_async() + * + * \param dev the device handle given by rtlsdr_open() + * \param cb callback function to return received samples + * \param ctx user specific context to pass via the callback function + * \param buf_num optional buffer count, buf_num * buf_len = overall buffer size + * set to 0 for default buffer count (32) + * \param buf_len optional buffer length, must be multiple of 512, + * set to 0 for default buffer length (16 * 32 * 512) + * \return 0 on success + */ +RTLSDR_API int rtlsdr_read_async(rtlsdr_dev_t *dev, + rtlsdr_read_async_cb_t cb, + void *ctx, + uint32_t buf_num, + uint32_t buf_len); + +/*! + * Cancel all pending asynchronous operations on the device. + * + * \param dev the device handle given by rtlsdr_open() + * \return 0 on success + */ +RTLSDR_API int rtlsdr_cancel_async(rtlsdr_dev_t *dev); + +#ifdef __cplusplus +} +#endif + +#endif /* __RTL_SDR_H */ diff --git a/external/rtl-sdr-release/rtl-sdr_export.h b/external/rtl-sdr-release/rtl-sdr_export.h new file mode 100644 index 0000000..69e178d --- /dev/null +++ b/external/rtl-sdr-release/rtl-sdr_export.h @@ -0,0 +1,47 @@ +/* + * rtl-sdr, turns your Realtek RTL2832 based DVB dongle into a SDR receiver + * Copyright (C) 2012 by Hoernchen + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef RTLSDR_EXPORT_H +#define RTLSDR_EXPORT_H + +#if defined __GNUC__ +# if __GNUC__ >= 4 +# define __SDR_EXPORT __attribute__((visibility("default"))) +# define __SDR_IMPORT __attribute__((visibility("default"))) +# else +# define __SDR_EXPORT +# define __SDR_IMPORT +# endif +#elif _MSC_VER +# define __SDR_EXPORT __declspec(dllexport) +# define __SDR_IMPORT __declspec(dllimport) +#else +# define __SDR_EXPORT +# define __SDR_IMPORT +#endif + +#ifndef rtlsdr_STATIC +# ifdef rtlsdr_EXPORTS +# define RTLSDR_API __SDR_EXPORT +# else +# define RTLSDR_API __SDR_IMPORT +# endif +#else +#define RTLSDR_API +#endif +#endif /* RTLSDR_EXPORT_H */ diff --git a/external/rtl-sdr-release/x32/convenience_static.lib b/external/rtl-sdr-release/x32/convenience_static.lib new file mode 100644 index 0000000000000000000000000000000000000000..859a8fb623b21491d501b181a6ef8c407cad0f47 GIT binary patch literal 15110 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 Uiarz$G1bW09SS}q3)C9+-*PIWkN^Mx literal 0 HcmV?d00001 diff --git a/external/rtl-sdr-release/x32/libusb-1.0.dll b/external/rtl-sdr-release/x32/libusb-1.0.dll new file mode 100644 index 0000000000000000000000000000000000000000..bce94fc5c90de637bcfd1ce437f5e15b730b5a53 GIT binary patch literal 68608 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

h)y9dV1yr?S|SqA5kPi!%L)_ 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 literal 0 HcmV?d00001 diff --git a/external/rtl-sdr-release/x32/rtlsdr_static.lib b/external/rtl-sdr-release/x32/rtlsdr_static.lib new file mode 100644 index 0000000000000000000000000000000000000000..5505ea872a1efaca7270536618938f1ac3ba90a8 GIT binary patch literal 102752 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%0DU@6&HI@Kg2F0&~KXSm#G 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 VS1DZTDfN~HO0?nQ%&^Ub_@Z|2R| zqw__tbp5NgFLV4ib$o6zKRY#*&vX8y{G6Vgoffax+5q4?fc6&v9q#}-j{pqL3mSL^ zKs13oqM=Pe-B$pJdLIZHxQu#8{jUX$z5yWW_XUl;1PEvupGf^Jf<|wn9@6l0LA^(@ zJ*2+7g1V7U)Kif37@tUey@I;l0uT*f6*PpHL|vPLMsOTNxd}ldkMJ8QcTdpZLmVg4 zP^X~Leb^tQ@h6fN@VVePr_WwEzqsU_`u5^Ci>EIvonLf3zuG8!;5g?lEi9OF_(>=T z@zVE~&Yf{iom@JJ29>pSY3;1KzH`$rR-F~k{Q;x}XBzq&jb*3ddzIR1L$y%Z%;tty z@mbPm4ahXNjT4lwdKA13}z+y*6 z&RV@3xgl;c7BO4uPoucDUUeO>=tp)so7n`7x((j|3VDWhakXT0E8;P20xnl521K_o zphGVti45EN%8DGbX2}JHUD^GyQgSi=HflZtRQWcmT5*kePBs>>Z8mCVDk&~aRjJWJ zrB-%tI?K15hU-;|Rkgdih}o8^^+wcB@xkPtORihqSXptsuu;a-v~f*n+^Usg)sVsT zO2t~qtvW?jmGPK1^*~)Fq-%7xVWTe*ik&VpY%TFdn7YWYbKY@A)vmQPjKJhwo@p=mB_) z)QjJ5y8y1D{0+9ZiSP3xSg+&&9^vyIJ|7}xC(8C=J5R;|7Lc&yfgR8SgU|=Np$od9 z2M)p~&xG8P4Vr{Vf zI)lxmJ=+o%0a|6%1Y|7*OYoLgM4M^q;+C3mgrAzuq>#D>l0r&ql2}bCV+hKQo+4|Q z1)VSqN)*E|)gf^XGP~4;gK1hTwLlOo%bGrAx!eYrg!swZHc6~eL&DT)C56;!C54n( zBe8YXNa$ND6We?SRzX#1DV$;jYfWaEIopEE%5S-ou+$BC>NZXRt2$ol5c>lqjiqQ& zV^M9)UX$rFr&#H!sEGJYJJ11 zCaFXL6D5zrOPD=U)e}asusEEo61_@-1g{c1N(`lW)6;>bmJEhLmNOjSfkKe z41zr<)z{Xss{{9ch4=4O3seQ_TML9EE&v3*y&iIcu?ZZhGebIP1d&cY<`5r?tmsFr z1I$L>gmnSGveY)sijwJ>IeF_vQPL7b$sgD!(N}<^C@Cu=pjRbIj)x+OlHbD*`J^bJ zcAGu>TbWZVaM90}3n?WGx0YMevong`FHTk5X>g)p~fLO$j2 zU*U&*l3ugDyA{vk@xgkd7iZqq{FnEAx3xG+>_&o*vb(TN~CPw%%_ZUXCkIj zeq|cv2}`^j#!=GwRLoOwmz;2?6wl)JBPTzb9I2ln^2Zu-V%3;wylJSrIBIfz)O6I{ z95uPt&4zj+*~54>g4F|?+oXao8)ixbw{c9fmdu8DJb9FO8H2YhY?MYx8USv4?@G(k zJvPMfVA1q3?oC2e&MeIz<35gPo`IZ^Mcr%u`!An1^e51Hg zPI1{h8I_0HxTu~w5aSpp#B6B!@W`T};q@inFh-*?PoLR*Xj#LlqB*FcDF@q3SZS3_ zr;0_#O!n7@jGnaYj8sW=#dw6KoyRlcrL3IY9M3%KXY;6K_Gkz0;fTrC2u(-r<*3cv zfm8OvK92go?1lXtvsrs#O3V&$MD5BZW6WCCP}+M3HN5EJN4-th{@$AsvqLsS^^eBc zVm2juhLceFEmk(nl>KmoV>V|$46iY?orCtNT#RSjy=9D?lt>*_(9HiY5qSRrCU>bA literal 0 HcmV?d00001 diff --git a/external/rtl-sdr-release/x64/rtlsdr_static.lib b/external/rtl-sdr-release/x64/rtlsdr_static.lib new file mode 100644 index 0000000000000000000000000000000000000000..ec21a7c072b998d3849570be0cfe346c98f88768 GIT binary patch literal 153874 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

}me)}WI;CphxTI531W~f$=v-Z*J^d9d%=5X7! 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

tW|_f$?2r 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 1 && num <= 6, wxT("invalid dice index")); + + const int dot = size / 16; // radius of a single dot + const int gap = 5 * size / 32; // gap between dots + + wxBitmap bmp(size, size); + wxMemoryDC dc; + dc.SelectObject(bmp); + dc.SetBackground(*wxWHITE_BRUSH); + dc.Clear(); + dc.SetBrush(*wxBLACK_BRUSH); + + // the upper left and lower right points + if (num != 1) { + dc.DrawCircle(gap + dot, gap + dot, dot); + dc.DrawCircle(size - gap - dot, size - gap - dot, dot); + } + + // draw the central point for odd dices + if (num % 2) { + dc.DrawCircle(size / 2, size / 2, dot); + } + + // the upper right and lower left points + if (num > 3) { + dc.DrawCircle(size - gap - dot, gap + dot, dot); + dc.DrawCircle(gap + dot, size - gap - dot, dot); + } + + // finally those 2 are only for the last dice + if (num == 6) { + dc.DrawCircle(gap + dot, size / 2, dot); + dc.DrawCircle(size - gap - dot, size / 2, dot); + } + + dc.SelectObject(wxNullBitmap); + + return bmp.ConvertToImage(); +} + +// ============================================================================ +// implementation +// ============================================================================ + +// ---------------------------------------------------------------------------- +// PrimaryGLContext +// ---------------------------------------------------------------------------- + +PrimaryGLContext::PrimaryGLContext(wxGLCanvas *canvas) : + wxGLContext(canvas) { + SetCurrent(*canvas); + + // set up the parameters we want to use + glEnable(GL_CULL_FACE); + glEnable(GL_DEPTH_TEST); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glEnable(GL_TEXTURE_2D); + + // add slightly more light, the default lighting is rather dark + GLfloat ambient[] = { 0.5, 0.5, 0.5, 0.5 }; + glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); + + // set viewing projection + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustum(-0.5f, 0.5f, -0.5f, 0.5f, 1.0f, 3.0f); + + // create the textures to use for cube sides: they will be reused by all + // canvases (which is probably not critical in the case of simple textures + // we use here but could be really important for a real application where + // each texture could take many megabytes) + glGenTextures(WXSIZEOF(m_textures), m_textures); + + for (unsigned i = 0; i < WXSIZEOF(m_textures); i++) { + glBindTexture(GL_TEXTURE_2D, m_textures[i]); + + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + + const wxImage img(DrawDice(256, i + 1)); + + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, img.GetWidth(), img.GetHeight(), 0, GL_RGB, GL_UNSIGNED_BYTE, img.GetData()); + } + + CheckGLError(); +} + +void PrimaryGLContext::DrawRotatedCube(float xangle, float yangle) { + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0f, 0.0f, -2.0f); + glRotatef(xangle, 1.0f, 0.0f, 0.0f); + glRotatef(yangle, 0.0f, 1.0f, 0.0f); + + // draw six faces of a cube of size 1 centered at (0, 0, 0) + glBindTexture(GL_TEXTURE_2D, m_textures[0]); + glBegin(GL_QUADS); + glNormal3f(0.0f, 0.0f, 1.0f); + glTexCoord2f(0, 0); + glVertex3f(0.5f, 0.5f, 0.5f); + glTexCoord2f(1, 0); + glVertex3f(-0.5f, 0.5f, 0.5f); + glTexCoord2f(1, 1); + glVertex3f(-0.5f, -0.5f, 0.5f); + glTexCoord2f(0, 1); + glVertex3f(0.5f, -0.5f, 0.5f); + glEnd(); + + glBindTexture(GL_TEXTURE_2D, m_textures[1]); + glBegin(GL_QUADS); + glNormal3f(0.0f, 0.0f, -1.0f); + glTexCoord2f(0, 0); + glVertex3f(-0.5f, -0.5f, -0.5f); + glTexCoord2f(1, 0); + glVertex3f(-0.5f, 0.5f, -0.5f); + glTexCoord2f(1, 1); + glVertex3f(0.5f, 0.5f, -0.5f); + glTexCoord2f(0, 1); + glVertex3f(0.5f, -0.5f, -0.5f); + glEnd(); + + glBindTexture(GL_TEXTURE_2D, m_textures[2]); + glBegin(GL_QUADS); + glNormal3f(0.0f, 1.0f, 0.0f); + glTexCoord2f(0, 0); + glVertex3f(0.5f, 0.5f, 0.5f); + glTexCoord2f(1, 0); + glVertex3f(0.5f, 0.5f, -0.5f); + glTexCoord2f(1, 1); + glVertex3f(-0.5f, 0.5f, -0.5f); + glTexCoord2f(0, 1); + glVertex3f(-0.5f, 0.5f, 0.5f); + glEnd(); + + glBindTexture(GL_TEXTURE_2D, m_textures[3]); + glBegin(GL_QUADS); + glNormal3f(0.0f, -1.0f, 0.0f); + glTexCoord2f(0, 0); + glVertex3f(-0.5f, -0.5f, -0.5f); + glTexCoord2f(1, 0); + glVertex3f(0.5f, -0.5f, -0.5f); + glTexCoord2f(1, 1); + glVertex3f(0.5f, -0.5f, 0.5f); + glTexCoord2f(0, 1); + glVertex3f(-0.5f, -0.5f, 0.5f); + glEnd(); + + glBindTexture(GL_TEXTURE_2D, m_textures[4]); + glBegin(GL_QUADS); + glNormal3f(1.0f, 0.0f, 0.0f); + glTexCoord2f(0, 0); + glVertex3f(0.5f, 0.5f, 0.5f); + glTexCoord2f(1, 0); + glVertex3f(0.5f, -0.5f, 0.5f); + glTexCoord2f(1, 1); + glVertex3f(0.5f, -0.5f, -0.5f); + glTexCoord2f(0, 1); + glVertex3f(0.5f, 0.5f, -0.5f); + glEnd(); + + glBindTexture(GL_TEXTURE_2D, m_textures[5]); + glBegin(GL_QUADS); + glNormal3f(-1.0f, 0.0f, 0.0f); + glTexCoord2f(0, 0); + glVertex3f(-0.5f, -0.5f, -0.5f); + glTexCoord2f(1, 0); + glVertex3f(-0.5f, -0.5f, 0.5f); + glTexCoord2f(1, 1); + glVertex3f(-0.5f, 0.5f, 0.5f); + glTexCoord2f(0, 1); + glVertex3f(-0.5f, 0.5f, -0.5f); + glEnd(); + + glFlush(); + + CheckGLError(); +} + +// ---------------------------------------------------------------------------- +// CubicSDR: the application object +// ---------------------------------------------------------------------------- + +IMPLEMENT_APP(CubicSDR) + +bool CubicSDR::OnInit() { + if (!wxApp::OnInit()) + return false; + + new AppFrame(); + + m_pThread = new SDRThread(this); + if (m_pThread->Run() != wxTHREAD_NO_ERROR) { + wxLogError + ("Can't create the thread!"); + delete m_pThread; + m_pThread = NULL; + } + + return true; +} + +int CubicSDR::OnExit() { + delete m_glContext; + + { + wxCriticalSectionLocker enter(m_pThreadCS); + if (m_pThread) { + wxMessageOutputDebug().Printf("CubicSDR: deleting thread"); + if (m_pThread->Delete() != wxTHREAD_NO_ERROR) { + wxLogError + ("Can't delete the thread!"); + } + } + } + +// while (1) { +// { wxCriticalSectionLocker enter(m_pThreadCS); +// if (!m_pThread) +// break; +// } +// // wait for thread completion +// wxThread::This()->Sleep(1); +// } + + return wxApp::OnExit(); +} + +PrimaryGLContext& CubicSDR::GetContext(wxGLCanvas *canvas) { + PrimaryGLContext *glContext; + if (!m_glContext) { + // Create the OpenGL context for the first mono window which needs it: + // subsequently created windows will all share the same context. + m_glContext = new PrimaryGLContext(canvas); + } + glContext = m_glContext; + + glContext->SetCurrent(*canvas); + + return *glContext; +} + +// ---------------------------------------------------------------------------- +// TestGLCanvas +// ---------------------------------------------------------------------------- + +wxBEGIN_EVENT_TABLE(TestGLCanvas, wxGLCanvas) EVT_PAINT(TestGLCanvas::OnPaint) +EVT_KEY_DOWN(TestGLCanvas::OnKeyDown) +EVT_TIMER(SpinTimer, TestGLCanvas::OnSpinTimer) +wxEND_EVENT_TABLE() + +TestGLCanvas::TestGLCanvas(wxWindow *parent, int *attribList) +// With perspective OpenGL graphics, the wxFULL_REPAINT_ON_RESIZE style +// flag should always be set, because even making the canvas smaller should +// be followed by a paint event that updates the entire canvas with new +// viewport settings. +: + wxGLCanvas(parent, wxID_ANY, attribList, wxDefaultPosition, wxDefaultSize, + wxFULL_REPAINT_ON_RESIZE), m_xangle(30.0), m_yangle(30.0), m_spinTimer(this, SpinTimer) { +// if ( attribList ) +// { +// int i = 0; +// while ( attribList[i] != 0 ) +// { +// ++i; +// } +// } +} + +void TestGLCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) { + // This is required even though dc is not used otherwise. + wxPaintDC dc(this); + + // Set the OpenGL viewport according to the client size of this canvas. + // This is done here rather than in a wxSizeEvent handler because our + // OpenGL rendering context (and thus viewport setting) is used with + // multiple canvases: If we updated the viewport in the wxSizeEvent + // handler, changing the size of one canvas causes a viewport setting that + // is wrong when next another canvas is repainted. + const wxSize ClientSize = GetClientSize(); + + PrimaryGLContext& canvas = wxGetApp().GetContext(this); + glViewport(0, 0, ClientSize.x, ClientSize.y); + + // Render the graphics and swap the buffers. + canvas.DrawRotatedCube(m_xangle, m_yangle); + + SwapBuffers(); +} + +void TestGLCanvas::Spin(float xSpin, float ySpin) { + m_xangle += xSpin; + m_yangle += ySpin; + + Refresh(false); +} + +void TestGLCanvas::OnKeyDown(wxKeyEvent& event) { + float angle = 5.0; + + switch (event.GetKeyCode()) { + case WXK_RIGHT: + Spin(0.0, -angle); + break; + + case WXK_LEFT: + Spin(0.0, angle); + break; + + case WXK_DOWN: + Spin(-angle, 0.0); + break; + + case WXK_UP: + Spin(angle, 0.0); + break; + + case WXK_SPACE: + if (m_spinTimer.IsRunning()) + m_spinTimer.Stop(); + else + m_spinTimer.Start(1); + break; + + default: + event.Skip(); + return; + } +} + +void TestGLCanvas::OnSpinTimer(wxTimerEvent& WXUNUSED(event)) { + Spin(0.0, 4.0); +} + +wxString glGetwxString(GLenum name) { + const GLubyte *v = glGetString(name); + if (v == 0) { + // The error is not important. It is GL_INVALID_ENUM. + // We just want to clear the error stack. + glGetError(); + + return wxString(); + } + + return wxString((const char*) v); +} + +// ---------------------------------------------------------------------------- +// AppFrame: main application window +// ---------------------------------------------------------------------------- + +wxBEGIN_EVENT_TABLE(AppFrame, wxFrame) EVT_MENU(wxID_NEW, AppFrame::OnNewWindow) +EVT_MENU(wxID_CLOSE, AppFrame::OnClose) +wxEND_EVENT_TABLE() + +AppFrame::AppFrame() : + wxFrame(NULL, wxID_ANY, wxT("CubicSDR")) { + + new TestGLCanvas(this, NULL); + + SetIcon(wxICON(sample)); + + // Make a menubar + wxMenu *menu = new wxMenu; + menu->Append(wxID_NEW); + menu->AppendSeparator(); + menu->Append(wxID_CLOSE); + wxMenuBar *menuBar = new wxMenuBar; + menuBar->Append(menu, wxT("&Cube")); + + SetMenuBar(menuBar); + + CreateStatusBar(); + + SetClientSize(400, 400); + Show(); + +// static const int attribs[] = { WX_GL_RGBA, WX_GL_DOUBLEBUFFER, 0 }; +// wxLogStatus("Double-buffered display %s supported", wxGLCanvas::IsDisplaySupported(attribs) ? "is" : "not"); +// ShowFullScreen(true); +} + +void AppFrame::OnClose(wxCommandEvent& WXUNUSED(event)) { + // true is to force the frame to close + Close(true); +} + +void AppFrame::OnNewWindow(wxCommandEvent& WXUNUSED(event)) { + new AppFrame(); +} diff --git a/src/CubicSDR.h b/src/CubicSDR.h new file mode 100644 index 0000000..fb207b0 --- /dev/null +++ b/src/CubicSDR.h @@ -0,0 +1,73 @@ +#pragma once + +//WX_GL_CORE_PROFILE 1 +//WX_GL_MAJOR_VERSION 3 +//WX_GL_MINOR_VERSION 2 + +#include "wx/glcanvas.h" +#include "SDRThread.h" + +// the rendering context used by all GL canvases +class PrimaryGLContext : public wxGLContext +{ +public: + PrimaryGLContext(wxGLCanvas *canvas); + + // render the cube showing it at given angles + void DrawRotatedCube(float xangle, float yangle); + +private: + // textures for the cube faces + GLuint m_textures[6]; +}; + + +class CubicSDR : public wxApp +{ +public: + CubicSDR() { m_glContext = NULL; } + + PrimaryGLContext& GetContext(wxGLCanvas *canvas); + + virtual bool OnInit(); + virtual int OnExit(); + +private: + PrimaryGLContext *m_glContext; + SDRThread *m_pThread; + wxCriticalSection m_pThreadCS; +}; + +// Define a new frame type +class AppFrame : public wxFrame +{ +public: + AppFrame(); + +private: + void OnClose(wxCommandEvent& event); + void OnNewWindow(wxCommandEvent& event); + + wxDECLARE_EVENT_TABLE(); +}; + +class TestGLCanvas : public wxGLCanvas +{ +public: + TestGLCanvas(wxWindow *parent, int *attribList = NULL); + +private: + void OnPaint(wxPaintEvent& event); + void Spin(float xSpin, float ySpin); + void OnKeyDown(wxKeyEvent& event); + void OnSpinTimer(wxTimerEvent& WXUNUSED(event)); + + // angles of rotation around x- and y- axis + float m_xangle, + m_yangle; + + wxTimer m_spinTimer; + + wxDECLARE_EVENT_TABLE(); +}; + diff --git a/src/SDRThread.cpp b/src/SDRThread.cpp new file mode 100644 index 0000000..4aa146d --- /dev/null +++ b/src/SDRThread.cpp @@ -0,0 +1,237 @@ +#include "SDRThread.h" + +static void rtl_callback(unsigned char *buf, uint32_t len, void *ctx) { + std::cout << "Got buffer! length: " << len << std::endl; +} + +SDRThread::SDRThread(wxApp *app) : + wxThread(wxTHREAD_DETACHED) { + dev = NULL; + this->handler = handler; +} +SDRThread::~SDRThread() { + +} + +void SDRThread::enumerate_rtl() { + + unsigned int rtl_count = rtlsdr_get_device_count(); + + std::cout << "RTL Devices: " << rtl_count << std::endl; + + char manufact[256]; + char product[256]; + char serial[256]; + + for (int i = 0; i < rtl_count; i++) { + std::cout << "Device #" << i << ": " << rtlsdr_get_device_name(i) << std::endl; + if (rtlsdr_get_device_usb_strings(i, manufact, product, serial) == 0) { + std::cout << "\tManufacturer: " << manufact << ", Product Name: " << product << ", Serial: " << serial << std::endl; + + rtlsdr_open(&dev, i); + + std::cout << "\t Tuner type: "; + switch (rtlsdr_get_tuner_type(dev)) { + case RTLSDR_TUNER_UNKNOWN: + std::cout << "Unknown"; + break; + case RTLSDR_TUNER_E4000: + std::cout << "Elonics E4000"; + break; + case RTLSDR_TUNER_FC0012: + std::cout << "Fitipower FC0012"; + break; + case RTLSDR_TUNER_FC0013: + std::cout << "Fitipower FC0013"; + break; + case RTLSDR_TUNER_FC2580: + std::cout << "Fitipower FC2580"; + break; + case RTLSDR_TUNER_R820T: + std::cout << "Rafael Micro R820T"; + break; + case RTLSDR_TUNER_R828D: + break; + } + + std::cout << std::endl; + /* + int num_gains = rtlsdr_get_tuner_gains(dev, NULL); + + int *gains = (int *)malloc(sizeof(int) * num_gains); + rtlsdr_get_tuner_gains(dev, gains); + + std::cout << "\t Valid gains: "; + for (int g = 0; g < num_gains; g++) { + if (g > 0) { + std::cout << ", "; + } + std::cout << ((float)gains[g]/10.0f); + } + std::cout << std::endl; + + free(gains); + */ + + rtlsdr_close(dev); + + } else { + std::cout << "\tUnable to access device #" << i << " (in use?)" << std::endl; + } + + } + +} + +#define BUF_SIZE 16 * 32 * 512 + +wxThread::ExitCode SDRThread::Entry() { + __int8 *buf = (__int8 *) malloc(BUF_SIZE); + + enumerate_rtl(); + + rtlsdr_open(&dev, 4); + rtlsdr_set_sample_rate(dev, 2500000); + rtlsdr_set_center_freq(dev, 105700000); + rtlsdr_reset_buffer(dev); + + int n_read; + int i = 0; + // rtlsdr_read_async(dev, rtl_callback, NULL, 0, 0); + + std::cout << "Sampling.."; + while (!TestDestroy()) { + + rtlsdr_read_sync(dev, buf, BUF_SIZE, &n_read); +// std::cout << "Got buffer! length: " << n_read << std::endl; + std::cout << "."; + + if (i%50==0) { + std::cout << std::endl; + } + + i++; + + //wxQueueEvent(app,new wxThreadEvent(wxEVT_COMMAND_SDRThread_UPDATE)); + } + std::cout << std::endl << "Done." << std::endl << std::endl; + // wxQueueEvent(m_pHandler,new wxThreadEvent(wxEVT_COMMAND_SDRThread_COMPLETED)); + + free(buf); + rtlsdr_close(dev); + + return (wxThread::ExitCode) 0; // success +} + +/* + class MyFrame: public wxFrame { + public: + ~MyFrame() { + // it's better to do any thread cleanup in the OnClose() + // event handler, rather than in the destructor. + // This is because the event loop for a top-level window is not + // active anymore when its destructor is called and if the thread + // sends events when ending, they won't be processed unless + // you ended the thread from OnClose. + // See @ref overview_windowdeletion for more info. + } + + void DoStartThread(); + void DoPauseThread(); + // a resume routine would be nearly identic to DoPauseThread() + void DoResumeThread() { + } + void OnThreadUpdate(wxThreadEvent&); + void OnThreadCompletion(wxThreadEvent&); + void OnClose(wxCloseEvent&); + protected: + SDRThread *m_pThread; + wxCriticalSection m_pThreadCS; // protects the m_pThread pointer + wxDECLARE_EVENT_TABLE(); + }; + wxBEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_CLOSE(MyFrame::OnClose) + EVT_MENU(Minimal_Start, MyFrame::DoStartThread) + EVT_COMMAND(wxID_ANY, wxEVT_COMMAND_SDRThread_UPDATE, MyFrame::OnThreadUpdate) + EVT_COMMAND(wxID_ANY, wxEVT_COMMAND_SDRThread_COMPLETED, MyFrame::OnThreadCompletion) + wxEND_EVENT_TABLE() + wxDEFINE_EVENT(wxEVT_COMMAND_SDRThread_COMPLETED, wxThreadEvent)wxDEFINE_EVENT + (wxEVT_COMMAND_SDRThread_UPDATE, wxThreadEvent)void + MyFrame::DoStartThread() { + m_pThread = new SDRThread(this); + if (m_pThread->Run() != wxTHREAD_NO_ERROR) { + wxLogError + ("Can't create the thread!"); + delete m_pThread; + m_pThread = NULL; + } + // after the call to wxThread::Run(), the m_pThread pointer is "unsafe": + // at any moment the thread may cease to exist (because it completes its work). + // To avoid dangling pointers OnThreadExit() will set m_pThread + // to NULL when the thread dies. + } + wxThread::ExitCode SDRThread::Entry() { + while (!TestDestroy()) { + // ... do a bit of work... + wxQueueEvent(m_pHandler, + new wxThreadEvent(wxEVT_COMMAND_SDRThread_UPDATE)); + } + // signal the event handler that this thread is going to be destroyed + // NOTE: here we assume that using the m_pHandler pointer is safe, + // (in this case this is assured by the MyFrame destructor) + wxQueueEvent(m_pHandler, + new wxThreadEvent(wxEVT_COMMAND_SDRThread_COMPLETED)); + return (wxThread::ExitCode) 0; // success + } + SDRThread::~SDRThread() { + wxCriticalSectionLocker enter(m_pHandler->m_pThreadCS); + // the thread is being destroyed; make sure not to leave dangling pointers around + m_pHandler->m_pThread = NULL; + } + void MyFrame::OnThreadCompletion(wxThreadEvent&) { + wxMessageOutputDebug().Printf("MYFRAME: SDRThread exited!\n"); + } + void MyFrame::OnThreadUpdate(wxThreadEvent&) { + wxMessageOutputDebug().Printf("MYFRAME: SDRThread update...\n"); + } + void MyFrame::DoPauseThread() { + // anytime we access the m_pThread pointer we must ensure that it won't + // be modified in the meanwhile; since only a single thread may be + // inside a given critical section at a given time, the following code + // is safe: + wxCriticalSectionLocker enter(m_pThreadCS); + if (m_pThread) // does the thread still exist? + { + // without a critical section, once reached this point it may happen + // that the OS scheduler gives control to the SDRThread::Entry() function, + // which in turn may return (because it completes its work) making + // invalid the m_pThread pointer + if (m_pThread->Pause() != wxTHREAD_NO_ERROR) + wxLogError + ("Can't pause the thread!"); + } + } + void MyFrame::OnClose(wxCloseEvent&) { + { + wxCriticalSectionLocker enter(m_pThreadCS); + if (m_pThread) // does the thread still exist? + { + wxMessageOutputDebug().Printf("MYFRAME: deleting thread"); + if (m_pThread->Delete() != wxTHREAD_NO_ERROR) + wxLogError + ("Can't delete the thread!"); + } + } // exit from the critical section to give the thread + // the possibility to enter its destructor + // (which is guarded with m_pThreadCS critical section!) + while (1) { + { // was the ~SDRThread() function executed? + wxCriticalSectionLocker enter(m_pThreadCS); + if (!m_pThread) + break; + } + // wait for thread completion + wxThread::This()->Sleep(1); + } + Destroy(); + } + */ diff --git a/src/SDRThread.h b/src/SDRThread.h new file mode 100644 index 0000000..c2a1f8b --- /dev/null +++ b/src/SDRThread.h @@ -0,0 +1,29 @@ +#pragma once + +#include "wx/wxprec.h" +#include "rtl-sdr.h" + +#ifndef WX_PRECOMP +#include "wx/wx.h" +#endif + +#include "wx/thread.h" + +// declare a new type of event, to be used by our SDRThread class: +wxDECLARE_EVENT(wxEVT_COMMAND_SDRThread_COMPLETED, wxThreadEvent); +wxDECLARE_EVENT(wxEVT_COMMAND_SDRThread_UPDATE, wxThreadEvent); + + +class SDRThread: public wxThread { +public: + rtlsdr_dev_t *dev; + + SDRThread(wxApp *app); + ~SDRThread(); + + void enumerate_rtl(); + +protected: + virtual ExitCode Entry(); + wxApp *handler; +};