Skip to content

Commit 9b77198

Browse files
committed
[WIP] add DAB-Radio as code
1 parent ea31091 commit 9b77198

File tree

282 files changed

+26645
-121
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

282 files changed

+26645
-121
lines changed

CMakeLists.txt

+23-18
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,10 @@ else()
2828
endif()
2929

3030
find_package(Kodi REQUIRED)
31+
find_package(fmt REQUIRED)
3132
find_package(FFTW REQUIRED)
32-
find_package(FDK_AAC REQUIRED)
33+
find_package(FAAD2 REQUIRED)
34+
find_package(FDK_AAC REQUIRED) # needed on dsp_hd
3335
find_package(glm REQUIRED)
3436
find_package(MPG123 REQUIRED)
3537
find_package(RapidJSON 1.1.0 REQUIRED)
@@ -51,21 +53,33 @@ else()
5153
add_definitions(${OPENGLES_DEFINITIONS})
5254
endif()
5355

56+
set(FMT_LIBS ${LIBFMT_LIBRARIES})
57+
set(FAAD2_LIBS ${FAAD2_LIBRARY})
58+
set(VITERBI_LIBS )
59+
5460
add_definitions(-DDABLIN_AAC_FDKAAC -DFFTW_NO_Complex -Drtlsdr_EXPORTS=1)
5561

5662
include_directories(${KODI_INCLUDE_DIR}/.. # Hack way with "/..", need bigger Kodi cmake rework to match right include ways
5763
${FFTW_INCLUDE_DIRS}
64+
${FAAD2_INCLUDE_DIR}
5865
${FDK_AAC_INCLUDE_DIRS}
5966
${GLM_INCLUDE_DIR}
6067
${MPG123_INCLUDE_DIR}
6168
${RAPIDJSON_INCLUDE_DIRS}
62-
${SQLITE3_INCLUDE_DIR})
69+
${SQLITE3_INCLUDE_DIR}
70+
${LIBFMT_INCLUDE_DIRS}
71+
lib/ViterbiDecoderCpp/include)
6372

64-
list(APPEND DEPLIBS ${FDK_AAC_LIBRARIES}
73+
list(APPEND DEPLIBS ${FAAD2_LIBRARY}
74+
${FDK_AAC_LIBRARIES}
75+
#${FFTW_FLOAT_LIB}
6576
${FFTW_LONGDOUBLE_LIB}
6677
${MPG123_LIBRARIES}
67-
${SQLITE3_LIBRARY})
78+
${SQLITE3_LIBRARY}
79+
${LIBFMT_LIBRARIES})
6880

81+
set(FFTW3_LIBS ${FFTW_LONGDOUBLE_LIB})
82+
#message(FATAL_ERROR "----> ${FAAD2_LIBRARY} <----")
6983
if(USB_DEVICE_SUPPORT)
7084
if(NOT DISTRIBUTION_BUILD)
7185
list(APPEND DEPLIBS ${LIBUSB_1_LIBRARIES})
@@ -80,33 +94,24 @@ endif()
8094

8195
add_subdirectory(${PROJECT_SOURCE_DIR}/src)
8296
add_subdirectory(${PROJECT_SOURCE_DIR}/src/dsp_dab)
83-
add_subdirectory(${PROJECT_SOURCE_DIR}/src/dsp_dab/decoders)
84-
add_subdirectory(${PROJECT_SOURCE_DIR}/src/dsp_dab/decoders/audio)
85-
add_subdirectory(${PROJECT_SOURCE_DIR}/src/dsp_dab/decoders/audio/aac)
86-
add_subdirectory(${PROJECT_SOURCE_DIR}/src/dsp_dab/decoders/audio/mp2)
87-
add_subdirectory(${PROJECT_SOURCE_DIR}/src/dsp_dab/decoders/data/pad)
88-
add_subdirectory(${PROJECT_SOURCE_DIR}/src/dsp_dab/decoders/data/mot)
8997
add_subdirectory(${PROJECT_SOURCE_DIR}/src/dsp_fm)
9098
add_subdirectory(${PROJECT_SOURCE_DIR}/src/dsp_hd)
9199
add_subdirectory(${PROJECT_SOURCE_DIR}/src/gui)
92100
add_subdirectory(${PROJECT_SOURCE_DIR}/src/exception_control)
93101
add_subdirectory(${PROJECT_SOURCE_DIR}/src/utils)
94102

