diff options
author | Lars Knoll <lars.knoll@gmail.com> | 2022-06-14 15:18:48 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-06-16 20:03:41 +0000 |
commit | 4ecae775706d86064ef8bf87cb0e4fd15d03276a (patch) | |
tree | 9f41162869b38c74c2206f6b198643e795eb44dc | |
parent | 3c143519c5158f435e51f223aafc43f6637bf2ee (diff) |
Split spatial audio out into a lib of its own
Move the classes from src/multimedia/spatial into its own
QtSpatialAudio library.
This is required to keep Qt Multimedia compatible with the
requirements from the KDE Free Qt Foundation agreement, as
well as to keep license compatibility with existing applications
licensed under GPLv2 that are using Qt Multimedia.
Moving the classes into a module of their own required a few
additional changes to ensure we generate proper documentation
for the new spatial audio module.
To align the API between C++ and QML, the QML import was also
renamed to QtQuick3D.SpatialAudio.
Change-Id: Ia3f9ac5e1edac4b1e07d3302d7a229ada5bdc038
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit c403e775f60a5d02e761904342ac243be1f22597)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
82 files changed, 661 insertions, 208 deletions
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 573b1c7c3..7c3b8b2dc 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,6 +1,9 @@ qt_examples_build_begin(EXTERNAL_BUILD) add_subdirectory(multimedia) +if (QT_FEATURE_spatialaudio) + add_subdirectory(spatialaudio) +endif() add_subdirectory(multimediawidgets) qt_examples_build_end() diff --git a/examples/examples.pro b/examples/examples.pro index 979671672..5d1718718 100644 --- a/examples/examples.pro +++ b/examples/examples.pro @@ -1,3 +1,3 @@ TEMPLATE = subdirs -SUBDIRS += multimedia multimediawidgets +SUBDIRS += multimedia multimediawidgets spatialaudio diff --git a/examples/multimedia/CMakeLists.txt b/examples/multimedia/CMakeLists.txt index 44b701120..6123c7994 100644 --- a/examples/multimedia/CMakeLists.txt +++ b/examples/multimedia/CMakeLists.txt @@ -10,7 +10,6 @@ if(TARGET Qt::Widgets) endif() qt_internal_add_example(audiosource) qt_internal_add_example(audiooutput) - qt_internal_add_example(spatialaudio) endif() if(TARGET Qt::Quick) qt_internal_add_example(declarative-camera) diff --git a/examples/multimedia/audiodevices/doc/src/audiodevices.qdoc b/examples/multimedia/audiodevices/doc/src/audiodevices.qdoc index 4ff9d7f80..f8ef8394a 100644 --- a/examples/multimedia/audiodevices/doc/src/audiodevices.qdoc +++ b/examples/multimedia/audiodevices/doc/src/audiodevices.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimedia/audiodevices + \example audiodevices \title Audio Devices Example \ingroup multimedia_examples \brief Testing the available audio devices and their configuration. diff --git a/examples/multimedia/audiooutput/doc/src/audiooutput.qdoc b/examples/multimedia/audiooutput/doc/src/audiooutput.qdoc index 6aaf0639d..4478f4861 100644 --- a/examples/multimedia/audiooutput/doc/src/audiooutput.qdoc +++ b/examples/multimedia/audiooutput/doc/src/audiooutput.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimedia/audiooutput + \example audiooutput \title Audio Output Example \ingroup multimedia_examples \brief Enabling audio playback using the QAudioSink class. diff --git a/examples/multimedia/audiorecorder/doc/src/audiorecorder.qdoc b/examples/multimedia/audiorecorder/doc/src/audiorecorder.qdoc index c96066687..5d8ddc626 100644 --- a/examples/multimedia/audiorecorder/doc/src/audiorecorder.qdoc +++ b/examples/multimedia/audiorecorder/doc/src/audiorecorder.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimedia/audiorecorder + \example audiorecorder \title Audio Recorder Example \ingroup multimedia_examples \brief Discovering the available devices and supported codecs. diff --git a/examples/multimedia/audiosource/doc/src/audiosource.qdoc b/examples/multimedia/audiosource/doc/src/audiosource.qdoc index 4c89dbeae..0a47a0018 100644 --- a/examples/multimedia/audiosource/doc/src/audiosource.qdoc +++ b/examples/multimedia/audiosource/doc/src/audiosource.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimedia/audiosource + \example audiosource \title Audio Source Example \ingroup multimedia_examples \brief Recording audio using the QAudioSource class. diff --git a/examples/multimedia/declarative-camera/doc/src/declarative-camera.qdoc b/examples/multimedia/declarative-camera/doc/src/declarative-camera.qdoc index 6aa8e8fa6..0fa547a93 100644 --- a/examples/multimedia/declarative-camera/doc/src/declarative-camera.qdoc +++ b/examples/multimedia/declarative-camera/doc/src/declarative-camera.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! -\example multimedia/declarative-camera +\example declarative-camera \title QML Camera Example \ingroup multimedia_examples \ingroup camera_examples_qml diff --git a/examples/multimedia/multimedia.pro b/examples/multimedia/multimedia.pro index c58cb7b18..1f737a76c 100644 --- a/examples/multimedia/multimedia.pro +++ b/examples/multimedia/multimedia.pro @@ -11,8 +11,7 @@ qtHaveModule(widgets) { spectrum \ audiorecorder \ audiodevices \ - audiooutput \ - spatialaudio + audiooutput } qtHaveModule(quick) { diff --git a/examples/multimedia/spatialaudio/spatialaudio.pro b/examples/multimedia/spatialaudio/spatialaudio.pro deleted file mode 100644 index f9f316916..000000000 --- a/examples/multimedia/spatialaudio/spatialaudio.pro +++ /dev/null @@ -1,9 +0,0 @@ -TEMPLATE = app -TARGET = spatialaudio - -QT += multimedia widgets - -SOURCES = main.cpp - -target.path = $$[QT_INSTALL_EXAMPLES]/multimedia/spatialaudio -INSTALLS += target diff --git a/examples/multimedia/spectrum/doc/src/spectrum.qdoc b/examples/multimedia/spectrum/doc/src/spectrum.qdoc index 6db616219..1b9c2d4e1 100644 --- a/examples/multimedia/spectrum/doc/src/spectrum.qdoc +++ b/examples/multimedia/spectrum/doc/src/spectrum.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimedia/spectrum + \example spectrum \title Spectrum Example \ingroup multimedia_examples \brief Analyzing a raw audio stream using the FFTReal library. diff --git a/examples/multimedia/video/mediaplayer/doc/src/mediaplayer.qdoc b/examples/multimedia/video/mediaplayer/doc/src/mediaplayer.qdoc index 56cf91596..be002fa72 100644 --- a/examples/multimedia/video/mediaplayer/doc/src/mediaplayer.qdoc +++ b/examples/multimedia/video/mediaplayer/doc/src/mediaplayer.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimedia/video/mediaplayer + \example video/mediaplayer \title QML Media Player Example \ingroup multimedia_examples \ingroup video_examples_qml @@ -52,7 +52,7 @@ In \c main.qml a MediaPlayer instance is connected to a VideoOutput to play back the video: - \quotefromfile multimedia/video/mediaplayer/main.qml + \quotefromfile video/mediaplayer/main.qml \skipto MediaPlayer \printuntil videoOutput: videoOutput @@ -67,7 +67,7 @@ application, viewing meta data, and the selection of available video, audio or subtitle tracks. - \quotefromfile multimedia/video/mediaplayer/PlayerMenuBar.qml + \quotefromfile video/mediaplayer/PlayerMenuBar.qml Accessing the mediaPlayer object is done through properties: \skipto required property \printuntil TracksInfo subtitleTracksInfo @@ -87,7 +87,7 @@ \image url.png While \c urlPopup handles prompting and capturing a url, it is the \c loadUrl function that interacts with \c mediaPlayer like so: - \quotefromfile multimedia/video/mediaplayer/PlayerMenuBar.qml + \quotefromfile video/mediaplayer/PlayerMenuBar.qml \skipto function loadUrl \printto function closeOverlays(){ @@ -97,7 +97,7 @@ In the declaration of \c mediaPlayer, in \c main.qml, there is the function \c updateMetadata(): - \quotefromfile multimedia/video/mediaplayer/main.qml + \quotefromfile video/mediaplayer/main.qml \skipto function updateMetadata( \printto } @@ -106,7 +106,7 @@ \printto onActiveTracksChanged: { updateMetadata() } Reading MetaData is done by the \c MetadataInfo type's \c read() function - \quotefromfile multimedia/video/mediaplayer/MetadataInfo.qml + \quotefromfile video/mediaplayer/MetadataInfo.qml \skipto function read(metadata) { \printto ListModel @@ -116,7 +116,7 @@ \youtube OqosZsDqvzQ This is defined in \c TracksInfo.qml and reading available tracks is done in a similar way to \c MetadataInfo: - \quotefromfile multimedia/video/mediaplayer/TracksInfo.qml + \quotefromfile video/mediaplayer/TracksInfo.qml \skipto function read(metadata \printto ListModel @@ -126,7 +126,7 @@ The \c onSelectectedTrackChanged signal, in each relevant \c TracksInfo instance in \c main.qml, is what makes changes to \c mediaPlayer like so: - \quotefromfile multimedia/video/mediaplayer/main.qml + \quotefromfile video/mediaplayer/main.qml \skipto id: audioTracksInfo \printuntil audioTracksInfo.selectedTrack @@ -141,7 +141,7 @@ \c main.qml. Here are the property definitions. - \quotefromfile multimedia/video/mediaplayer/PlaybackControl.qml + \quotefromfile video/mediaplayer/PlaybackControl.qml \skipto required property \printto property alias @@ -172,7 +172,7 @@ \c mediaTime uses MediaPlayer's \l{MediaPlayer::position}{position} property like so: - \quotefromfile multimedia/video/mediaplayer/PlaybackSeekControl.qml + \quotefromfile video/mediaplayer/PlaybackSeekControl.qml \skipto Text { \printto Slider @@ -187,7 +187,7 @@ This type is defined in \c PlaybackRateControl.qml like so: - \quotefromfile multimedia/video/mediaplayer/PlaybackRateControl.qml + \quotefromfile video/mediaplayer/PlaybackRateControl.qml \skipto Slider \printuntil text: @@ -198,7 +198,7 @@ of the AudioOutput instantiated within the MediaPlayer, which is instantiated in \c{main.qml}. - \quotefromfile multimedia/video/mediaplayer/AudioControl.qml + \quotefromfile video/mediaplayer/AudioControl.qml \skipto required \printuntil value: 100.0 */ diff --git a/examples/multimedia/video/doc/images/qmlvideo-menu.jpg b/examples/multimedia/video/qmlvideo/doc/images/qmlvideo-menu.jpg Binary files differindex 54ab877a1..54ab877a1 100644 --- a/examples/multimedia/video/doc/images/qmlvideo-menu.jpg +++ b/examples/multimedia/video/qmlvideo/doc/images/qmlvideo-menu.jpg diff --git a/examples/multimedia/video/doc/images/qmlvideo-overlay.jpg b/examples/multimedia/video/qmlvideo/doc/images/qmlvideo-overlay.jpg Binary files differindex 6a0d48ae6..6a0d48ae6 100644 --- a/examples/multimedia/video/doc/images/qmlvideo-overlay.jpg +++ b/examples/multimedia/video/qmlvideo/doc/images/qmlvideo-overlay.jpg diff --git a/examples/multimedia/video/doc/src/qmlvideo.qdoc b/examples/multimedia/video/qmlvideo/doc/src/qmlvideo.qdoc index b8ab25d03..cebaaed38 100644 --- a/examples/multimedia/video/doc/src/qmlvideo.qdoc +++ b/examples/multimedia/video/qmlvideo/doc/src/qmlvideo.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! -\example multimedia/video/qmlvideo +\example video/qmlvideo \title QML Video Example \ingroup multimedia_examples \brief Transforming video and camera viewfinder content. @@ -71,13 +71,13 @@ in the center of the screen) is implemented in the \c VideoBasic.qml file. As you can see from the code, this makes use of a type of inheritance; a \c VideoBasic item ... -\quotefromfile multimedia/video/qmlvideo/qml/qmlvideo/VideoBasic.qml +\quotefromfile video/qmlvideo/qml/qmlvideo/VideoBasic.qml \skipto import \printuntil /^\}/ ... is of type \c SceneBasic ... -\quotefromfile multimedia/video/qmlvideo/qml/qmlvideo/SceneBasic.qml +\quotefromfile video/qmlvideo/qml/qmlvideo/SceneBasic.qml \skipto import \printuntil contentType \dots @@ -89,7 +89,7 @@ you can see from the code, this makes use of a type of inheritance; a ... which itself is a \c Scene: -\quotefromfile multimedia/video/qmlvideo/qml/qmlvideo/Scene.qml +\quotefromfile video/qmlvideo/qml/qmlvideo/Scene.qml \skipto import \printuntil root \dots @@ -122,7 +122,7 @@ All that remains is to connect the afterRendering() signal of the QQuickView object to a JavaScript function, which will eventually call \c frequencyItem.notify(): -\quotefromfile multimedia/video/qmlvideo/main.cpp +\quotefromfile video/qmlvideo/main.cpp \skipto QGuiApplication \printuntil ; \dots diff --git a/examples/multimedia/video/recorder/doc/src/recorder.qdoc b/examples/multimedia/video/recorder/doc/src/recorder.qdoc index 9ced09e74..574ab27b6 100644 --- a/examples/multimedia/video/recorder/doc/src/recorder.qdoc +++ b/examples/multimedia/video/recorder/doc/src/recorder.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimedia/video/recorder + \example video/recorder \title QML Recorder Example \ingroup multimedia_examples \ingroup video_examples_qml diff --git a/examples/multimediawidgets/camera/doc/src/camera.qdoc b/examples/multimediawidgets/camera/doc/src/camera.qdoc index 4db430fc3..3f84bb4cd 100644 --- a/examples/multimediawidgets/camera/doc/src/camera.qdoc +++ b/examples/multimediawidgets/camera/doc/src/camera.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! -\example multimediawidgets/camera +\example camera \title Camera Example \ingroup multimedia_examples \ingroup video_examples diff --git a/examples/multimediawidgets/player/doc/src/player.qdoc b/examples/multimediawidgets/player/doc/src/player.qdoc index dad969375..5e6c82bec 100644 --- a/examples/multimediawidgets/player/doc/src/player.qdoc +++ b/examples/multimediawidgets/player/doc/src/player.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimediawidgets/player + \example player \title Media Player Example \ingroup multimedia_examples \ingroup video_examples diff --git a/examples/multimediawidgets/videographicsitem/doc/src/videographicsitem.qdoc b/examples/multimediawidgets/videographicsitem/doc/src/videographicsitem.qdoc index 74fbf65cf..b9f4cc225 100644 --- a/examples/multimediawidgets/videographicsitem/doc/src/videographicsitem.qdoc +++ b/examples/multimediawidgets/videographicsitem/doc/src/videographicsitem.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimediawidgets/videographicsitem + \example videographicsitem \title Video Graphics Item Example \ingroup multimedia_examples \brief Streaming video on a graphics scene. diff --git a/examples/multimediawidgets/videowidget/doc/src/videowidget.qdoc b/examples/multimediawidgets/videowidget/doc/src/videowidget.qdoc index 25bf7b2e3..2195f8f73 100644 --- a/examples/multimediawidgets/videowidget/doc/src/videowidget.qdoc +++ b/examples/multimediawidgets/videowidget/doc/src/videowidget.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimediawidgets/videowidget + \example videowidget \title Video Widget Example \ingroup multimedia_examples \brief Implementing a video player widget. diff --git a/examples/spatialaudio/CMakeLists.txt b/examples/spatialaudio/CMakeLists.txt new file mode 100644 index 000000000..b066621e6 --- /dev/null +++ b/examples/spatialaudio/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(audiopanning) diff --git a/examples/multimedia/spatialaudio/CMakeLists.txt b/examples/spatialaudio/audiopanning/CMakeLists.txt index 9e6649fc8..75cf39fd1 100644 --- a/examples/multimedia/spatialaudio/CMakeLists.txt +++ b/examples/spatialaudio/audiopanning/CMakeLists.txt @@ -7,26 +7,26 @@ if(NOT DEFINED INSTALL_EXAMPLESDIR) set(INSTALL_EXAMPLESDIR "examples") endif() -set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/multimedia/spatialaudio") +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/spatialaudio/audiopanning") -find_package(Qt6 REQUIRED COMPONENTS Core Gui Multimedia Widgets) +find_package(Qt6 REQUIRED COMPONENTS Core Gui SpatialAudio Widgets) -qt_add_executable(spatialaudio +qt_add_executable(audiopanning main.cpp ) -set_target_properties(spatialaudio PROPERTIES +set_target_properties(audiopanning PROPERTIES WIN32_EXECUTABLE FALSE MACOSX_BUNDLE TRUE ) -target_link_libraries(spatialaudio PUBLIC +target_link_libraries(audiopanning PUBLIC Qt::Core - Qt::Multimedia + Qt::SpatialAudio Qt::Widgets ) -install(TARGETS spatialaudio +install(TARGETS audiopanning RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" diff --git a/examples/spatialaudio/audiopanning/audiopanning.pro b/examples/spatialaudio/audiopanning/audiopanning.pro new file mode 100644 index 000000000..3b1cce652 --- /dev/null +++ b/examples/spatialaudio/audiopanning/audiopanning.pro @@ -0,0 +1,9 @@ +TEMPLATE = app +TARGET = audiopanning + +QT += multimedia widgets spatialaudio + +SOURCES = main.cpp + +target.path = $$[QT_INSTALL_EXAMPLES]/spatialaudio/audiopanning +INSTALLS += target diff --git a/examples/multimedia/spatialaudio/doc/images/spatialaudio-example.png b/examples/spatialaudio/audiopanning/doc/images/audiopanning-example.png Binary files differindex 45c53975d..45c53975d 100644 --- a/examples/multimedia/spatialaudio/doc/images/spatialaudio-example.png +++ b/examples/spatialaudio/audiopanning/doc/images/audiopanning-example.png diff --git a/examples/multimedia/spatialaudio/doc/src/spatialaudio.qdoc b/examples/spatialaudio/audiopanning/doc/src/audiopanning.qdoc index c6452a071..b1bb94d82 100644 --- a/examples/multimedia/spatialaudio/doc/src/spatialaudio.qdoc +++ b/examples/spatialaudio/audiopanning/doc/src/audiopanning.qdoc @@ -26,14 +26,13 @@ ****************************************************************************/ /*! -\example multimedia/spatialaudio -\title Spatial Audio Example -\ingroup multimedia_examples +\example audiopanning +\title Spatial Audio Panning Example \ingroup spatialaudio_examples \meta {tag} {widgets} \brief Shows some of the capabilities of the spatial audio engine in Qt. -The Spatial Audio Example demonstrates how you can use \l{Qt Multimedia} to +The Spatial Audio Example demonstrates how you can use \l{Qt Spatial Audio} to place sound sources in 3D space and how positioning of the sound source and room properties affect the listening experience. @@ -46,6 +45,6 @@ and reverb. Various other properties can also be modified such as the dimensions of a virtual room and the intensity of the room reflections and reverb. -\image spatialaudio-example.png +\image audiopanning-example.png */ diff --git a/examples/multimedia/spatialaudio/main.cpp b/examples/spatialaudio/audiopanning/main.cpp index 8aa9bb672..434aabe6a 100644 --- a/examples/multimedia/spatialaudio/main.cpp +++ b/examples/spatialaudio/audiopanning/main.cpp @@ -48,7 +48,7 @@ ** ****************************************************************************/ #include <QtWidgets/QtWidgets> -#include <QtMultimedia/QtMultimedia> +#include <QtSpatialAudio/QtSpatialAudio> class AudioWidget : public QWidget { diff --git a/examples/spatialaudio/spatialaudio.pro b/examples/spatialaudio/spatialaudio.pro new file mode 100644 index 000000000..80039c1a5 --- /dev/null +++ b/examples/spatialaudio/spatialaudio.pro @@ -0,0 +1,3 @@ +TEMPLATE = subdirs +SUBDIRS += audiopanning + diff --git a/src/3rdparty/eigen/qt_attribution.json b/src/3rdparty/eigen/qt_attribution.json index a7cee7341..1671155d6 100644 --- a/src/3rdparty/eigen/qt_attribution.json +++ b/src/3rdparty/eigen/qt_attribution.json @@ -2,7 +2,7 @@ { "Id": "eigen", "Name": "Eigen", - "QDocModule": "qtmultimedia", + "QDocModule": "qtspatialaudio", "Description": "The Eigen C++ linear algebra library.", "QtUsage": "Used for mathematics to support spatial audio.", diff --git a/src/3rdparty/pffft/qt_attribution.json b/src/3rdparty/pffft/qt_attribution.json index 7bbfdbb3a..a2a42f0f3 100644 --- a/src/3rdparty/pffft/qt_attribution.json +++ b/src/3rdparty/pffft/qt_attribution.json @@ -2,7 +2,7 @@ { "Id": "pfft", "Name": "pfft", - "QDocModule": "qtmultimedia", + "QDocModule": "qtspatialaudio", "Description": "A pretty fast FFT.", "QtUsage": "Used to support spatial audio.", diff --git a/src/3rdparty/resonance-audio/qt_attribution.json b/src/3rdparty/resonance-audio/qt_attribution.json index df0907b01..d0cfc1da2 100644 --- a/src/3rdparty/resonance-audio/qt_attribution.json +++ b/src/3rdparty/resonance-audio/qt_attribution.json @@ -2,7 +2,7 @@ { "Id": "resonance-audio", "Name": "Resonance Audio", - "QDocModule": "qtmultimedia", + "QDocModule": "qtspatialaudio", "Description": "3D audio support.", "QtUsage": "Used to implement spatial audio.", diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 88f1792b5..e5bdb96cb 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -5,13 +5,16 @@ add_subdirectory(multimedia) if(ANDROID) add_subdirectory(android) endif() +if (QT_FEATURE_spatialaudio) + add_subdirectory(spatialaudio) +endif() # special case begin if(TARGET Qt::Quick) add_subdirectory(multimediaquick) endif() if(TARGET Qt::Quick3D AND QT_FEATURE_spatialaudio) - add_subdirectory(multimediaquick3d) + add_subdirectory(spatialaudioquick3d) endif() if(TARGET Qt::Widgets) diff --git a/src/multimedia/CMakeLists.txt b/src/multimedia/CMakeLists.txt index 210473575..651c7ee76 100644 --- a/src/multimedia/CMakeLists.txt +++ b/src/multimedia/CMakeLists.txt @@ -25,7 +25,7 @@ qt_internal_add_module(Multimedia audio/qaudiohelpers.cpp audio/qaudiohelpers_p.h audio/qaudiosource.cpp audio/qaudiosource.h audio/qaudiosink.cpp audio/qaudiosink.h - audio/qaudiosystem.cpp audio/qaudiosystem_p.h + audio/qaudiosystem_p.h audio/qsamplecache_p.cpp audio/qsamplecache_p.h audio/qsoundeffect.cpp audio/qsoundeffect.h audio/qwavedecoder.cpp audio/qwavedecoder.h @@ -74,7 +74,6 @@ qt_internal_add_module(Multimedia platform playback recording - spatial video LIBRARIES Qt::CorePrivate @@ -89,24 +88,6 @@ qt_internal_add_module(Multimedia GENERATE_CPP_EXPORTS ) - -qt_internal_extend_target(Multimedia CONDITION QT_FEATURE_spatialaudio - SOURCES - spatial/qambisonicdecoder.cpp spatial/qambisonicdecoder_p.h spatial/qambisonicdecoderdata_p.h - spatial/qaudioengine.cpp spatial/qaudioengine.h spatial/qaudioengine_p.h - spatial/qaudiolistener.cpp spatial/qaudiolistener.h - spatial/qaudioroom.cpp spatial/qaudioroom.h spatial/qaudioroom_p.h - spatial/qspatialsound.cpp spatial/qspatialsound.h spatial/qspatialsound.h - spatial/qambientsound.cpp spatial/qambientsound.h - INCLUDE_DIRECTORIES - "../3rdparty/resonance-audio/resonance_audio" - "../3rdparty/resonance-audio" - "../resonance-audio" - "../3rdparty/eigen" - LIBRARIES - Qt::BundledResonanceAudio -) - qt_internal_add_simd_part(Multimedia SIMD sse2 SOURCES video/qvideoframeconversionhelper_sse2.cpp diff --git a/src/multimedia/doc/QtMultimediaDoc b/src/multimedia/doc/QtMultimediaDoc index 13b8e7229..e57c3595b 100644 --- a/src/multimedia/doc/QtMultimediaDoc +++ b/src/multimedia/doc/QtMultimediaDoc @@ -1,9 +1,2 @@ #include <QtMultimedia/QtMultimedia> #include <QtMultimediaWidgets/QtMultimediaWidgets> - -#include "../audio/qaudiosystem_p.h" -#include "../platform/qplatformaudiodecoder_p.h" -#include "../platform/qplatformcamera_p.h" -#include "../platform/qplatformmediarecorder_p.h" -#include "../platform/qplatformimagecapture_p.h" -#include "../platform/qplatformvideosink_p.h" diff --git a/src/multimedia/doc/qtmultimedia.qdocconf b/src/multimedia/doc/qtmultimedia.qdocconf index f93091179..ba1ea34c6 100644 --- a/src/multimedia/doc/qtmultimedia.qdocconf +++ b/src/multimedia/doc/qtmultimedia.qdocconf @@ -6,7 +6,7 @@ project = QtMultimedia description = Qt Multimedia Documentation version = $QT_VERSION -moduleheader = QtMultimediaDoc +moduleheader = QtMultimedia includepaths += . # The following parameters are for creating a qhp file, the qhelpgenerator @@ -45,7 +45,8 @@ qhp.QtMultimedia.subprojects.examples.indexTitle = Qt Multimedia Examples qhp.QtMultimedia.subprojects.examples.selectors = doc:example qhp.QtMultimedia.subprojects.examples.sortPages = true -exampledirs += ../../../examples \ +exampledirs += ../../../examples/multimedia \ + ../../../examples/multimediawidgets \ snippets \ ../../multimediawidgets/doc/snippets @@ -54,15 +55,17 @@ manifestmeta.highlighted.names = "QtMultimedia/QML Media Player Example" \ "QtMultimedia/Camera Example" \ "QtMultimedia/QML Recorder Example" \ -headerdirs += ../.. +headerdirs += .. \ + ../../multimediawidgets \ + ../../multimediaquick imagedirs += src/images \ -sourcedirs += ../.. +sourcedirs += .. \ + ../../multimediawidgets \ + ../../multimediaquick -excludedirs += ../../gsttools - -depends += qtcore qtdoc qtgui qtquick qtqml qtwidgets qtnetwork qmake qtcmake qtquickcontrols +depends += qtcore qtdoc qtgui qtquick qtqml qtwidgets qtnetwork qmake qtcmake qtquickcontrols qtspatialaudio # Ignore \since commands for versions earlier than 6.3 ignoresince = 6.3 diff --git a/src/multimedia/doc/src/examples/video-qml-paint-rate.qdocinc b/src/multimedia/doc/src/examples/video-qml-paint-rate.qdocinc index f531e613a..7c9647f57 100644 --- a/src/multimedia/doc/src/examples/video-qml-paint-rate.qdocinc +++ b/src/multimedia/doc/src/examples/video-qml-paint-rate.qdocinc @@ -2,7 +2,7 @@ The QML painting rate is calculated by the FrequencyMonitor class, which turns a stream of events (received via the notify() slot), into an instantaneous and an averaged frequency: -\quotefromfile multimedia/video/qmlvideo/frequencymonitor.h +\quotefromfile video/qmlvideo/frequencymonitor.h \skipto class FrequencyMonitor : public QObject \printuntil Q_OBJECT \skipto Q_PROPERTY(qreal instantaneousFrequency @@ -19,13 +19,13 @@ instantaneous and an averaged frequency: The FrequencyMonitor class is exposed to QML like this -\quotefromfile multimedia/video/qmlvideo/frequencymonitordeclarative.cpp +\quotefromfile video/qmlvideo/frequencymonitordeclarative.cpp \skipto FrequencyMonitor::qmlRegisterType \printuntil } and its data is displayed by defining a QML item called FrequencyItem, like this: -\quotefromfile multimedia/video/qmlvideo/qml/frequencymonitor/FrequencyItem.qml +\quotefromfile video/qmlvideo/qml/frequencymonitor/FrequencyItem.qml \skipto import FrequencyMonitor \printuntil id: root \dots diff --git a/src/multimedia/doc/src/multimedia-overview.qdoc b/src/multimedia/doc/src/multimedia-overview.qdoc index edd610340..8aa23e25d 100644 --- a/src/multimedia/doc/src/multimedia-overview.qdoc +++ b/src/multimedia/doc/src/multimedia-overview.qdoc @@ -72,9 +72,11 @@ can also take a look at some \l{Multimedia Recipes}{recipes}. \li \l {Audio Overview} \li \l {Video Overview} \li \l {Camera Overview} -\li \l {Spatial Audio Overview} \endlist +If you're interested in adding spatial audio experiences to your application, have +a look at the \l {Qt Spatial Audio} module. + \section1 Multimedia Recipes For some quick recipes, see this table: @@ -140,11 +142,6 @@ For some quick recipes, see this table: \l {QML Recorder Example}{recorder} \li \l CaptureSession, \l Camera, \l MediaRecorder \li QMediaCaptureSession, QCamera, QMediaRecorder - \row - \li Spatial Audio - \li \l {Spatial Audio example}{spatialaudio}, - \li \l AudioEngine, \l AudioListener, \l SpatialSound - \li QAudioEngine, QAudioListener, QSpatialSound \endtable \section1 Limitations diff --git a/src/multimedia/doc/src/qtmultimedia-cpp.qdoc b/src/multimedia/doc/src/qtmultimedia-cpp.qdoc index 01d5579af..81e36827c 100644 --- a/src/multimedia/doc/src/qtmultimedia-cpp.qdoc +++ b/src/multimedia/doc/src/qtmultimedia-cpp.qdoc @@ -41,7 +41,10 @@ \snippet doc_src_qtmultimedia.cpp 0 \include module-use.qdocinc using qt module - \snippet ../src/multimedia/doc/snippets/CMakeLists.txt 0 + \code + find_package(Qt6 REQUIRED COMPONENTS Multimedia) + target_link_libraries(mytarget PRIVATE Qt6::Multimedia) + \endcode */ /*! diff --git a/src/multimedia/doc/src/qtmultimedia-index.qdoc b/src/multimedia/doc/src/qtmultimedia-index.qdoc index 74db2036e..b10b0bd41 100644 --- a/src/multimedia/doc/src/qtmultimedia-index.qdoc +++ b/src/multimedia/doc/src/qtmultimedia-index.qdoc @@ -195,11 +195,6 @@ the \l{GNU General Public License, version 2}. See \l{Qt Licensing} for further details. - Furthermore, Qt Multimedia in Qt \QtVersion may contain third party - modules under the following permissive licenses: - - \generatelist{groupsbymodule attributions-qtmultimedia} - \section1 Platform Notes For most features, Qt Multimedia builds upon the multimedia framework of the diff --git a/src/multimediawidgets/qgraphicsvideoitem.cpp b/src/multimediawidgets/qgraphicsvideoitem.cpp index 19ed28213..126878876 100644 --- a/src/multimediawidgets/qgraphicsvideoitem.cpp +++ b/src/multimediawidgets/qgraphicsvideoitem.cpp @@ -235,12 +235,6 @@ QSizeF QGraphicsVideoItem::nativeSize() const } /*! - \fn QGraphicsVideoItem::nativeSizeChanged(const QSizeF &size) - - Signals that the native \a size of the video has changed. -*/ - -/*! \reimp */ QRectF QGraphicsVideoItem::boundingRect() const diff --git a/src/multimediawidgets/qvideowidget.cpp b/src/multimediawidgets/qvideowidget.cpp index 511489dd9..402007ce2 100644 --- a/src/multimediawidgets/qvideowidget.cpp +++ b/src/multimediawidgets/qvideowidget.cpp @@ -171,14 +171,6 @@ void QVideoWidget::setFullScreen(bool fullScreen) } /*! - \fn QVideoWidget::fullScreenChanged(bool fullScreen) - - Signals that the \a fullScreen mode of a video widget has changed. - - \sa isFullScreen() -*/ - -/*! Returns the size hint for the current back end, if there is one, or else the size hint from QWidget. */ diff --git a/src/spatialaudio/CMakeLists.txt b/src/spatialaudio/CMakeLists.txt new file mode 100644 index 000000000..aba123e10 --- /dev/null +++ b/src/spatialaudio/CMakeLists.txt @@ -0,0 +1,26 @@ +qt_internal_add_module(SpatialAudio + SOURCES + qambisonicdecoder.cpp qambisonicdecoder_p.h qambisonicdecoderdata_p.h + qaudioengine.cpp qaudioengine.h qaudioengine_p.h + qaudiolistener.cpp qaudiolistener.h + qaudioroom.cpp qaudioroom.h qaudioroom_p.h + qspatialsound.cpp qspatialsound.h qspatialsound.h + qambientsound.cpp qambientsound.h + qtspatialaudioglobal.h qtspatialaudioglobal_p.h + INCLUDE_DIRECTORIES + "../3rdparty/resonance-audio/resonance_audio" + "../3rdparty/resonance-audio" + "../resonance-audio" + "../3rdparty/eigen" + LIBRARIES + Qt::MultimediaPrivate + Qt::BundledResonanceAudio + PUBLIC_LIBRARIES + Qt::Multimedia + GENERATE_CPP_EXPORTS +) + + +qt_internal_add_docs(SpatialAudio + doc/qtspatialaudio.qdocconf +) diff --git a/src/spatialaudio/doc/qtspatialaudio.qdocconf b/src/spatialaudio/doc/qtspatialaudio.qdocconf new file mode 100644 index 000000000..6dd1f13f1 --- /dev/null +++ b/src/spatialaudio/doc/qtspatialaudio.qdocconf @@ -0,0 +1,62 @@ +include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) + +project = QtSpatialAudio +description = Qt Spatial Audio Documentation +version = $QT_VERSION + +moduleheader = QtSpatialAudio +includepaths += . + +# The following parameters are for creating a qhp file, the qhelpgenerator +# program can convert the qhp file into a qch file which can be opened in +# Qt Assistant and/or Qt Creator. + +# Defines the name of the project. You cannot use operators (+, =, -) in +# the name. Properties for this project are set using a qhp.<projectname>.property +# format. +qhp.projects = QtSpatialAudio +qhp.QtSpatialAudio.file = qtspatialaudio.qhp +qhp.QtSpatialAudio.namespace = org.qt-project.qtspatialaudio.$QT_VERSION_TAG +qhp.QtSpatialAudio.indexTitle = Qt Spatial Audio +qhp.QtSpatialAudio.virtualFolder = qtspatialaudio + +# For listing child nodes in Qt Creator or Assistant. +qhp.QtSpatialAudio.subprojects = classes qmltypes examples + +qhp.QtSpatialAudio.subprojects.classes.title = Qt Spatial Audio Classes +qhp.QtSpatialAudio.subprojects.classes.indexTitle = Qt Spatial Audio C++ Classes +qhp.QtSpatialAudio.subprojects.classes.selectors = module:QtSpatialAudio +qhp.QtSpatialAudio.subprojects.classes.sortPages = true + +qhp.QtSpatialAudio.subprojects.qmltypes.title = QML Types +qhp.QtSpatialAudio.subprojects.qmltypes.indexTitle = Qt Spatial Audio QML Types +qhp.QtSpatialAudio.subprojects.qmltypes.selectors = qmlclass +qhp.QtSpatialAudio.subprojects.qmltypes.sortPages = true + +qhp.QtSpatialAudio.subprojects.examples.title = Examples +qhp.QtSpatialAudio.subprojects.examples.indexTitle = Qt Spatial Audio Examples +qhp.QtSpatialAudio.subprojects.examples.selectors = doc:example +qhp.QtSpatialAudio.subprojects.examples.sortPages = true + +exampledirs += ../../../examples/spatialaudio \ + snippets + +headerdirs += .. \ + ../../spatialaudioquick3d + +imagedirs += src/images \ + +sourcedirs += .. \ + ../../spatialaudioquick3d + +depends = qtcore qtdoc qtgui qtquick qtqml qtnetwork qmake qtcmake qtquickcontrols qtquick3d qtmultimedia + +# Ignore \since commands for versions earlier than 6.3 +ignoresince = 6.4 + +navigation.landingpage = "Qt Spatial Audio" +navigation.cppclassespage = "Qt Spatial Audio C++ Classes" +navigation.qmltypespage = "Qt Spatial Audio QML Types" + +# Fail the documentation build if there are more warnings than the limit +warninglimit = 0 diff --git a/src/spatialaudio/doc/src/qtspatialaudio-cpp.qdoc b/src/spatialaudio/doc/src/qtspatialaudio-cpp.qdoc new file mode 100644 index 000000000..fcf75ddc6 --- /dev/null +++ b/src/spatialaudio/doc/src/qtspatialaudio-cpp.qdoc @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \module QtSpatialAudio + \title Qt Spatial Audio Module C++ Classes + \ingroup modules + \qtvariable spatialaudio + \qtcmakepackage SpatialAudio + + \brief The \l {Qt Spatial Audio} module provides functionality for 3D audio. + + To enable Qt Spatial Audio in a project, add this directive into your + C++ files: + + \code + #include <QtSpatialAudio> + \endcode + + \include module-use.qdocinc using qt module + + \code + find_package(Qt6 REQUIRED COMPONENTS SpatialAudio) + target_link_libraries(my_project PRIVATE Qt6::SpatialAudio) + \endcode +*/ + +/*! + \page qtspatialaudio-modules.html + \title Qt Spatial Audio C++ Classes + \brief Provides C++ class for spatial audio use cases. + + The C++ classes provide the same functionality as the Qt Quick3D spatial audio + module. + + \section1 Classes + + \generatelist {classesbymodule QtSpatialAudio} + +*/ diff --git a/src/spatialaudio/doc/src/qtspatialaudio-examples.qdoc b/src/spatialaudio/doc/src/qtspatialaudio-examples.qdoc new file mode 100644 index 000000000..4d917d93f --- /dev/null +++ b/src/spatialaudio/doc/src/qtspatialaudio-examples.qdoc @@ -0,0 +1,39 @@ +/**************************************************************************** +** +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \group spatialaudio_examples + \ingroup all-examples + \title Qt Spatial Audio Examples + \brief Demonstrates the spatial audio functionality provided by Qt. + + The \l{Qt Spatial Audio} module provides cross-platform capabilities to + add support for spatial audio to Qt based applications. + + The examples listed below show some typical use cases where audio sources are + located in 3D space adding virtual rooms around the source. +*/ diff --git a/src/spatialaudio/doc/src/qtspatialaudio-index.qdoc b/src/spatialaudio/doc/src/qtspatialaudio-index.qdoc new file mode 100644 index 000000000..85588950b --- /dev/null +++ b/src/spatialaudio/doc/src/qtspatialaudio-index.qdoc @@ -0,0 +1,147 @@ +/**************************************************************************** +** +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt for Multimedia module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \page qtspatialaudio-index.html + \title Qt Spatial Audio + \brief The Qt Spatial Audio module provides APIs for modeling sound source + and their surrounds in 3D space + + Qt Spatial Audio is an add-on module that provides a rich set of QML types + and C++ classes to implement sound fields in 3D space. It contains an easy to use + API for positing a listener in space, adding localized sound sources around the + listener and emulating virtual rooms with reverb and reflections. + + \section1 Getting started + + If you are new to Qt Spatial Audio, the QML types can be + \l{qtqml import syntax}{imported} into an application using the following + statement in your \c {.qml} file. + + \qml + import QtQuick3D.SpatialAudio + \endqml + + If you want to use the C++ classes in your application, include the C++ + definitions using the following directive: + + \code + #include <QtSpatialAudio> + \endcode + + To link against the C++ libraries, add the following to your project's + \c CMakeLists.txt file. Substitute \c my_project with the name of your + project. + + \code + find_package(Qt6 REQUIRED COMPONENTS SpatialAudio) + target_link_libraries(my_project PRIVATE Qt6::SpatialAudio) + \endcode + + \l{Spatial Audio Overview} provides a more detailed description about how + to use the different classes listed below. + + \section1 QML Types + + The following table outlines some important QML types. + + \table + \header + \li Type + \li Description + \row + \li \l{AudioEngine} + \li The engine doing the processing of the audio scene + \row + \li \l {SpatialSound} + \li A sound source located in 3D space. + \row + \li \l {AmbientSound} + \li A location independent stereo sound track. + \row + \li \l {AudioRoom} + \li Defines a room that generates audio reverb and reflections. + \endtable + + \section1 C++ Classes + + The following table outlines some important C++ Classes + + \table + \header + \li Class + \li Description + \row + \li \l{QAudioEngine} + \li The engine doing the processing of the audio scene + \row + \li \l {QSpatialSound} + \li A sound source located in 3D space. + \row + \li \l {QAmbientSound} + \li A location independent stereo sound track. + \row + \li \l {QAudioRoom} + \li Defines a room that generates audio reverb and reflections. + \endtable + + \section1 Licenses and Attributions + + The Qt Spatial Audio module is available under commercial licenses from + \l{The Qt Company}. + In addition, it is available under free software licenses. These free software + licenses are + \l{GNU Lesser General Public License, version 3}, or + the \l{GNU General Public License, version 3}. + See \l{Qt Licensing} for further details. + + Note that Qt Spatial Audio is not available under the \l{GNU General Public License, version 2}. + + Furthermore, Qt Spatial Audio in Qt \QtVersion contains third party + modules under the following permissive licenses: + + \generatelist{groupsbymodule attributions-qtspatialaudio} + + \section1 Reference and Examples + \list + \li \l{Qt Spatial Audio QML Types}{QML Types} + \li \l{Qt Spatial Audio C++ Classes}{C++ Classes} + \li \l{Qt Spatial Audio Examples}{Examples} + \endlist +*/ diff --git a/src/spatialaudio/doc/src/qtspatialaudio-qml-types.qdoc b/src/spatialaudio/doc/src/qtspatialaudio-qml-types.qdoc new file mode 100644 index 000000000..43dda8301 --- /dev/null +++ b/src/spatialaudio/doc/src/qtspatialaudio-qml-types.qdoc @@ -0,0 +1,50 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! +\qmlmodule QtQuick3D.SpatialAudio +\title Qt Spatial Audio QML Types +\ingroup qmlmodules +\brief Provides QML types for spatial audio. + +The QML types for \l{Qt Spatial Audio} support the full functionality of the +C++ API. + +\section1 QML Types + +Qt Spatial Audio QML types are designed to be used together with \l{Qt Quick 3D}. They +can be imported into your application using the following import statement in your +.qml file: + +\qml \QtMinorVersion +import QtQuick3D.SpatialAudio +\endqml + +\generatelist qmltypesbymodule QtSpatialAudio + +\noautolist +*/ diff --git a/src/multimedia/doc/src/spatialaudiooverview.qdoc b/src/spatialaudio/doc/src/spatialaudiooverview.qdoc index 5f7dae433..e5775f422 100644 --- a/src/multimedia/doc/src/spatialaudiooverview.qdoc +++ b/src/spatialaudio/doc/src/spatialaudiooverview.qdoc @@ -42,7 +42,7 @@ \title Spatial Audio Overview \brief Support for spatial audio. -The Qt Multimedia API provides a number of classes that allow the creation of +The Qt Spatial Audio API provides a number of classes that allow the creation of three dimensional sound scene. It is defined by objects located in 3D space that emit sound and surrounding geometry that can be modelled using one or several rooms. Finally a listener can be placed into this @@ -83,14 +83,17 @@ If you need some stereo overlay that is independent of the position and orientat the listener (such as background music or a voice-over), you can use \l QAmbientSound to create the sound overlay. +For a small QWidget based example showcasing one audio source that can be moved around in a room, have +a look at the \l {audiopanning}{Spacial Audio Panning Example}. + \section1 Reference Documentation \section2 C++ Classes -\annotatedlist multimedia_spatialaudio +\annotatedlist spatialaudio \section2 QML Types -\annotatedlist quick3d_audio +\annotatedlist quick3d_spatialaudio */ diff --git a/src/multimedia/spatial/qambientsound.cpp b/src/spatialaudio/qambientsound.cpp index 7f9023d3a..6575217d9 100644 --- a/src/multimedia/spatial/qambientsound.cpp +++ b/src/spatialaudio/qambientsound.cpp @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Multimedia module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage @@ -47,7 +47,7 @@ QT_BEGIN_NAMESPACE /*! \class QAmbientSound \inmodule QtMultimedia - \ingroup multimedia_spatialaudio + \ingroup spatialaudio \brief A stereo overlay sound. diff --git a/src/multimedia/spatial/qambientsound.h b/src/spatialaudio/qambientsound.h index 01402554c..015279522 100644 --- a/src/multimedia/spatial/qambientsound.h +++ b/src/spatialaudio/qambientsound.h @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Multimedia module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage @@ -37,6 +37,7 @@ #ifndef QAMBIENTSOUND_H #define QAMBIENTSOUND_H +#include <QtSpatialAudio/qtspatialaudioglobal.h> #include <QtMultimedia/qtmultimediaglobal.h> #include <QtCore/QUrl> #include <QtCore/QObject> @@ -46,7 +47,7 @@ QT_BEGIN_NAMESPACE class QAudioEngine; class QAmbientSoundPrivate; -class Q_MULTIMEDIA_EXPORT QAmbientSound : public QObject +class Q_SPATIALAUDIO_EXPORT QAmbientSound : public QObject { Q_OBJECT Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) diff --git a/src/multimedia/spatial/qambisonicdecoder.cpp b/src/spatialaudio/qambisonicdecoder.cpp index 922656538..e898006a1 100644 --- a/src/multimedia/spatial/qambisonicdecoder.cpp +++ b/src/spatialaudio/qambisonicdecoder.cpp @@ -5,7 +5,7 @@ ** ** This file is part of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the @@ -24,14 +24,12 @@ ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** diff --git a/src/multimedia/spatial/qambisonicdecoder_p.h b/src/spatialaudio/qambisonicdecoder_p.h index a94fdd444..62ac0ed47 100644 --- a/src/multimedia/spatial/qambisonicdecoder_p.h +++ b/src/spatialaudio/qambisonicdecoder_p.h @@ -5,7 +5,7 @@ ** ** This file is part of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the @@ -24,14 +24,12 @@ ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** @@ -50,7 +48,7 @@ // We mean it. // -#include <qtmultimediaglobal_p.h> +#include <qtspatialaudioglobal_p.h> #include <qaudioformat.h> QT_BEGIN_NAMESPACE diff --git a/src/multimedia/spatial/qambisonicdecoderdata_p.h b/src/spatialaudio/qambisonicdecoderdata_p.h index ee2d22451..b79173ac5 100644 --- a/src/multimedia/spatial/qambisonicdecoderdata_p.h +++ b/src/spatialaudio/qambisonicdecoderdata_p.h @@ -1,11 +1,11 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the @@ -24,14 +24,12 @@ ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** @@ -39,7 +37,7 @@ #ifndef QAMBISONICDECODERDATA_P_H #define QAMBISONICDECODERDATA_P_H -#include <qtmultimediaglobal_p.h> +#include <qtspatialaudioglobal_p.h> // W A R N I N G // ------------- diff --git a/src/multimedia/spatial/qaudioengine.cpp b/src/spatialaudio/qaudioengine.cpp index b405be0c8..a29921af8 100644 --- a/src/multimedia/spatial/qaudioengine.cpp +++ b/src/spatialaudio/qaudioengine.cpp @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Multimedia module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage @@ -310,7 +310,7 @@ QVector3D QAudioEnginePrivate::listenerPosition() const /*! \class QAudioEngine \inmodule QtMultimedia - \ingroup multimedia_spatialaudio + \ingroup spatialaudio \brief QAudioEngine manages a three dimensional sound field. diff --git a/src/multimedia/spatial/qaudioengine.h b/src/spatialaudio/qaudioengine.h index 3044b61db..dfa2ef76e 100644 --- a/src/multimedia/spatial/qaudioengine.h +++ b/src/spatialaudio/qaudioengine.h @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Multimedia module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage @@ -38,7 +38,7 @@ #ifndef QAUDIOENGINE_H #define QAUDIOENGINE_H -#include <QtMultimedia/qtmultimediaglobal.h> +#include <QtSpatialAudio/qtspatialaudioglobal.h> #include <QtCore/qobject.h> QT_BEGIN_NAMESPACE @@ -46,7 +46,7 @@ QT_BEGIN_NAMESPACE class QAudioEnginePrivate; class QAudioDevice; -class Q_MULTIMEDIA_EXPORT QAudioEngine : public QObject +class Q_SPATIALAUDIO_EXPORT QAudioEngine : public QObject { Q_OBJECT Q_PROPERTY(OutputMode outputMode READ outputMode WRITE setOutputMode NOTIFY outputModeChanged) diff --git a/src/multimedia/spatial/qaudioengine_p.h b/src/spatialaudio/qaudioengine_p.h index dce6f5171..5d8d417b8 100644 --- a/src/multimedia/spatial/qaudioengine_p.h +++ b/src/spatialaudio/qaudioengine_p.h @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Multimedia module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage @@ -49,6 +49,7 @@ // We mean it. // +#include <qtspatialaudioglobal_p.h> #include <qaudioengine.h> #include <qaudiodevice.h> #include <qaudiodecoder.h> diff --git a/src/multimedia/spatial/qaudiolistener.cpp b/src/spatialaudio/qaudiolistener.cpp index eb1f4a79c..130a94071 100644 --- a/src/multimedia/spatial/qaudiolistener.cpp +++ b/src/spatialaudio/qaudiolistener.cpp @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Multimedia module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage @@ -55,7 +55,7 @@ public: /*! \class QAudioListener \inmodule QtMultimedia - \ingroup multimedia_spatialaudio + \ingroup spatialaudio \brief Defines the position and orientation of the person listening to a sound field defined by QAudioEngine. diff --git a/src/multimedia/spatial/qaudiolistener.h b/src/spatialaudio/qaudiolistener.h index f6beaf40d..6482cf345 100644 --- a/src/multimedia/spatial/qaudiolistener.h +++ b/src/spatialaudio/qaudiolistener.h @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Multimedia module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage @@ -37,7 +37,7 @@ #ifndef QLISTENER_H #define QLISTENER_H -#include <QtMultimedia/qtmultimediaglobal.h> +#include <QtSpatialAudio/qtspatialaudioglobal.h> #include <QtCore/QObject> #include <QtMultimedia/qaudioformat.h> #include <QtGui/qvector3d.h> @@ -48,7 +48,7 @@ QT_BEGIN_NAMESPACE class QAudioEngine; class QAudioListenerPrivate; -class Q_MULTIMEDIA_EXPORT QAudioListener : public QObject +class Q_SPATIALAUDIO_EXPORT QAudioListener : public QObject { public: explicit QAudioListener(QAudioEngine *engine); diff --git a/src/multimedia/spatial/qaudioroom.cpp b/src/spatialaudio/qaudioroom.cpp index adb35d67f..355ea8e24 100644 --- a/src/multimedia/spatial/qaudioroom.cpp +++ b/src/spatialaudio/qaudioroom.cpp @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Multimedia module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage @@ -135,7 +135,7 @@ void QAudioRoomPrivate::update() /*! \class QAudioRoom \inmodule QtMultimedia - \ingroup multimedia_spatialaudio + \ingroup spatialaudio Defines a room for the spatial audio engine. diff --git a/src/multimedia/spatial/qaudioroom.h b/src/spatialaudio/qaudioroom.h index 6031ef714..289fe22cf 100644 --- a/src/multimedia/spatial/qaudioroom.h +++ b/src/spatialaudio/qaudioroom.h @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Multimedia module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage @@ -38,7 +38,7 @@ #ifndef QAUDIOROOM_H #define QAUDIOROOM_H -#include <QtMultimedia/qtmultimediaglobal.h> +#include <QtSpatialAudio/qtspatialaudioglobal.h> #include <QtCore/qobject.h> #include <QtGui/qvector3d.h> @@ -47,7 +47,7 @@ QT_BEGIN_NAMESPACE class QAudioEngine; class QAudioRoomPrivate; -class Q_MULTIMEDIA_EXPORT QAudioRoom : public QObject +class Q_SPATIALAUDIO_EXPORT QAudioRoom : public QObject { Q_OBJECT Q_PROPERTY(QVector3D position READ position WRITE setPosition NOTIFY positionChanged) diff --git a/src/multimedia/spatial/qaudioroom_p.h b/src/spatialaudio/qaudioroom_p.h index ae5f46efb..3f6304897 100644 --- a/src/multimedia/spatial/qaudioroom_p.h +++ b/src/spatialaudio/qaudioroom_p.h @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Multimedia module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage @@ -47,6 +47,7 @@ // We mean it. // +#include <qtspatialaudioglobal_p.h> #include <qaudioroom.h> #include <qaudioengine_p.h> #include <QtGui/qquaternion.h> diff --git a/src/multimedia/spatial/qspatialsound.cpp b/src/spatialaudio/qspatialsound.cpp index ccd9eaca6..a3454b7ad 100644 --- a/src/multimedia/spatial/qspatialsound.cpp +++ b/src/spatialaudio/qspatialsound.cpp @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Multimedia module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage @@ -49,7 +49,7 @@ QT_BEGIN_NAMESPACE /*! \class QSpatialSound \inmodule QtMultimedia - \ingroup multimedia_spatialaudio + \ingroup spatialaudio \brief A sound object in 3D space. diff --git a/src/multimedia/spatial/qspatialsound.h b/src/spatialaudio/qspatialsound.h index 43058fa18..a2e581133 100644 --- a/src/multimedia/spatial/qspatialsound.h +++ b/src/spatialaudio/qspatialsound.h @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Multimedia module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage @@ -37,7 +37,7 @@ #ifndef QSPATIALSOUND_H #define QSPATIALSOUND_H -#include <QtMultimedia/qtmultimediaglobal.h> +#include <QtSpatialAudio/qtspatialaudioglobal.h> #include <QtCore/QObject> #include <QtGui/qvector3d.h> #include <QtGui/qquaternion.h> @@ -48,7 +48,7 @@ class QAudioEngine; class QAmbientSoundPrivate; class QSpatialSoundPrivate; -class Q_MULTIMEDIA_EXPORT QSpatialSound : public QObject +class Q_SPATIALAUDIO_EXPORT QSpatialSound : public QObject { Q_OBJECT Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) diff --git a/src/multimedia/spatial/qspatialsound_p.h b/src/spatialaudio/qspatialsound_p.h index 0ed8f5e66..0ed8f5e66 100644 --- a/src/multimedia/spatial/qspatialsound_p.h +++ b/src/spatialaudio/qspatialsound_p.h diff --git a/src/spatialaudio/qtspatialaudioglobal.h b/src/spatialaudio/qtspatialaudioglobal.h new file mode 100644 index 000000000..fed94ff71 --- /dev/null +++ b/src/spatialaudio/qtspatialaudioglobal.h @@ -0,0 +1,44 @@ +/**************************************************************************** +** +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QTSPATIALAUDIOGLOBAL_H +#define QTSPATIALAUDIOGLOBAL_H + +#include <QtMultimedia/qtmultimediaglobal.h> +#include <QtSpatialAudio/qtspatialaudioexports.h> + +#endif // QTMULTIMEDIAGLOBAL_H diff --git a/src/spatialaudio/qtspatialaudioglobal_p.h b/src/spatialaudio/qtspatialaudioglobal_p.h new file mode 100644 index 000000000..5c8fbc714 --- /dev/null +++ b/src/spatialaudio/qtspatialaudioglobal_p.h @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QTSPATIALAUDIOGLOBAL_P_H +#define QTSPATIALAUDIOGLOBAL_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QtMultimedia/private/qtmultimediaglobal_p.h> +#include <QtSpatialAudio/qtspatialaudioglobal.h> + +#endif // QTQMLGLOBAL_P_H diff --git a/src/multimediaquick3d/CMakeLists.txt b/src/spatialaudioquick3d/CMakeLists.txt index a381adfdb..cd14cfda4 100644 --- a/src/multimediaquick3d/CMakeLists.txt +++ b/src/spatialaudioquick3d/CMakeLists.txt @@ -2,15 +2,15 @@ ## Quick3D.Sound Module: ##################################################################### -qt_internal_add_qml_module(Quick3DAudioPrivate - URI "QtQuick3D.Audio" +qt_internal_add_qml_module(Quick3DSpatialAudioPrivate + URI "QtQuick3D.SpatialAudio" VERSION "${PROJECT_VERSION}" CLASS_NAME QQuick3DAudioModule - PLUGIN_TARGET quick3daudio + PLUGIN_TARGET quick3dspatialaudio NO_GENERATE_PLUGIN_SOURCE NO_PLUGIN_OPTIONAL DEPENDENCIES QtQuick QtQuick3DPrivate QtMultimedia - CONFIG_MODULE_NAME quick3daudio + CONFIG_MODULE_NAME quick3dspatialaudio INTERNAL_MODULE SOURCES qquick3daudiolistener.cpp qquick3daudiolistener_p.h @@ -23,8 +23,8 @@ qt_internal_add_qml_module(Quick3DAudioPrivate QML_FILES PUBLIC_LIBRARIES Qt::Quick3DPrivate - Qt::Multimedia + Qt::SpatialAudio GENERATE_CPP_EXPORTS ) -target_sources(quick3daudio PRIVATE quick3daudio_plugin.cpp) +target_sources(quick3dspatialaudio PRIVATE qquick3dspatialaudio_plugin.cpp) diff --git a/src/multimediaquick3d/qquick3dambientsound.cpp b/src/spatialaudioquick3d/qquick3dambientsound.cpp index 5de0c6aa2..6d87d03af 100644 --- a/src/multimediaquick3d/qquick3dambientsound.cpp +++ b/src/spatialaudioquick3d/qquick3dambientsound.cpp @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Quick3D Audio module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage @@ -44,8 +44,8 @@ QT_BEGIN_NAMESPACE /*! \qmltype AmbientSound - \inqmlmodule QtQuick3D.Audio - \ingroup quick3d_audio + \inqmlmodule QtQuick3D.SpatialAudio + \ingroup quick3d_spatialaudio \brief A stereo overlay sound. diff --git a/src/multimediaquick3d/qquick3dambientsound_p.h b/src/spatialaudioquick3d/qquick3dambientsound_p.h index 179dada74..44f369867 100644 --- a/src/multimediaquick3d/qquick3dambientsound_p.h +++ b/src/spatialaudioquick3d/qquick3dambientsound_p.h @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Quick3D Audio module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage diff --git a/src/multimediaquick3d/qquick3daudio-qml-types.qdoc b/src/spatialaudioquick3d/qquick3daudio-qml-types.qdoc index 55376bb99..55376bb99 100644 --- a/src/multimediaquick3d/qquick3daudio-qml-types.qdoc +++ b/src/spatialaudioquick3d/qquick3daudio-qml-types.qdoc diff --git a/src/multimediaquick3d/qquick3daudioengine.cpp b/src/spatialaudioquick3d/qquick3daudioengine.cpp index 60f083bca..9480a0881 100644 --- a/src/multimediaquick3d/qquick3daudioengine.cpp +++ b/src/spatialaudioquick3d/qquick3daudioengine.cpp @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Quick3D Audio module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage @@ -43,8 +43,8 @@ static QAudioEngine *globalEngine = nullptr; /*! \qmltype AudioEngine - \inqmlmodule QtQuick3D.Audio - \ingroup quick3d_audio + \inqmlmodule QtQuick3D.SpatialAudio + \ingroup quick3d_spatialaudio \brief AudioEngine manages sound objects inside a 3D scene. diff --git a/src/multimediaquick3d/qquick3daudioengine_p.h b/src/spatialaudioquick3d/qquick3daudioengine_p.h index f44b3c0ad..1ac7b0eaa 100644 --- a/src/multimediaquick3d/qquick3daudioengine_p.h +++ b/src/spatialaudioquick3d/qquick3daudioengine_p.h @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Quick3D Audio module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage diff --git a/src/multimediaquick3d/qquick3daudiolistener.cpp b/src/spatialaudioquick3d/qquick3daudiolistener.cpp index 2953e1aee..d3ba3e44f 100644 --- a/src/multimediaquick3d/qquick3daudiolistener.cpp +++ b/src/spatialaudioquick3d/qquick3daudiolistener.cpp @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Quick3D Audio module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage @@ -42,8 +42,8 @@ QT_BEGIN_NAMESPACE /*! \qmltype AudioListener - \inqmlmodule QtQuick3D.Audio - \ingroup quick3d_audio + \inqmlmodule QtQuick3D.SpatialAudio + \ingroup quick3d_spatialaudio \brief defines the position and orientation of the person listening to a sound field defined by a AudioEngine. diff --git a/src/multimediaquick3d/qquick3daudiolistener_p.h b/src/spatialaudioquick3d/qquick3daudiolistener_p.h index c7f68227e..7a25f6177 100644 --- a/src/multimediaquick3d/qquick3daudiolistener_p.h +++ b/src/spatialaudioquick3d/qquick3daudiolistener_p.h @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Quick3D Audio module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage diff --git a/src/multimediaquick3d/qquick3daudioroom.cpp b/src/spatialaudioquick3d/qquick3daudioroom.cpp index 9fa763199..12705b280 100644 --- a/src/multimediaquick3d/qquick3daudioroom.cpp +++ b/src/spatialaudioquick3d/qquick3daudioroom.cpp @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Quick3D Audio module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage @@ -42,8 +42,8 @@ QT_BEGIN_NAMESPACE /*! \qmltype AudioRoom - \inqmlmodule QtQuick3D.Audio - \ingroup quick3d_audio + \inqmlmodule QtQuick3D.SpatialAudio + \ingroup quick3d_spatialaudio Defines a room for the spatial audio engine. @@ -85,7 +85,7 @@ QQuick3DAudioRoom::~QQuick3DAudioRoom() Defines the dimensions of the room in 3D space. Units are in centimeters by default. - \sa position, QAudioEngine::distanceScale + \sa QtQuick3D::Node::position */ void QQuick3DAudioRoom::setDimensions(QVector3D dim) { diff --git a/src/multimediaquick3d/qquick3daudioroom_p.h b/src/spatialaudioquick3d/qquick3daudioroom_p.h index 2eb01bd00..ee8b8d211 100644 --- a/src/multimediaquick3d/qquick3daudioroom_p.h +++ b/src/spatialaudioquick3d/qquick3daudioroom_p.h @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Quick3D Audio module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage diff --git a/src/multimediaquick3d/quick3daudio_plugin.cpp b/src/spatialaudioquick3d/qquick3dspatialaudio_plugin.cpp index dbb8cb40a..f81fff304 100644 --- a/src/multimediaquick3d/quick3daudio_plugin.cpp +++ b/src/spatialaudioquick3d/qquick3dspatialaudio_plugin.cpp @@ -52,7 +52,7 @@ public: QQuick3DAudioModule(QObject *parent = nullptr) : QQmlEngineExtensionPlugin(parent) { - volatile auto registration = qml_register_types_QtQuick3D_Audio; + volatile auto registration = qml_register_types_QtQuick3D_SpatialAudio; Q_UNUSED(registration); } @@ -65,5 +65,5 @@ public: QT_END_NAMESPACE -#include "quick3daudio_plugin.moc" +#include "qquick3dspatialaudio_plugin.moc" diff --git a/src/multimediaquick3d/qquick3dspatialsound.cpp b/src/spatialaudioquick3d/qquick3dspatialsound.cpp index 840e65050..7e1aad939 100644 --- a/src/multimediaquick3d/qquick3dspatialsound.cpp +++ b/src/spatialaudioquick3d/qquick3dspatialsound.cpp @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Quick3D Audio module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage @@ -44,8 +44,8 @@ QT_BEGIN_NAMESPACE /*! \qmltype SpatialSound - \inqmlmodule QtQuick3D.Audio - \ingroup quick3d_audio + \inqmlmodule QtQuick3D.SpatialAudio + \ingroup quick3d_spatialaudio \brief A sound object in 3D space. diff --git a/src/multimediaquick3d/qquick3dspatialsound_p.h b/src/spatialaudioquick3d/qquick3dspatialsound_p.h index b347543f7..777b6d16b 100644 --- a/src/multimediaquick3d/qquick3dspatialsound_p.h +++ b/src/spatialaudioquick3d/qquick3dspatialsound_p.h @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Quick3D Audio module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage diff --git a/src/multimediaquick3d/qtquick3daudioglobal_p.h b/src/spatialaudioquick3d/qtquick3daudioglobal_p.h index 7318079a5..748614faa 100644 --- a/src/multimediaquick3d/qtquick3daudioglobal_p.h +++ b/src/spatialaudioquick3d/qtquick3daudioglobal_p.h @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Quick3D Audio module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage @@ -54,7 +54,7 @@ QT_BEGIN_NAMESPACE -void Q_MULTIMEDIAQUICK_EXPORT qml_register_types_QtQuick3D_Audio(); +void Q_MULTIMEDIAQUICK_EXPORT qml_register_types_QtQuick3D_SpatialAudio(); QT_END_NAMESPACE diff --git a/src/multimediaquick3d/qtquick3daudiotypes_p.h b/src/spatialaudioquick3d/qtquick3daudiotypes_p.h index 042aee3c2..ef69f2579 100644 --- a/src/multimediaquick3d/qtquick3daudiotypes_p.h +++ b/src/spatialaudioquick3d/qtquick3daudiotypes_p.h @@ -3,7 +3,7 @@ ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Quick3D Audio module of the Qt Toolkit. +** This file is part of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL-NOGPL2$ ** Commercial License Usage diff --git a/sync.profile b/sync.profile index 1b63cb009..fd8c7f793 100644 --- a/sync.profile +++ b/sync.profile @@ -2,7 +2,8 @@ "QtMultimedia" => "$basedir/src/multimedia", "QtMultimediaWidgets" => "$basedir/src/multimediawidgets", "QtMultimediaQuick" => "$basedir/src/multimediaquick", - "QtQuick3DAudio" => "$basedir/src/multimediaquick3d", + "QtSpatialAudio" => "$basedir/src/spatialaudio", + "QtQuick3DSpatialAudio" => "$basedir/src/spatialaudioquick3d", ); %moduleheaders = ( # restrict the module headers to those found in relative path diff --git a/util/adt_generate_qt.m b/util/adt_generate_qt.m index c4b6af956..aeef97b49 100644 --- a/util/adt_generate_qt.m +++ b/util/adt_generate_qt.m @@ -83,7 +83,7 @@ function adt_generate_qt() fprintf(outfile, "****************************************************************************/\n"); fprintf(outfile, "#ifndef QAMBISONICDECODERDATA_P_H\n"); fprintf(outfile, "#define QAMBISONICDECODERDATA_P_H\n\n"); - fprintf(outfile, "#include <qtmultimediaglobal_p.h>\n\n"); + fprintf(outfile, "#include <qtspatialaudioglobal_p.h>\n\n"); fprintf(outfile, "// W A R N I N G\n"); fprintf(outfile, "// -------------\n"); fprintf(outfile, "//\n"); |