Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
815d750
Initial commit
AchimTuran Nov 17, 2015
7d43e7a
Update to latest development of adsp.template
AchimTuran Nov 17, 2015
18c9ebc
[project] Readme rework with Github markdown
AchimTuran Nov 17, 2015
1703783
[CMake] Adpapt CMakeLists.txt to latest adsp.template version
AchimTuran Nov 17, 2015
0197e0e
[Project] Remove old depends structure
AchimTuran Nov 17, 2015
f8272fe
Fix compiler errors and replace tabs with spaces
AchimTuran Mar 1, 2016
6422dc8
[Project] Add build instructions and CI build badges to README.md
AchimTuran Mar 8, 2016
721af7a
Remove unused AudioDSPSettings class
AchimTuran Mar 8, 2016
e5963b5
[KodiThreads] Initial commit of extracted thread classes from Kodi's …
AchimTuran Mar 8, 2016
6d2e4fd
[CI] Initial commit of Travis CI and AppVeyor build scripts
AchimTuran Mar 8, 2016
b9e5a41
[Addon][MessageSystem] Initial commit of extracted ActorProtocol clas…
AchimTuran Mar 8, 2016
8c3f62f
[AudioDSP][FactoryADSPModes] Initial commit of AudioDSP Mode Factory
AchimTuran Mar 8, 2016
f27d59d
[AudioDSP][Streams] Initial commit of AudioDSP stream handling classes
AchimTuran Mar 8, 2016
5416758
[Addon] Initial commit of Pre-Process Copy Mode
AchimTuran Mar 8, 2016
0bbd02d
[CMake] Update CMakeLists.txt with source groups for Visual Studio an…
AchimTuran Mar 8, 2016
6b42476
[template][AddonMain] Remove old AddonHandler class
AchimTuran Mar 8, 2016
fb4935f
[string.po] Update strings
AchimTuran Mar 8, 2016
b32aa59
[AudioDSP][Streams] Improve stream construction
AchimTuran Mar 8, 2016
fcb28fa
[AudioDSP][Streams] Add stream processing, creation and initializatio…
AchimTuran Mar 9, 2016
9f3435d
[PreProcessCpy] Adapt mode to new interface
AchimTuran Mar 9, 2016
11ecd65
[AudioDSP][Streams] Add is mode support functionality
AchimTuran Mar 9, 2016
385181c
[PreProcessCpy] Disable settings dialog as long as there is none impl…
AchimTuran Mar 9, 2016
c4ebb33
[PreProcessCpy] Add channel mapping functionality
AchimTuran Mar 9, 2016
813cc1b
[PostProcessCpy] Initial commit of postprocessing mode
AchimTuran Mar 9, 2016
9228004
[Addon] Better strings
AchimTuran Mar 9, 2016
ce5a475
Better logging messages
AchimTuran Mar 9, 2016
5a8b51b
[PreProcessCpy] Code cosmetics
AchimTuran Mar 9, 2016
1445aec
[Addon] Improve configuration
AchimTuran Mar 9, 2016
1c1b462
[AudioDSP][Streams] Add mode destroy functionality
AchimTuran Mar 9, 2016
73ebeee
Remove return value from ModeDestroy(...) method
AchimTuran Mar 9, 2016
54eeb46
[AudioDSP][FactoryADSPModes] Only copy and reinitialize processing mo…
AchimTuran Mar 9, 2016
847f7a9
Delete StreamManager during addon destroy
AchimTuran Mar 9, 2016
afe97fc
[InputResampleCpy] Initial commit of InputResampleCpy mode
AchimTuran Mar 9, 2016
7c2716f
[PostProcessCpy] Fixed class name
AchimTuran Mar 9, 2016
23bd07e
[AudioDSP][Streams] Changed CADSPStreamManager API to static methods
AchimTuran Mar 9, 2016
b17a958
[Addon] Change version number
AchimTuran Mar 10, 2016
0d06e6b
[template] Add CADSPHelpers::Translate_ADSPModeType_TO_MenuHook(...)
AchimTuran Mar 10, 2016
e5db15d
[AudioDSP][FactoryADSPModes] Change to generic TCreationStatistics te…
AchimTuran Mar 10, 2016
7d1a7fa
Add missing GPL headers
AchimTuran Mar 10, 2016
92f6709
[Addon][Process] Initial commit of AddonProcessManager
AchimTuran Mar 10, 2016
b933e31
[CpyModesProcess] Initial commit of CpyModesProcess
AchimTuran Mar 10, 2016
a092d0d
[CMake] Added CpyModesProcess
AchimTuran Mar 10, 2016
1330361
Improve logging messages
AchimTuran Mar 10, 2016
b02474a
[MessageSystem] Extend ActorProtocol with an abstract interface
AchimTuran Mar 15, 2016
8570fd3
[MVC] Initial commit of model interface
AchimTuran Mar 15, 2016
aec908c
[CpyModesProcess] Added PortPostProcessGainModel
AchimTuran Mar 15, 2016
1b5018e
[PostProcessGain] Initial commit of PostProcessGain mode with first p…
AchimTuran Mar 15, 2016
0ce3772
[MVC][Initial commit of TParameter template class
AchimTuran Mar 15, 2016
bd33c3b
[MVC][Interfaces] Initial commit of IParameter interface class
AchimTuran Mar 15, 2016
010f681
[PreProcessCpy] Class name change
AchimTuran Mar 15, 2016
079ce78
[CMake] Adapt CMakeLists.txt to latest developments
AchimTuran Mar 15, 2016
fdbf6a9
[CMake] Update to latest project structure
AchimTuran Mar 18, 2016
46743f7
delete file
AchimTuran Mar 18, 2016
9f31c77
[Addon][MVC][Model] Extend IParameter interface with GetDataPtr()
AchimTuran Mar 18, 2016
73fedd7
[Addon][MessageSystem] Extend Message with size and destiny members
AchimTuran Mar 18, 2016
e9426bd
[Addon][MessageSystem] Initial commit of MessageDispatcher and ISocke…
AchimTuran Mar 18, 2016
cdbfdbb
[Addon][MessageSystem]
AchimTuran Mar 19, 2016
eab1785
[CMake] Adapt to latest project developments
AchimTuran Mar 19, 2016
168b669
[PostProcessGain] Added main gain and message system support
AchimTuran Mar 19, 2016
19b9427
Added connect/disconnect message dispatcher functionality between mod…
AchimTuran Mar 19, 2016
036e1cd
[PostProcessGain] Improved model message dispatcher and added strings
AchimTuran Mar 19, 2016
7efe6d9
[MVC][Model] Fixed compiler warnings
AchimTuran Mar 19, 2016
d2a0e7b
[PostProcessGainDialog] Initial commit of Dialog and resources
AchimTuran Mar 21, 2016
1a6f977
[PostProcessGainDialog] Initial commit PostProcessGainModeDialog, Pos…
AchimTuran Mar 21, 2016
7e6dc9e
[template][AddonMain] Added CHelper_libKODI_audioengine
AchimTuran Mar 21, 2016
8ff4f03
[Addon][MVC] Initial commit of Kodi's ActionIDs
AchimTuran Mar 21, 2016
dffdc25
[CMake] Update CMakeLists.txt to latest source files
AchimTuran Mar 25, 2016
6538d1e
[PostGainProcessMode] Add audio engine to PostProcessGainModeDialog
AchimTuran Mar 25, 2016
f1b6f7c
[KodiThreads] Update to latest kodi threads implementation and adapte…
AchimTuran Jun 28, 2016
3405be2
p8-platform name change
AchimTuran Jun 28, 2016
6ad43e6
Add missing includes
AchimTuran Jun 28, 2016
ef4b67d
[cmake] Cleanup and p8-platform name change
AchimTuran Jun 28, 2016
2503bee
[cmake] KodiThreads cleanup
AchimTuran Jun 28, 2016
1be952c
Fix compiler errors
AchimTuran Jun 28, 2016
9ff9826
[cmake] Adapt linker dependencies for Linux (todo readd Windows support)
AchimTuran Jun 28, 2016
5a565c7
Fix Windows build
AchimTuran Jul 10, 2016
de2af05
Shift CPostProcessGainModeDialogSettings into CpyModesProcess and imp…
AchimTuran Jul 10, 2016
caf562d
[Project] Adapt license header to GPL V3
AchimTuran Jul 11, 2016
bcb00b1
Update to latest developments
AchimTuran Jul 11, 2016
0c9a5cf
[Gain Mode Dialog] Add strings for speaker channels, use settings slider
AchimTuran Jul 11, 2016
30f6c55
[dialog][GainMode] Latest changes for gain mode dialog
AchimTuran Jul 14, 2016
99a0a91
[Addon][MessageSystem][Sockets] Add new template to process class met…
AchimTuran Jul 17, 2016
80d6cb2
[Addon][MessageSystem][Sockets] Adapt Set(...) to return int instead …
AchimTuran Jul 17, 2016
f474a1e
[Addon][MessageSystem][Communication] Add SendMsg(...) to directly se…
AchimTuran Jul 17, 2016
09855fb
Add RequestMainGain signal ID to SocketGainModeIDs
AchimTuran Jul 17, 2016
96c62e6
[GainMode][Dialog] Add message system
AchimTuran Jul 17, 2016
4ac3b94
[GainMode][Model] Fix typo
AchimTuran Jul 17, 2016
b1e5f77
[GainMode][Model] Register RequestMainGain socket
AchimTuran Jul 17, 2016
d9b7728
[GainMode][Controller] Replace MainGain memcpy socket with class meth…
AchimTuran Jul 17, 2016
16db9b0
[GainMode][Model] Add RequestMainGain socket class method callback
AchimTuran Jul 17, 2016
9504f44
[MainGainModeEnvironment] Connect gain mode model and controller disp…
AchimTuran Jul 17, 2016
068b438
[CMake] Add latest needed files
AchimTuran Jul 17, 2016
a1f75c4
[Addon][MessageSystem][MessageDispatcher] Code cosmetics
AchimTuran Jul 17, 2016
713f046
Rename MainGain signal to UpdateMainGain
AchimTuran Jul 17, 2016
8b7ead9
Add controller- and view-ID-class
AchimTuran Jul 17, 2016
b3f895b
[cmake] Create independent static libraries of adsp.template and Kodi…
AchimTuran Aug 17, 2016
204fdf0
[KodiThreads] Added logger callbacks and fixed include directories
AchimTuran Aug 17, 2016
95e1153
[template] Added KodiThreads logger callbacks stubs
AchimTuran Aug 17, 2016
7df8fcc
[cmake] Adapt addon_source_group implementation from asplib helpers
AchimTuran Aug 17, 2016
4f112dd
[template][Addon][MessageSystem] Adapte KodiThreads include directories
AchimTuran Aug 17, 2016
c55f2ea
[template][utils] Move stdStringUtils into template directory
AchimTuran Aug 17, 2016
6c3b137
[template] Delete old source code
AchimTuran Aug 17, 2016
40bdca4
[template][AudioDSP] Prevent crashes in FactoryADSPModes
AchimTuran Aug 17, 2016
fe82d1a
[template][Addon] Prevent crashes in AddonProcessManager
AchimTuran Aug 17, 2016
379cf69
Delete unnecessary files
AchimTuran Sep 10, 2016
729824b
Update to latest changes
AchimTuran Sep 10, 2016
026e783
Fix public header include paths
AchimTuran Sep 11, 2016
a989968
Remove warning
AchimTuran Sep 11, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
language: cpp

#
# Define the build matrix
#
# Travis defaults to building on Ubuntu Precise when building on
# Linux. We need Trusty in order to get up to date versions of
# cmake and g++.
#
matrix:
include:
- os: linux
dist: trusty
sudo: required
compiler: gcc
- os: linux
dist: trusty
sudo: required
compiler: clang
- os: osx
osx_image: xcode7.3
- os: osx
osx_image: xcode6.1

#
# Some of the OS X images don't have cmake, contrary to what people
# on the Internet say
#
before_install:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then which cmake || brew update ; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then which cmake || brew install cmake ; fi

#
# The addon source is automatically checked out in $TRAVIS_BUILD_DIR,
# we'll put the Kodi source on the same level
#
before_script:
- cd $TRAVIS_BUILD_DIR/..
- git clone --depth=1 https://github.com/xbmc/xbmc.git
- cd adsp.template && mkdir build && cd build
- cmake -DADDONS_TO_BUILD=adsp.template -DADDON_SRC_PREFIX=../.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../../xbmc/addons -DPACKAGE_ZIP=1 ../../xbmc/project/cmake/addons

script: make
79 changes: 79 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
project(adsp_base)

#find_package(p8-platform REQUIRED)

set(SOURCES adsp.template/ADSPHelpers.cpp
adsp.template/client.cpp
adsp.template/GUIDialogBase.cpp
adsp.template/Addon/MVC/Interfaces/Controller/IController.hpp
adsp.template/Addon/MVC/Interfaces/Model/IModel.hpp
adsp.template/Addon/MVC/Interfaces/Model/IParameter.hpp
adsp.template/Addon/MVC/Model/TParameter.hpp
adsp.template/Addon/MessageSystem/Communication/Message.cpp
adsp.template/Addon/MessageSystem/Communication/ActorProtocol.cpp
adsp.template/Addon/MessageSystem/Communication/MessageDispatcher.hpp
adsp.template/Addon/MessageSystem/Communication/MessageDispatcher.cpp
adsp.template/Addon/MessageSystem/Sockets/TSocketMemcpy.hpp
adsp.template/Addon/MessageSystem/Sockets/TSocketClassMethodCallback.hpp
adsp.template/Addon/Utils/EnumIDsToString.hpp
adsp.template/Addon/Process/AddonProcessManager.cpp
adsp.template/AudioDSP/FactoryADSPModes/FactoryADSPModes.cpp
adsp.template/AudioDSP/Streams/ADSPStreamManager.cpp
adsp.template/AudioDSP/Streams/ADSPStream.cpp
adsp.template/AudioDSP/Streams/ADSPStreamBuilderAll.cpp
adsp.template/Settings/SettingsHelpers.cpp
adsp.template/Settings/SettingsManager.cpp)

set(HEADERS adsp.template/ADSPHelpers.h
adsp.template/doxygenDocu.h
adsp.template/Addon/MessageSystem/Interfaces/IProtocol.hpp
adsp.template/Addon/MessageSystem/Communication/ActorProtocol.h
adsp.template/Addon/MessageSystem/Communication/Message.hpp
adsp.template/Addon/MessageSystem/Interfaces/ISocket.hpp
adsp.template/Addon/Process/AddonProcessManager.hpp
adsp.template/Addon/Process/IAddonProcess.hpp
adsp.template/AddonExceptions/IAddonException.h
adsp.template/AddonExceptions/TAddonException.h
adsp.template/configuration/templateConfiguration.h
adsp.template/include/checkTemplateConfig.h
adsp.template/include/client.h
adsp.template/include/GUIDialogBase.h
adsp.template/include/MACROHelper.h
adsp.template/include/typedefs.h
adsp.template/Settings/ISettingsElement.h
adsp.template/Settings/SettingsHelpers.h
adsp.template/Settings/SettingsManager.h
adsp.template/Settings/TSettingsElement.h

adsp.template/Addon/MVC/Interfaces/View/IView.hpp
adsp.template/Addon/MVC/Interfaces/View/ActionIDs.hpp
adsp.template/Addon/Utils/TCreationStatistics.hpp
adsp.template/AudioDSP/FactoryADSPModes/FactoryADSPModes.hpp
adsp.template/AudioDSP/FactoryADSPModes/IADSPMode.hpp
adsp.template/AudioDSP/Streams/ADSPStreamManager.hpp
adsp.template/AudioDSP/Streams/ADSPStream.hpp
adsp.template/AudioDSP/Streams/IADSPStreamBuilder.hpp
adsp.template/AudioDSP/Streams/ADSPStreamBuilderAll.hpp

adsp.template/utils/stdStringUtils.h)

addon_source_group("${SOURCES}")
addon_source_group("${HEADERS}")

include_directories(${kodiplatform_INCLUDE_DIRS}
${p8-platform_INCLUDE_DIRS}
${KODI_INCLUDE_DIR})

add_library(${PROJECT_NAME} STATIC ${SOURCES} ${HEADERS})
add_library(adsp::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
target_include_directories(${PROJECT_NAME}
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/adsp.template
INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/adsp.template>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)

target_link_libraries(${PROJECT_NAME} kodi::KodiThreads)

# install all specific module files
#asplib_install_module(${PROJECT_NAME} "${HEADERS}" ${CMAKE_INSTALL_PREFIX}/include)
install(TARGETS ${PROJECT_NAME} EXPORT adsp DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
28 changes: 28 additions & 0 deletions FindTinyXML.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# - Find TinyXML
# Find the native TinyXML includes and library
#
# TINYXML_FOUND - True if TinyXML found.
# TINYXML_INCLUDE_DIRS - where to find tinyxml.h, etc.
# TINYXML_LIBRARIES - List of libraries when using TinyXML.
#

if(PKG_CONFIG_FOUND)
pkg_check_modules (TINYXML tinyxml)
list(APPEND TINYXML_INCLUDE_DIRS ${TINYXML_INCLUDEDIR})
endif()

if(NOT TINYXML_FOUND)
find_path(TINYXML_INCLUDE_DIRS "tinyxml.h"
PATH_SUFFIXES "tinyxml" )

find_library( TINYXML_LIBRARIES
NAMES "tinyxml"
PATH_SUFFIXES "tinyxml" )
endif()

# handle the QUIETLY and REQUIRED arguments and set TINYXML_FOUND to TRUE if
# all listed variables are TRUE
include( "FindPackageHandleStandardArgs" )
find_package_handle_standard_args(TinyXML DEFAULT_MSG TINYXML_INCLUDE_DIRS TINYXML_LIBRARIES )

mark_as_advanced(TINYXML_INCLUDE_DIRS TINYXML_LIBRARIES)
61 changes: 61 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#### CI Testing
* Tarvis-CI for OS X, iOS, Linux [![Build Status](https://travis-ci.org/kodi-adsp/adsp.template.svg?branch=master)](https://travis-ci.org/kodi-adsp/adsp.template)
* AppVeyor for Windows [![Build status](https://ci.appveyor.com/api/projects/status/p3pd175e1leas49a/branch/master?svg=true)](https://ci.appveyor.com/project/AchimTuran/adsp-template/branch/master)
* Code analyses for Linux [![Coverity Scan Build Status](https://scan.coverity.com/projects/5120/badge.svg)](https://scan.coverity.com/projects/5120)


ADSP Template Addon
==============
You can use this template to see how the ADSP Addon API works or to start a new ADSP Addon.
Preprocessing only copies input to output.
Master process implements a simple channel upmixer (e.g. stereo to 5.1) by copying the input channel to output channels.
Postprocessing copies input samples to output.


ADSP Addon API Documentation
==============
For more details see: http://wisler.bplaced.de/xbmc-adsp-addons/

## Build instructions for Kodi's binary add-ons

When building the addon you have to use the correct branch depending on which version of Kodi you're building against.
For example, if you're building the `Jarvis` branch of Kodi you should checkout the `Jarvis` branch of this repository.
Addon releases are also tagged regularly.

For further instructions replace `{addon-id}` and `{org}` with the repository- and the Github organisation-name.
E.g. `https://github.com/kodi-adsp/adsp.basic.git` results in `{addon-id}=adsp.basic` and `{org}=kodi-adsp`

With the following instructions the add-on files will be placed in `../../xbmc/addons`. Consequently this adds a system add-on, which can be used direclty if you build Kodi from source.

### Linux

1. `git clone https://github.com/xbmc/xbmc.git`
2. `git clone https://github.com/{org}/{addon-id}.git`
3. `cd {addon-id} && mkdir build && cd build`
4. `cmake -DADDONS_TO_BUILD={addon-id} -DADDON_SRC_PREFIX=../.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../../xbmc/addons -DPACKAGE_ZIP=1 ../../xbmc/project/cmake/addons`
5. `make`

### Windows

Use the visual studio command line or run `call "%VS120COMNTOOLS%..\..\VC\bin\vcvars32.bat"`

1. `git clone https://github.com/xbmc/xbmc.git`
2. `git clone https://github.com/{org}/{addon-id}.git`
3. `cd {addon-id} && mkdir build && cd build`
4. `cmake -G "NMake Makefiles" -DADDONS_TO_BUILD={addon-id} -DADDON_SRC_PREFIX=../.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../../xbmc/addons -DPACKAGE_ZIP=1 ../../xbmc/project/cmake/addons`
5. `cmake --build "%cd%" --target "{addon-id}"`


## Useful links

* [Kodi's PVR user support] (http://forum.kodi.tv/forumdisplay.php?fid=167)
* [General binary add-on development] (http://forum.kodi.tv/forumdisplay.php?fid=26)
* [Kodi Core development support] (http://forum.kodi.tv/forumdisplay.php?fid=93)
* [Kodi AudioDSP development support] (http://forum.kodi.tv/forumdisplay.php?fid=235)
* [Kodi Screensavers and Visualisations development support] (http://forum.kodi.tv/forumdisplay.php?fid=38)
* [Kodi PVR development support] (http://forum.kodi.tv/forumdisplay.php?fid=136)

-------------
#### License
[GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007](https://github.com/kodi-adsp/adsp.template/blob/master/LICENSE.md)

Loading