95103
list(APPEND DEPLIBS code_src
96-
code_src_dsp_dab
97-
code_src_dsp_dab_decoders
98-
code_src_dsp_dab_decoders_audio
99-
code_src_dsp_dab_decoders_audio_aac
100-
code_src_dsp_dab_decoders_audio_mp2
101-
code_src_dsp_dab_decoders_data_mot
102-
code_src_dsp_dab_decoders_data_pad
103104
code_src_dsp_fm
104105
code_src_dsp_hd
105106
code_src_gui
106107
code_src_utils
107108
code_src_exception_control
108109
$<$<BOOL:${WIN32}>:ws2_32>
109-
$<$<BOOL:${WIN32}>:Shlwapi>)
110+
$<$<BOOL:${WIN32}>:Shlwapi>
111+
ofdm_core
112+
dab_core
113+
basic_radio
114+
basic_scraper)
110115

111116
set(PVRRTLRADIO_SOURCES src/addon.cpp)
112117
set(PVRRTLRADIO_HEADERS src/addon.h)

cmake/FindFAAD2.cmake

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#.rst:
2+
# Find FAAD2
3+
# ----------
4+
#
5+
# Finds the FAAD2 library. This module defines:
6+
#
7+
# FAAD2_FOUND - True if FAAD2 library is found
8+
# FAAD2::FAAD2 - FAAD2 imported target
9+
#
10+
# Additionally these variables are defined for internal usage:
11+
#
12+
# FAAD2_LIBRARY - FAAD2 library
13+
# FAAD2_INCLUDE_DIR - Include dir
14+
#
15+
16+
#
17+
# This file is part of Magnum.
18+
#
19+
# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019,
20+
# 2020, 2021, 2022, 2023 Vladimír Vondruš <mosra@centrum.cz>
21+
#
22+
# Permission is hereby granted, free of charge, to any person obtaining a
23+
# copy of this software and associated documentation files (the "Software"),
24+
# to deal in the Software without restriction, including without limitation
25+
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
26+
# and/or sell copies of the Software, and to permit persons to whom the
27+
# Software is furnished to do so, subject to the following conditions:
28+
#
29+
# The above copyright notice and this permission notice shall be included
30+
# in all copies or substantial portions of the Software.
31+
#
32+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
33+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
34+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
35+
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
36+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
37+
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
38+
# DEALINGS IN THE SOFTWARE.
39+
#
40+
41+
# Library
42+
find_library(FAAD2_LIBRARY NAMES faad)
43+
44+
# Include dir
45+
find_path(FAAD2_INCLUDE_DIR
46+
NAMES neaacdec.h)
47+
48+
include(FindPackageHandleStandardArgs)
49+
find_package_handle_standard_args(FAAD2 DEFAULT_MSG
50+
FAAD2_LIBRARY
51+
FAAD2_INCLUDE_DIR)
52+
53+
mark_as_advanced(FORCE
54+
FAAD2_LIBRARY
55+
FAAD2_INCLUDE_DIR)
56+
57+
if(NOT TARGET FAAD2::FAAD2)
58+
add_library(FAAD2::FAAD2 UNKNOWN IMPORTED)
59+
set_target_properties(FAAD2::FAAD2 PROPERTIES
60+
IMPORTED_LOCATION ${FAAD2_LIBRARY}
61+
INTERFACE_INCLUDE_DIRECTORIES ${FAAD2_INCLUDE_DIR})
62+
endif()

cmake/FindFFTW3f.cmake

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
find_package(PkgConfig)
2+
if(PKG_CONFIG_FOUND)
3+
pkg_check_modules(PC_GLM FFTW3f QUIET)
4+
endif()
5+
6+
find_path(FFTW3_INCLUDE_DIR fftw3.h
7+
PATHS ${PC_GLM_INCLUDEDIR}
8+
PATH_SUFFIXES glm)
9+
10+
FIND_LIBRARY(FFTW3_LIBS NAMES fftw3 fftw3f fftw3l
11+
PATHS ${PC_SQLITE3_INCLUDEDIR}
12+
PATH_SUFFIXES lib
13+
)
14+
15+
include(FindPackageHandleStandardArgs)
16+
find_package_handle_standard_args(FFTW3f REQUIRED_VARS GLM_INCLUDE_DIR)
17+
18+
mark_as_advanced(GLM_INCLUDE_DIR)

cmake/FindFmt.cmake

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
find_package(PkgConfig)
2+
if(PKG_CONFIG_FOUND)
3+
pkg_check_modules(PC_LIBFMT fmt QUIET)
4+
endif()
5+
6+
find_path(LIBFMT_INCLUDE_DIRS format.h
7+
PATHS ${PC_LIBFMT_INCLUDEDIR}
8+
PATH_SUFFIXES fmt)
9+
find_library(LIBFMT_LIBRARIES NAMES fmt fmtd
10+
PATHS ${PC_LIBFMT_LIBDIR})
11+
12+
include(FindPackageHandleStandardArgs)
13+
find_package_handle_standard_args(LIBFMT REQUIRED_VARS LIBFMT_LIBRARIES LIBFMT_INCLUDE_DIRS)
14+
15+
mark_as_advanced(LIBFMT_INCLUDE_DIRS LIBFMT_LIBRARIES)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
--- a/CMakeLists.txt
2+
+++ b/CMakeLists.txt
3+
@@ -307,7 +307,7 @@
4+
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
5+
$<INSTALL_INTERFACE:${FMT_INC_DIR}>)
6+
7+
-set(FMT_DEBUG_POSTFIX d CACHE STRING "Debug library postfix.")
8+
+#set(FMT_DEBUG_POSTFIX d CACHE STRING "Debug library postfix.")
9+
10+
set_target_properties(fmt PROPERTIES
11+
VERSION ${FMT_VERSION} SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR}

depends/common/fmtlib/flags.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
-DFMT_DOC=OFF -DFMT_TEST=OFF -DFMT_FUZZ=OFF -DFMT_MODULE=OFF

depends/common/fmtlib/fmtlib.sha256

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
312151a2d13c8327f5c9c586ac6cf7cddc1658e8f53edae0ec56509c8fa516c9

depends/common/fmtlib/fmtlib.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
fmtlib https://github.com/fmtlib/fmt/releases/download/10.2.1/fmt-10.2.1.zip
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
From f3a2fc375d0188271143481086ffac60ca5b0668 Mon Sep 17 00:00:00 2001
2+
From: Eugene Kliuchnikov <eustas.ru@gmail.com>
3+
Date: Mon, 12 Feb 2024 15:08:42 +0100
4+
Subject: [PATCH] Do not skip installing FAAD in MSVC build (#201)
5+
6+
---
7+
.github/workflows/build.yaml | 4 +++-
8+
CMakeLists.txt | 2 +-
9+
2 files changed, 4 insertions(+), 2 deletions(-)
10+
11+
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
12+
index 288ca17..d569e2f 100644
13+
--- a/.github/workflows/build.yaml
14+
+++ b/.github/workflows/build.yaml
15+
@@ -76,6 +76,8 @@ jobs:
16+
os: windows-latest
17+
cmake_args: >-
18+
-G "Visual Studio 17 2022" -A x64
19+
+ cmake_build_options: >-
20+
+ --config Release
21+
- name: OSX
22+
os: macos-latest
23+
24+
@@ -100,7 +102,7 @@ jobs:
25+
-DCMAKE_INSTALL_PREFIX=$RUNNER_TEMP/usrlocal \
26+
-DBUILD_SHARED_LIBS=${SHARED} \
27+
${{ matrix.cmake_args }}
28+
- cmake --build build -j ${NUM_CORES}
29+
+ cmake --build build -j ${NUM_CORES} ${{ matrix.cmake_build_options || '' }}
30+
cmake --install build
31+
32+
BuildOnMsys:
33+
diff --git a/CMakeLists.txt b/CMakeLists.txt
34+
index 1cac67f..1021272 100644
35+
--- a/CMakeLists.txt
36+
+++ b/CMakeLists.txt
37+
@@ -268,7 +268,7 @@ if (FAAD_BUILD_CLI)
38+
endif()
39+
# Installation
40+
41+
-if(NOT FAAD_BUNDLED_MODE AND NOT MSVC)
42+
+if(NOT FAAD_BUNDLED_MODE)
43+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/faad2.pc"
44+
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
45+
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
72dbc0494de9ee38d240f670eccf2b10ef715fd0508c305532ca3def3225bb06

depends/common/libfaad2/libfaad2.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
libfaad2 https://github.com/knik0/faad2/archive/refs/tags/2.11.1.tar.gz

lib/ViterbiDecoderCpp/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.vscode/

0 commit comments

Comments
 (0)